Logrotate не работает с «Maxsize» с настроенным заданием cron

Заранее спасибо. У меня есть сервер, действующий как сервер syslog-ng и получающий журналы от нескольких сетевых устройств. Эти файлы быстро увеличиваются в размере, поэтому я создал файл logrotate с конфигурациями ниже.

    /syslog-ng/logs/devices/*.log
 {
   maxsize 10M
   notifempty                 # Do not rotate the log if it is empty
   compress                   # Old versions of log files are compressed with gzip
   hourly                     # Interval
   dateext                    # Archive old versions of log files adding a daily extension
   missingok                  # If the log file is missing, go on to the next one without issuing an error message
   rotate 5
   postrotate
   /bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2 >/dev/null || true endscript
   endscript
}

Я хотел, чтобы он менялся, если пройдет час или если размер любого из этих файлов журнала достигнет 10 МБ.Однако этого не происходит. Я узнал, что logrotate должен запускаться заданием cron для того, чтобы он имел какой-либо эффект, поэтому я добавил следующую запись в

    /etc/cron.d/
[root@proem cron.d]# cat syslog-logrotate-15mins
*/10 * * * * root /usr/sbin/logrotate /etc/logrotate.d/splunk-logrotate >/dev/null 2>&1

. Файлы по-прежнему достигают 200 и 300 Мбайт без вступления logrotate в силу, однако почасовой logrotate работает и max-size не действует.

Если вы посмотрите на файлы внутри каталога, который нужно повернуть

total 2441816
drwxr-x--- 2 bin bin      8192 May 28 11:50 .
drwxr-x--- 3 bin bin        21 May  7 11:31 ..
-rw------- 1 bin bin 288410030 May 28 12:00 ASA-10.40.36.19.log
-rw------- 1 bin bin   9160117 May 28 07:00 ASA-10.40.36.19.log-2019052807.gz
-rw------- 1 bin bin  10237580 May 28 08:00 ASA-10.40.36.19.log-2019052808.gz
-rw------- 1 bin bin  19497590 May 28 09:00 ASA-10.40.36.19.log-2019052809.gz
-rw------- 1 bin bin  25640952 May 28 10:00 ASA-10.40.36.19.log-2019052810.gz
-rw------- 1 bin bin  24734338 May 28 11:00 ASA-10.40.36.19.log-2019052811.gz
-rw------- 1 bin bin    292677 May 28 11:59 ASA-10.40.36.20.log
-rw------- 1 bin bin      4763 May 28 06:51 ASA-10.40.36.20.log-2019052807.gz
-rw------- 1 bin bin       627 May 28 07:55 ASA-10.40.36.20.log-2019052808.gz
-rw------- 1 bin bin      4842 May 28 08:59 ASA-10.40.36.20.log-2019052809.gz
-rw------- 1 bin bin      9432 May 28 09:59 ASA-10.40.36.20.log-2019052810.gz
-rw------- 1 bin bin      8106 May 28 10:59 ASA-10.40.36.20.log-2019052811.gz
-rw------- 1 bin bin   4085275 May 28 06:59 Bluecoat-proxy.log-2019052807.gz
-rw------- 1 bin bin   4695767 May 28 08:00 Bluecoat-proxy.log-2019052808.gz
-rw------- 1 bin bin  13686609 May 28 09:00 Bluecoat-proxy.log-2019052809.gz
-rw------- 1 bin bin  18211983 May 28 10:00 Bluecoat-proxy.log-2019052810.gz
-rw------- 1 bin bin   9524946 May 28 10:35 Bluecoat-proxy.log-2019052811.gz
-rw------- 1 bin bin 403974411 May 28 12:00 Firepower-10.40.82.15.log
-rw------- 1 bin bin   6592767 May 28 06:59 Firepower-10.40.82.15.log-2019052807.gz
-rw------- 1 bin bin   7364536 May 28 07:59 Firepower-10.40.82.15.log-2019052808.gz
-rw------- 1 bin bin  14523366 May 28 09:00 Firepower-10.40.82.15.log-2019052809.gz
-rw------- 1 bin bin  19629133 May 28 09:59 Firepower-10.40.82.15.log-2019052810.gz
-rw------- 1 bin bin  19185954 May 28 10:59 Firepower-10.40.82.15.log-2019052811.gz
-rw------- 1 bin bin    184590 May 28 11:59 Firepower-10.40.82.25.log
-rw------- 1 bin bin      6146 May 28 06:59 Firepower-10.40.82.25.log-2019052807.gz
-rw------- 1 bin bin      6319 May 28 07:59 Firepower-10.40.82.25.log-2019052808.gz
-rw------- 1 bin bin      5441 May 28 08:59 Firepower-10.40.82.25.log-2019052809.gz
-rw------- 1 bin bin      5220 May 28 09:59 Firepower-10.40.82.25.log-2019052810.gz
-rw------- 1 bin bin      5225 May 28 10:59 Firepower-10.40.82.25.log-2019052811.gz
-rw------- 1 bin bin 633384651 May 28 12:00 Paloalto-10.40.82.18.log
-rw------- 1 bin bin   5603673 May 28 07:00 Paloalto-10.40.82.18.log-2019052807.gz
-rw------- 1 bin bin   5722379 May 28 08:00 Paloalto-10.40.82.18.log-2019052808.gz
-rw------- 1 bin bin   6466792 May 28 09:00 Paloalto-10.40.82.18.log-2019052809.gz
-rw------- 1 bin bin   7398515 May 28 10:00 Paloalto-10.40.82.18.log-2019052810.gz
-rw------- 1 bin bin  39241773 May 28 11:00 Paloalto-10.40.82.18.log-2019052811.gz

