Skip to main content

Логгирование

Journalctl

sudo journalctl Просмотреть системный журнал
sudo journalctl -u ssh Логи конкретной службы
sudo journalctl -f Последние логи (как tail -f) 
sudo journalctl -p err Только ошибки

Journalctl по умолчанию сохраняет логи в ОП

Rsyslog

Rsyslog нужен:

  • нужны обычные текстовые файлы /var/log/auth.log, /var/log/syslog;
  • необходима ротацию логов через logrotate;
  • нужно отправлять логи на внешний syslog-сервер (например, в SIEM).

Установка: 

sudo apt install rsyslog
sudo systemctl enable --now rsyslog

Настройка

/etc/rsyslog.conf Основной файл настроек. Дополнительные файлы настроек подключаются в алфавитном порядке из /etc/rsyslog.d/*.conf
/etc/rsyslog.d/50-default.conf Создается при установке. Базовые правила. Можно комментировать. Например 
auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none  -/var/log/syslog
mail.*                  -/var/log/mail.log
cron.*                  -/var/log/cron.log
Рекомендованные файлы
10-base.conf Базовые глобальные настройки 
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
20-remote.conf Отправка логов на удалённый сервер 
*.* @@syslog.example.com:514
30-ssh.conf Логи от sshd 
if ($programname == 'sshd' or $programname == 'sudo') then /var/log/security.log
& stop
40-sudo.conf Логи sudo 
if ($programname == 'sudo') then /var/log/sudo.log
99-local.conf Локальные мелкие правки, фильтры, формат вывода