move query logger option to auth

This commit is contained in:
Samir Patel 2021-12-27 16:42:13 -05:00
parent 49e9faa03b
commit 0ef67fd699
3 changed files with 27 additions and 27 deletions

View file

@ -21,7 +21,6 @@ func BuildServerFlags(cmd *cobra.Command, srv *server.Command) {
flags.StringVar(&srv.Config.AdvertiseGRPC, "advertise-grpc", srv.Config.AdvertiseGRPC, "Address to advertise externally for gRPC.")
flags.IntVar(&srv.Config.MaxWritesPerRequest, "max-writes-per-request", srv.Config.MaxWritesPerRequest, "Number of write commands per request.")
flags.StringVar(&srv.Config.LogPath, "log-path", srv.Config.LogPath, "Log path")
flags.StringVar(&srv.Config.QueryLogPath , "query-log-path", srv.Config.QueryLogPath, "Path to save user queries")
flags.BoolVar(&srv.Config.Verbose, "verbose", srv.Config.Verbose, "Enable verbose logging")
flags.Uint64Var(&srv.Config.MaxMapCount, "max-map-count", srv.Config.MaxMapCount, "Limits the maximum number of active mmaps. FeatureBase will fall back to reading files once this is exhausted. Set below your system's vm.max_map_count.")
flags.Uint64Var(&srv.Config.MaxFileCount, "max-file-count", srv.Config.MaxFileCount, "Soft limit on the maximum number of fragment files FeatureBase keeps open simultaneously.")
@ -122,5 +121,6 @@ func BuildServerFlags(cmd *cobra.Command, srv *server.Command) {
flags.StringVar(&srv.Config.Auth.HashKey, "auth.hash-key", srv.Config.Auth.HashKey, "First Secret for Auth.")
flags.StringVar(&srv.Config.Auth.BlockKey, "auth.block-key", srv.Config.Auth.BlockKey, "Second Secret for Auth.")
flags.StringVar(&srv.Config.Auth.PermissionsFile, "auth.permissions", srv.Config.Auth.PermissionsFile, "Permissions' file with group authorization.")
flags.StringVar(&srv.Config.Auth.QueryLogPath, "auth.query-log-path", srv.Config.Auth.QueryLogPath, "Path to log user queries")
}

View file

@ -84,9 +84,6 @@ type Config struct {
// LogPath configures where Pilosa will write logs.
LogPath string `toml:"log-path"`
// QueryLogPath, security logs
QueryLogPath string `toml:"query-log-path"`
// Verbose toggles verbose logging which can be useful for debugging.
Verbose bool `toml:"verbose"`
@ -253,6 +250,7 @@ type Auth struct {
HashKey string `toml:"hash-key"`
BlockKey string `toml:"block-key"`
PermissionsFile string `toml:"permissions"`
QueryLogPath string `toml:"query-log-path"`
}
// Namespace returns the namespace to use based on the Future flag.

View file

@ -69,10 +69,10 @@ type Command struct {
// done will be closed when Command.Close() is called
done chan struct{}
logOutput io.Writer
logOutput io.Writer
querylogOutput io.Writer
logger loggerLogger
querylogger loggerLogger
logger loggerLogger
querylogger loggerLogger
Handler pilosa.Handler
grpcServer *grpcServer
@ -336,10 +336,6 @@ func (m *Command) SetupServer() error {
if err != nil {
return errors.Wrap(err, "setting up logger")
}
err = m.setupQueryLogger()
if err != nil {
return errors.Wrap(err, "setting up querylogger")
}
m.logger.Infof("%s", pilosa.VersionInfo(m.Config.Future.Rename))
@ -530,6 +526,7 @@ func (m *Command) SetupServer() error {
return errors.Wrap(err, "new grpc server")
}
var p authz.GroupPermissions
if m.Config.Auth.Enable {
m.Config.MustValidateAuth()
permsFile, err := os.Open(m.Config.Auth.PermissionsFile)
@ -538,7 +535,6 @@ func (m *Command) SetupServer() error {
}
defer permsFile.Close()
var p authz.GroupPermissions
if err = p.ReadPermissionsFile(permsFile); err != nil {
return err
}
@ -548,6 +544,11 @@ func (m *Command) SetupServer() error {
if err != nil {
return errors.Wrap(err, "instantiating authN object")
}
err = m.setupQueryLogger()
if err != nil {
return errors.Wrap(err, "setting up querylogger")
}
}
m.Handler, err = http.NewHandler(
@ -559,7 +560,8 @@ func (m *Command) SetupServer() error {
http.OptHandlerListener(m.ln, m.Config.Advertise),
http.OptHandlerCloseTimeout(m.closeTimeout),
http.OptHandlerMiddleware(m.grpcServer.middleware(m.Config.Handler.AllowedOrigins)),
http.OptHandlerAuth(m.auth),
http.OptHandlerAuthN(m.auth),
http.OptHandlerAuthZ(&p),
)
return errors.Wrap(err, "new handler")
}
@ -609,13 +611,13 @@ func (m *Command) setupQueryLogger() error {
var f *logger.FileWriter
var err error
if m.Config.QueryLogPath == "" {
f, err = logger.NewFileWriterMode( "queries/query.log", 600)
if m.Config.Auth.QueryLogPath == "" {
f, err = logger.NewFileWriterMode("queries/query.log", 600)
if err != nil {
return errors.Wrap(err, "opening file")
}
} else {
f, err = logger.NewFileWriterMode(m.Config.QueryLogPath , 600)
f, err = logger.NewFileWriterMode(m.Config.Auth.QueryLogPath, 600)
if err != nil {
return errors.Wrap(err, "opening file")
}
@ -624,18 +626,18 @@ func (m *Command) setupQueryLogger() error {
m.querylogger = logger.NewStandardLogger(m.querylogOutput)
sighup := make(chan os.Signal, 1)
signal.Notify(sighup, syscall.SIGHUP)
go func() {
for {
// reopen log file on SIGHUP
<-sighup
err = f.Reopen()
if err != nil {
m.querylogger.Infof("reopen: %s\n", err.Error())
}
sighup := make(chan os.Signal, 1)
signal.Notify(sighup, syscall.SIGHUP)
go func() {
for {
// reopen log file on SIGHUP
<-sighup
err = f.Reopen()
if err != nil {
m.querylogger.Infof("reopen: %s\n", err.Error())
}
}()
}
}()
return nil
}