Что бы избежать заполнения диска старыми логами – необходимо настроить утилиту logrotate
.
Основной файл конфигурации – /etc/logrotate.conf
.
Для создания настроек отдельных логов – используем директорию /etc/logrotate.d
, которая описана как:
# RPM packages drop log rotation information into this directory include /etc/logrotate.d
Добавим наблюдение за логом /var/log/iptables.log
.
Создаём файл /etc/logrotate.d/iptables.conf
с таким содержимым:
/var/log/iptables.log { rotate 5 missingok notifempty compress size 1M daily create 0644 root root postrotate service rsyslog restart > /dev/null endscript }
Опции тут:
rotate
– количество копий старых логов;missingok
– не писать сообщения вstdout
, если файл отсутствует;notifempty
– не выполнять никаких действий, если файл пустой;compress
– сжиматьgzip
;size
– размер файла, при достижении которого он будет сжат и сохранён как старый;daily
– выполнять проверку каждый день;create
– права доступа и владелец при создании нового файла;
Дополнительные опции:
olddir
– перемещать старые логи в указанную директорию;postrotate/endscript
– действие, выполняемое после ротации логов;mail
– адрес, на который высылать уведомление о ротации;
Для проверки – выполняем:
# logrotate -f /etc/logrotate.conf
Учтите – это действие выполнит обязательную ротацию всех логов, указанных в конфигурации logrotate
.
Проверяем:
# ls -hl /var/log/iptables* -rw-r--r-- 1 root root 939K Dec 6 10:46 /var/log/iptables.log -rw-r--r-- 1 root root 451K Dec 6 10:40 /var/log/iptables.log-20141206.gz
# cat /var/lib/logrotate.status | grep iptables "/var/log/iptables.log" 2014-12-6