mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-06 10:57:51 +00:00
move query logger option to auth
This commit is contained in:
parent
49e9faa03b
commit
0ef67fd699
3 changed files with 27 additions and 27 deletions
|
|
@ -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")
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue