rsyslog, journalctl — логування

rsyslog, journalctl — логування

Изображение записи по умолчанию
0

rsyslog, journalctl — логирование

Логирование — основа диагностики в Linux. Системные события, ошибки приложений, предупреждения — всё записывается в логи.

/var/log/ — каталог логов

# Основные лог-файлы
ls /var/log/

# Ключевые файлы:
/var/log/syslog      # общесистемные события (Debian/Ubuntu)
/var/log/messages    # общесистемные события (RHEL/CentOS)
/var/log/auth.log    # аутентификация (Debian/Ubuntu)
/var/log/secure      # аутентификация (RHEL/CentOS)
/var/log/kern.log    # сообщения ядра
/var/log/dmesg       # сообщения загрузки ядра
/var/log/cron        # лог cron
/var/log/mail.log    # почтовый сервер
/var/log/nginx/      # логи nginx
/var/log/apache2/    # логи apache
# Просмотр логов в реальном времени
tail -f /var/log/syslog

# Последние 50 строк
tail -n 50 /var/log/syslog

# Поиск ошибок
grep "error" /var/log/syslog
grep -i "fail" /var/log/auth.log

journalctl — логи systemd

Современные дистрибутивы используют systemd journal — централизованный сбор логов.

# Все логи
journalctl

# Последние 100 строк
journalctl -n 100

# Логи в реальном времени
journalctl -f

# Логи текущей загрузки
journalctl -b

# Логи предыдущей загрузки
journalctl -b -1

# Логи конкретного сервиса
journalctl -u nginx
journalctl -u sshd
journalctl -u cron

# Ошибки и выше
journalctl -p err

# Предупреждения и выше
journalctl -p warning

# За период времени
journalctl --since "2025-06-20" --until "2025-06-20 18:00"
journalctl --since "1 hour ago"
journalctl --since today

Уровни важности (priority)

  • emerg (0) — система неработоспособна
  • alert (1) — требует немедленного вмешательства
  • crit (2) — критическая ситуация
  • err (3) — ошибка
  • warning (4) — предупреждение
  • notice (5) — уведомление
  • info (6) — информация
  • debug (7) — отладка
# Комбинированный фильтр
journalctl -u nginx -p err --since today

# По конкретному PID
journalctl _PID=1234

# По пользователю
journalctl _UID=1000

rsyslog — классическая система логирования

Конфигурация /etc/rsyslog.conf

# Формат: facility.priority    действие
# facility: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, syslog, user, uucp, local0-local7
# priority: debug, info, notice, warning, err, crit, alert, emerg

# Примеры правил:
auth,authpriv.*    /var/log/auth.log
*.*;auth,authpriv.none    /var/log/syslog
cron.*             /var/log/cron.log
mail.*             /var/log/mail.log
*.emerg            :omusrmsg:*   # отправить всем пользователям
local0.*           /var/log/myapp.log
# Перезапуск rsyslog после изменения
sudo systemctl restart rsyslog

logger — отправка сообщений в syslog

# Отправить сообщение
logger "Test message from command line"

# С указанием tag
logger -t myapp "Application started"

# С приоритетом
logger -p local0.err "Error in myapp"

# Проверить
tail /var/log/syslog | grep myapp

dmesg — сообщения ядра

# Все сообщения ядра
dmesg

# Последние 20
dmesg | tail -20

# В реальном времени
dmesg -w

# Ошибки
dmesg --level=err

logrotate — управление размером логов

# Конфигурация: /etc/logrotate.conf и /etc/logrotate.d/
cat /etc/logrotate.d/nginx

# Пример:
/var/log/nginx/*.log {
    daily
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
}

Практическое задание

  1. Просмотрите системные логи: journalctl -n 50
  2. Проверьте логи SSH: journalctl -u sshd -n 20 или grep ssh /var/log/auth.log
  3. Найдите ошибки: journalctl -p err --since today
  4. Отправьте тестовое сообщение: logger -t test "Hello from CLI"
  5. Проверьте: journalctl -t test
  6. Посмотрите сообщения ядра: dmesg | tail -20
  7. Изучите конфигурацию rsyslog: cat /etc/rsyslog.conf

Comments

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Related Post