mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-16 07:16:38 +00:00
[management] enable access log cleanup by default (#5842)
This commit is contained in:
@@ -182,6 +182,8 @@ type ReverseProxyConfig struct {
|
|||||||
TrustedHTTPProxies []string `yaml:"trustedHTTPProxies"`
|
TrustedHTTPProxies []string `yaml:"trustedHTTPProxies"`
|
||||||
TrustedHTTPProxiesCount uint `yaml:"trustedHTTPProxiesCount"`
|
TrustedHTTPProxiesCount uint `yaml:"trustedHTTPProxiesCount"`
|
||||||
TrustedPeers []string `yaml:"trustedPeers"`
|
TrustedPeers []string `yaml:"trustedPeers"`
|
||||||
|
AccessLogRetentionDays int `yaml:"accessLogRetentionDays"`
|
||||||
|
AccessLogCleanupIntervalHours int `yaml:"accessLogCleanupIntervalHours"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// DefaultConfig returns a CombinedConfig with default values
|
// DefaultConfig returns a CombinedConfig with default values
|
||||||
@@ -646,6 +648,8 @@ func (c *CombinedConfig) ToManagementConfig() (*nbconfig.Config, error) {
|
|||||||
// Build reverse proxy config
|
// Build reverse proxy config
|
||||||
reverseProxy := nbconfig.ReverseProxy{
|
reverseProxy := nbconfig.ReverseProxy{
|
||||||
TrustedHTTPProxiesCount: mgmt.ReverseProxy.TrustedHTTPProxiesCount,
|
TrustedHTTPProxiesCount: mgmt.ReverseProxy.TrustedHTTPProxiesCount,
|
||||||
|
AccessLogRetentionDays: mgmt.ReverseProxy.AccessLogRetentionDays,
|
||||||
|
AccessLogCleanupIntervalHours: mgmt.ReverseProxy.AccessLogCleanupIntervalHours,
|
||||||
}
|
}
|
||||||
for _, p := range mgmt.ReverseProxy.TrustedHTTPProxies {
|
for _, p := range mgmt.ReverseProxy.TrustedHTTPProxies {
|
||||||
if prefix, err := netip.ParsePrefix(p); err == nil {
|
if prefix, err := netip.ParsePrefix(p); err == nil {
|
||||||
|
|||||||
@@ -106,13 +106,23 @@ func (m *managerImpl) CleanupOldAccessLogs(ctx context.Context, retentionDays in
|
|||||||
|
|
||||||
// StartPeriodicCleanup starts a background goroutine that periodically cleans up old access logs
|
// StartPeriodicCleanup starts a background goroutine that periodically cleans up old access logs
|
||||||
func (m *managerImpl) StartPeriodicCleanup(ctx context.Context, retentionDays, cleanupIntervalHours int) {
|
func (m *managerImpl) StartPeriodicCleanup(ctx context.Context, retentionDays, cleanupIntervalHours int) {
|
||||||
if retentionDays <= 0 {
|
if retentionDays < 0 {
|
||||||
log.WithContext(ctx).Debug("periodic access log cleanup disabled: retention days is 0 or negative")
|
log.WithContext(ctx).Debug("periodic access log cleanup disabled: retention days is negative")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if retentionDays == 0 {
|
||||||
|
retentionDays = 7
|
||||||
|
log.WithContext(ctx).Debugf("no retention days specified for access log cleanup, defaulting to %d days", retentionDays)
|
||||||
|
} else {
|
||||||
|
log.WithContext(ctx).Debugf("access log retention period set to %d days", retentionDays)
|
||||||
|
}
|
||||||
|
|
||||||
if cleanupIntervalHours <= 0 {
|
if cleanupIntervalHours <= 0 {
|
||||||
cleanupIntervalHours = 24
|
cleanupIntervalHours = 24
|
||||||
|
log.WithContext(ctx).Debugf("no cleanup interval specified for access log cleanup, defaulting to %d hours", cleanupIntervalHours)
|
||||||
|
} else {
|
||||||
|
log.WithContext(ctx).Debugf("access log cleanup interval set to %d hours", cleanupIntervalHours)
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanupCtx, cancel := context.WithCancel(ctx)
|
cleanupCtx, cancel := context.WithCancel(ctx)
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ func TestCleanupWithExactBoundary(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestStartPeriodicCleanup(t *testing.T) {
|
func TestStartPeriodicCleanup(t *testing.T) {
|
||||||
t.Run("periodic cleanup disabled with zero retention", func(t *testing.T) {
|
t.Run("periodic cleanup disabled with negative retention", func(t *testing.T) {
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
defer ctrl.Finish()
|
defer ctrl.Finish()
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ func TestStartPeriodicCleanup(t *testing.T) {
|
|||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
manager.StartPeriodicCleanup(ctx, 0, 1)
|
manager.StartPeriodicCleanup(ctx, -1, 1)
|
||||||
|
|
||||||
time.Sleep(100 * time.Millisecond)
|
time.Sleep(100 * time.Millisecond)
|
||||||
|
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ type ReverseProxy struct {
|
|||||||
|
|
||||||
// AccessLogRetentionDays specifies the number of days to retain access logs.
|
// AccessLogRetentionDays specifies the number of days to retain access logs.
|
||||||
// Logs older than this duration will be automatically deleted during cleanup.
|
// Logs older than this duration will be automatically deleted during cleanup.
|
||||||
// A value of 0 or negative means logs are kept indefinitely (no cleanup).
|
// A value of 0 will default to 7 days. Negative means logs are kept indefinitely (no cleanup).
|
||||||
AccessLogRetentionDays int
|
AccessLogRetentionDays int
|
||||||
|
|
||||||
// AccessLogCleanupIntervalHours specifies how often (in hours) to run the cleanup routine.
|
// AccessLogCleanupIntervalHours specifies how often (in hours) to run the cleanup routine.
|
||||||
|
|||||||
Reference in New Issue
Block a user