diff options
author | zsdc <taras@vyos.io> | 2022-03-07 18:20:53 +0200 |
---|---|---|
committer | zsdc <taras@vyos.io> | 2022-03-07 18:20:53 +0200 |
commit | ebb524702e1cd60a74b00727b7bd24d375648c78 (patch) | |
tree | 7316b9e1c2434d8e18ce798a644e393078008fe8 /src/conf_mode/system-syslog.py | |
parent | 1d0d4e83d8413c1b389be763cadd5d150d4be982 (diff) | |
download | vyos-1x-ebb524702e1cd60a74b00727b7bd24d375648c78.tar.gz vyos-1x-ebb524702e1cd60a74b00727b7bd24d375648c78.zip |
logrotate: T4250: Fixed logrotate config generation
* Removed `/var/log/auth.log` and `/var/log/messages` from
`/etc/logrotate.d/rsyslog`, because they conflict with VyOS-controlled
items what leads to service error.
* Removed generation config file for `/var/log/messages` from
`system-syslog.py` - this should be done from `syslom logs` now.
* Generate each logfile from `system syslog file` to a dedicated
logrotate config file.
* Fixed logrotate config file names in
`/etc/rsyslog.d/vyos-rsyslog.conf`.
* Added default logrotate settins for `/var/log/messages`
Diffstat (limited to 'src/conf_mode/system-syslog.py')
-rwxr-xr-x | src/conf_mode/system-syslog.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/conf_mode/system-syslog.py b/src/conf_mode/system-syslog.py index 3d8a51cd8..309b4bdb0 100755 --- a/src/conf_mode/system-syslog.py +++ b/src/conf_mode/system-syslog.py @@ -17,6 +17,7 @@ import os import re +from pathlib import Path from sys import exit from vyos.config import Config @@ -89,7 +90,7 @@ def get_config(config=None): filename: { 'log-file': '/var/log/user/' + filename, 'max-files': '5', - 'action-on-max-size': '/usr/sbin/logrotate /etc/logrotate.d/' + filename, + 'action-on-max-size': '/usr/sbin/logrotate /etc/logrotate.d/vyos-rsyslog-generated-' + filename, 'selectors': '*.err', 'max-size': 262144 } @@ -205,10 +206,17 @@ def generate(c): conf = '/etc/rsyslog.d/vyos-rsyslog.conf' render(conf, 'syslog/rsyslog.conf.tmpl', c) + # cleanup current logrotate config files + logrotate_files = Path('/etc/logrotate.d/').glob('vyos-rsyslog-generated-*') + for file in logrotate_files: + file.unlink() + # eventually write for each file its own logrotate file, since size is # defined it shouldn't matter - conf = '/etc/logrotate.d/vyos-rsyslog' - render(conf, 'syslog/logrotate.tmpl', c) + for filename, fileconfig in c.get('files', {}).items(): + if fileconfig['log-file'].startswith('/var/log/user/'): + conf = '/etc/logrotate.d/vyos-rsyslog-generated-' + filename + render(conf, 'syslog/logrotate.tmpl', { 'config_render': fileconfig }) def verify(c): |