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


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