Если вы заметили, что он вращается каждый час, а запись максимального размера не действует.

Я попытался выполнить logrotate -d только для того, чтобы увидеть и показать вам подробности.

[root@proem logrotate.d]# logrotate -d splunk-logrotate
reading config file splunk-logrotate
Allocating hash table for state file, size 15360 B

Handling 1 logs

    rotating pattern: /syslog-ng/logs/devices/*.log
      hourly (5 rotations)
    empty log files are not rotated, log files >= 10485760 are rotated earlier, old logs are removed
    considering log /syslog-ng/logs/devices/ASA-10.40.36.19.log
      log needs rotating
    considering log /syslog-ng/logs/devices/ASA-10.40.36.20.log
      log does not need rotating (log has been already rotated)considering log /syslog-ng/logs/devices/Firepower-10.40.82.15.log
      log needs rotating
    considering log /syslog-ng/logs/devices/Firepower-10.40.82.25.log
      log does not need rotating (log has been already rotated)considering log /syslog-ng/logs/devices/Paloalto-10.40.82.18.log
      log needs rotating
    rotating log /syslog-ng/logs/devices/ASA-10.40.36.19.log, log->rotateCount is 5
    dateext suffix '-2019052811'
    glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
    destination /syslog-ng/logs/devices/ASA-10.40.36.19.log-2019052811.gz already exists, skipping rotation
    rotating log /syslog-ng/logs/devices/Firepower-10.40.82.15.log, log->rotateCount is 5
    dateext suffix '-2019052811'
    glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
    destination /syslog-ng/logs/devices/Firepower-10.40.82.15.log-2019052811.gz already exists, skipping rotation
    rotating log /syslog-ng/logs/devices/Paloalto-10.40.82.18.log, log->rotateCount is 5
    dateext suffix '-2019052811'
    glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
    destination /syslog-ng/logs/devices/Paloalto-10.40.82.18.log-2019052811.gz already exists, skipping rotation

Работает только ежечасный logrotate. Я попробовал и "Размер", и "максимальный размер", чтобы добиться того же результата. Я также добавил сценарий logrotate в почасовые задания cron. Благодарю за вашу помощь.

0
задан 28 May 2019 в 11:50
1 ответ

Вполне возможно, что он пытается повернуть, когда файл превышает максимальный размер при запуске logrotate, однако, поскольку dateext имеет только часовую часть, это приведет к предыдущий повернутый файл должен быть перезаписан.

Я предлагаю добавить строку конфигурации:

dateformat -%Y%m%d%H%M

, чтобы минуты также составляли часть повернутого имени файла.

0
ответ дан 23 November 2019 в 23:41

Теги

Похожие вопросы