В какой директории расположены лог-файлы в Linux?

«В какой директории расположены лог-файлы в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основная директория для логов в Linux — /var/log/. В DevOps работа с этой директорией — рутина для диагностики проблем с серверами и приложениями.

Ключевые файлы и директории:

  • Системные логи:
    • /var/log/syslog или /var/log/messages (зависит от дистрибутива) — общий системный журнал.
    • /var/log/auth.log или /var/log/secure — логи аутентификации (ssh, sudo).
    • /var/log/kern.log — сообщения ядра.
  • Логи демонов и сервисов:
    • /var/log/nginx/, /var/log/apache2/ — логи веб-серверов.
    • /var/log/mysql/, /var/log/postgresql/ — логи СУБД.
    • /var/log/docker/ — логи Docker-демона.
  • Логи системных утилит:
    • /var/log/dpkg.log — история установки пакетов (Debian/Ubuntu).
    • /var/log/yum.log — история установки пакетов (RHEL/CentOS).

Практическое использование в DevOps:

  1. Просмотр в реальном времени (tail):
    # Мониторинг системных сообщений
    tail -f /var/log/syslog
    # Отслеживание ошибок Nginx
    tail -f /var/log/nginx/error.log
  2. Поиск по логам (grep):
    # Найти все ошибки в логах аутентификации за сегодня
    grep -i "failed" /var/log/auth.log
    # Найти записи от определенного IP в логах Nginx
    grep "192.168.1.100" /var/log/nginx/access.log
  3. Ротация логов: Логи автоматически ротируются утилитой logrotate (конфиги в /etc/logrotate.conf и /etc/logrotate.d/). Старые логи сжимаются (.gz) или удаляются.

Важно: В современных контейнеризированных средах приложения часто пишут логи в stdout/stderr, а Docker или система оркестрации (Kubernetes) перенаправляет их в свои системы сбора (Loki, Elasticsearch), но знание стандартных путей /var/log/ критично для работы с виртуальными машинами и хостами.