Как узнать, где хранятся логи приложения в Linux?

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

Ответ

В Linux логи приложений обычно находятся в директории /var/log/. Конкретное расположение зависит от приложения и способа его запуска.

Основные системные логи:

  • /var/log/syslog или /var/log/messages — общие системные сообщения.
  • /var/log/auth.log — логи аутентификации и авторизации.
  • /var/log/daemon.log — логи фоновых служб (демонов).
  • /var/log/nginx/, /var/log/apache2/ — логи веб-серверов.

Для поиска логов конкретного приложения:

  1. Проверьте конфигурацию приложения. Часто путь к лог-файлу указан в конфиге (например, в /etc/app/config.conf).
  2. Используйте grep для поиска по содержимому:
    grep -r "myapp" /var/log/
  3. Для сервисов, управляемых systemd, используйте journalctl:
    # Показать логи конкретного сервиса
    journalctl -u myapp.service
    # Показать логи с фильтрацией по исполняемому файлу
    journalctl _COMM=myapp
    # Следить за логами в реальном времени
    journalctl -u myapp.service -f
  4. Проверьте, куда пишет сам процесс, с помощью lsof:
    lsof -p $(pgrep myapp) | grep -E "REG.*log"

Важно: Для контейнеризированных приложений логи обычно пишутся в stdout/stderr и собираются драйвером логирования Docker (по умолчанию в json-file), а оттуда могут агрегироваться в централизованную систему (Loki, ELK).