Примеры настроек 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

# UNIX
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет