Ответ
Логи Systemd управляются через journald. Основной инструмент для их просмотра — команда journalctl. Вот наиболее полезные варианты использования:
# Показать логи конкретного сервиса (unit)
journalctl -u nginx.service
# Следить за логами в реальном времени (аналог tail -f)
journalctl -u postgresql.service -f
# Логи за последний час
journalctl -u docker.service --since "1 hour ago"
# Логи с подробным выводом (включая PID, UID, команду)
journalctl -u sshd.service -o verbose
# Логи только с текущей загрузки системы
journalctl -u kubelet.service -b
# Экспорт логов в JSON для дальнейшей обработки
journalctl -u myapp.service -o json
Практическое применение в DevOps:
- Мониторинг и отладка: Используем
-fдля отслеживания запуска сервисов в CI/CD пайплайнах. - Сбор метрик: Фильтруем логи по уровню (
journalctl -p err) для алертинга в Prometheus/Grafana. - Аудит безопасности: Анализируем логи входа через
journalctl _COMM=sshd.
Где физически хранятся логи?
Бинарные журналы находятся в /var/log/journal/. Для персистентного хранения нужно создать директорию:
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald