Перейти к содержанию

Как правильно хранить логи

Как настроить ротацию логов в journald

  1. Откройте для редактирования файл /etc/systemd/journald.conf.
  2. В файле укажите следующие параметры:

    Compress=yes
    RateLimitBurst=0
    SystemMaxUse=50G
    SystemKeepFree=20G
    SystemMaxFileSize=250M
    MaxFileSec=21d
    MaxRetentionSec=14d
    
  3. Перезапустите сервис:

    systemctl restart systemd-journald
    

Как настроить отправку журналов системы во внешний агрегатор?

Для этого необходимо настроить rsyslog.

  1. В файле /etc/systemd/journald.conf установите параметр:

    ForwardToSyslog=yes
    
  2. Перезапусите journald:

    systemctl restart systemd-journald
    
  3. Проверьте наличие logrotate и установите при отсутствии:

    rpm -qa |grep logr
    logrotate-3.8.6-19.el7.x86_64
    
  4. Настройте ротацию системных журналов в файле /etc/logrotate.d/syslog.

  5. Проверьте содержимое:

    /var/log/cron
    /var/log/maillog
    /var/log/messages
    /var/log/secure
    /var/log/spooler
    {
        missingok
        compress
        daily
        sharedscripts
        postrotate
            /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
    }
    
  6. Добавьте в crontab строки:

    crontab -e
    
    15 0 * * * logrotate /etc/logrotate.conf 2>&1 > /dev/null
    
  7. В файл /etc/rsyslog.conf добавьте строку:

    *.* @@(o)<server>:<port>;RSYSLOG_SyslogProtocol23Format
    

    где

    • server — имя или адрес сервера агрегации журналов
    • port — порт сбора журналов
  8. Перезапустите сервис rsyslog:

    systemctl restart rsyslog