Примеры настроек logrotate для различных программ

Подробнее о настройке Logrotate .

PostgreSQL

vi /etc/logrotate.d/postgresql-common

/var/log/postgresql/*.log {
daily
rotate 7
copytruncate
compress
delaycompress
notifempty
missingok
su root root
}

logrotate -f /etc/logrotate.d/postgresql-common

MariaDB/MySQL

vi /etc/logrotate.d/mariadb

/var/log/mariadb/mariadb.log {
create 640 mysql mysql
notifempty
daily
rotate 3
missingok
compress
postrotate
# just if mysqld is really running
if test -x /usr/bin/mysqladmin &&
/usr/bin/mysqladmin ping &>/dev/null
then
/usr/bin/mysqladmin flush-logs
fi
endscript
}

Также необходимо создать файл .my.cnf с логином и паролем для подключения в СУБД:

vi /root/.my.cnf

[client]
user=root
password=password

Запустить можно командой:

logrotate -f /etc/logrotate.d/mariadb

PHP-FPM

vi /etc/logrotate.d/php-fpm

/var/log/php-fpm/*.log {
rotate 14
missingok
notifempty
sharedscripts
compress
maxage 14
postrotate
/bin/kill -SIGUSR1 `cat /var/run/php-fpm/php-fpm.pid 2>/dev/null` 2>/dev/null || true
endscript
}

logrotate -f /etc/logrotate.d/php-fpm

Logstash-forwarder

vi /etc/logrotate.d/logstash

/var/log/logstash-forwarder/*.log {
rotate 30
size=10M
missingok
notifempty
daily
compress
maxage 30
postrotate
(/usr/bin/systemctl restart logstash-forwarder || /sbin/service logstash-forwarder restart) > /dev/null 2>&1
endscript
}

/var/log/logstash-forwarder/*.err {
rotate 30
size=10M
missingok
notifempty
daily
compress
maxage 30
postrotate
(/usr/bin/systemctl restart logstash-forwarder || /sbin/service logstash-forwarder restart) > /dev/null 2>&1
endscript
}

logrotate -f /etc/logrotate.d/logstash

NGINX

vi /etc/logrotate.d/nginx

/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 nginx nginx
sharedscripts
postrotate
test ! -f /var/run/nginx.pid || /bin/kill -USR1 `cat /var/run/nginx.pid` 2>/dev/null || true
endscript
}

* обратите внимание, что после ротации мы перезапускаем nginx по идентификатору процесса, который хранится в файле /var/run/nginx.pid . Однако, в вашем случае, путь до файла может быть другой. Его можно посмотреть в конфигурационном файле nginx.

logrotate -f /etc/logrotate.d/nginx

Apache (httpd)

vi /etc/logrotate.d/apache2

/var/log/apache2/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 www-data www-data
sharedscripts
postrotate
if /etc/init.d/apache2 status > /dev/null ; then
/etc/init.d/apache2 reload > /dev/null;
fi;
endscript
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then
run-parts /etc/logrotate.d/httpd-prerotate;
fi;
endscript
}

logrotate -f /etc/logrotate.d/apache2

Kannel в CentOS

vi /etc/logrotate.d/kannel

/var/log/kannel/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 root root
postrotate
/bin/kill -1 `/bin/cat /var/run/kannel/kannel_bearerbox.pid` || true > /dev/null 2> /dev/null
/bin/kill -1 `/bin/cat /var/run/kannel/kannel_smsbox.pid` || true > /dev/null 2> /dev/null
endscript
}

logrotate -f /etc/logrotate.d/kannel

Сервер DHCP

vi /etc/logrotate.d/dhcp

/var/log/dhcp.log {
daily
rotate 10
missingok
notifempty
compress
delaycompress
sharedscripts
create 0600 root root
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

logrotate -f /etc/logrotate.d/dhcp

OpenVPN

vi /etc/logrotate.d/openvpn

/var/log/openvpn/openvpn*.log {
daily
rotate 7
compress
copytruncate
delaycompress
missingok
notifempty
}

logrotate -f /etc/logrotate.d/openvpn

ISPmanager

vi /etc/logrotate.d/ispmanager

/usr/local/mgr5/var/logs/*.log* {
daily
rotate 10
compress
copytruncate
delaycompress
missingok
notifempty
}

logrotate -f /etc/logrotate.d/ispmanager

Freeradius

vi /etc/logrotate.d/freeradius

/var/log/radius/radius.log {
daily
compress
rotate 14
missingok
copytruncate
}

logrotate -f /etc/logrotate.d/freeradius

EnglishRussianUkrainian