
Логи сервисов Linux – это основной источник информации о работе системы, сбоях, перезапусках служб и действиях пользователей. Без понимания того, в каких каталогах и файлах сохраняются журналы, диагностика проблем превращается в угадывание. В Linux нет единственного файла для всех событий: данные распределены по каталогам, форматам и механизмам логирования.
Большинство сервисов записывают сообщения в каталог /var/log, но структура внутри него зависит от дистрибутива, системы инициализации и конкретной службы. Например, события авторизации сохраняются отдельно от журналов веб-сервера, а сообщения ядра не совпадают с логами systemd. Администратору важно знать точные имена файлов и их назначение, чтобы не тратить время на просмотр нерелевантных данных.
Отдельного внимания требует systemd, так как его журналы могут вообще не существовать в виде файлов. В таком случае данные хранятся в бинарном формате и доступны только через утилиту journalctl. Это влияет на поиск ошибок, настройку хранения логов и их очистку, особенно на серверах с высокой нагрузкой.
В статье разобраны конкретные пути хранения логов сервисов Linux, различия между текстовыми файлами и журналом systemd, а также практические ориентиры, где искать нужные записи при отладке сетевых сервисов, служб авторизации и системных компонентов.
Каталог /var/log и его назначение для системных журналов

Каталог /var/log используется в Linux для хранения журналов, которые постоянно изменяются в процессе работы системы и сервисов. Он создаётся по стандарту FHS и присутствует во всех распространённых дистрибутивах. Доступ к большинству файлов внутри ограничен правами, так как журналы содержат данные о сбоях, сетевых соединениях и действиях пользователей.
Внутри /var/log размещаются как универсальные журналы, так и файлы, привязанные к конкретным службам. Формат и набор файлов зависят от используемого демона логирования и дистрибутива.
- /var/log/syslog – агрегированный журнал системных событий (Debian, Ubuntu)
- /var/log/messages – аналог syslog в RHEL, CentOS, Rocky Linux
- /var/log/auth.log или /var/log/secure – записи аутентификации и sudo
- /var/log/daemon.log – события фоновых служб
Многие сервисы создают собственные подкаталоги или файлы внутри /var/log. Например, Apache и Nginx пишут логи запросов и ошибок в отдельные директории, а базы данных используют собственные файлы с ротацией.
- /var/log/apache2/ – access.log и error.log
- /var/log/nginx/ – журналы HTTP и SSL
- /var/log/mysql/ или /var/log/mariadb/ – логи СУБД
Размер каталога /var/log может быстро расти. Для контроля используются правила logrotate, которые хранят архивы с расширениями .1, .gz, .xz. При поиске старых ошибок стоит проверять не только текущие файлы, но и архивы.
Если нужный сервис не пишет логи в /var/log, это часто указывает на использование systemd-journald без сохранения данных на диск. В таких случаях каталог существует, но часть журналов доступна только через journalctl.
Файлы syslog и messages где искать общие события системы

Файлы /var/log/syslog и /var/log/messages служат центральным местом сбора общих событий системы. Они принимают записи от ядра, сетевых служб, демонов и пользовательских процессов через rsyslog или syslog-ng. Какой из файлов используется, зависит от дистрибутива и его настроек.
В системах на базе Debian и Ubuntu основным является /var/log/syslog. В дистрибутивах семейства RHEL (CentOS, AlmaLinux, Rocky Linux) аналогичную роль выполняет /var/log/messages. Обычно активен только один из этих файлов, второй может отсутствовать.
В этих журналах фиксируются события, не имеющие специализированного файла: запуск и остановка сервисов, сетевые ошибки, сообщения cron, сбои демонов и предупреждения ядра. Формат строки стандартный и включает дату, имя хоста, источник и текст сообщения, что упрощает фильтрацию.
Для анализа проблем рекомендуется начинать именно с syslog или messages, так как они позволяют быстро восстановить хронологию событий. При поиске ошибок удобно использовать временные интервалы и имя сервиса, особенно при отладке перезапусков systemd-юнитов.
Файлы регулярно ротируются. Старые записи сохраняются как syslog.1, syslog.2.gz или messages-20240101.gz. При расследовании инцидентов стоит проверять архивы, так как нужные записи часто оказываются за пределами текущего файла.
Если syslog или messages остаются пустыми, это обычно указывает на перенаправление логов в systemd-journal. В таком случае записи присутствуют, но доступны только через journalctl, а сами файлы в /var/log могут не обновляться.
Логи аутентификации пользователей в auth.log и secure
Журналы /var/log/auth.log и /var/log/secure содержат записи, связанные с проверкой подлинности пользователей и управлением правами. Какой файл используется, определяется дистрибутивом: auth.log характерен для Debian и Ubuntu, secure – для CentOS, Rocky Linux и других систем семейства RHEL.
В этих файлах фиксируются все попытки входа через SSH, использование sudo, смена паролей, ошибки PAM и блокировки учётных записей. Каждая запись содержит имя пользователя, источник подключения и результат проверки, что позволяет точно определить причину отказа или факт успешного входа.
- Успешные и неудачные SSH-подключения
- Запуски команд через sudo с указанием инициатора
- Ошибки модулей PAM при аутентификации
- События смены и истечения паролей
При анализе инцидентов стоит обращать внимание на повторяющиеся ошибки входа с одного IP-адреса или попытки доступа под несуществующими пользователями. Такие записи часто указывают на перебор паролей или автоматические сканирования.
Файлы регулярно архивируются механизмом logrotate. Старые данные доступны в виде auth.log.1, secure-20240101.gz и аналогичных файлов. Для расследований с задержкой по времени проверка архивов обязательна.
Если записи отсутствуют, аутентификация может логироваться только в systemd-journal. В этом случае файл существует, но не обновляется, и для просмотра событий требуется использование journalctl с фильтрацией по службам SSH и sudo.
Журналы ядра Linux dmesg и kern.log пути и отличия

Файл /var/log/kern.log – это текстовый журнал, куда сообщения ядра записываются демоном логирования. Он присутствует не во всех дистрибутивах, но часто используется в Debian и Ubuntu. В отличие от dmesg, kern.log сохраняется на диск и проходит ротацию, что позволяет анализировать события за прошедшие дни.
Основное различие заключается в источнике данных: dmesg читает текущий буфер ядра, а kern.log содержит сохранённые записи. Сообщения могут частично совпадать, но kern.log обычно включает только те события, которые были переданы в систему логирования.
В системах, где используется только systemd-journal, файл kern.log может отсутствовать. В таком случае сообщения ядра сохраняются в журнале systemd и доступны через journalctl -k, а каталог /var/log не содержит отдельного файла для kernel-событий.
Где systemd хранит логи и как проверить через journalctl

Systemd использует собственный журнал journald, который хранит логи в бинарном формате в каталоге /var/log/journal. Если этот каталог отсутствует, логи сохраняются в /run/log/journal, что означает временное хранение в памяти и потерю данных после перезагрузки.
Файлы в /var/log/journal имеют расширение .journal и не читаются напрямую текстовыми редакторами. Для просмотра записей используется утилита journalctl, которая умеет фильтровать логи по времени, сервисам, приоритетам и другим параметрам.
Основные команды для работы с журналом:
- journalctl -u имя_сервиса – логи конкретного systemd-юнита
- journalctl -b – логи текущей загрузки
- journalctl —since «2025-12-01 10:00» —until «2025-12-01 12:00» – логи за указанный промежуток
- journalctl -p err..alert – логи с уровнем ошибки и выше
Для настройки длительного хранения журналов нужно создать каталог /var/log/journal и перезапустить systemd-journald. Это позволит сохранять логи между перезагрузками. Без этой настройки логи доступны только до перезагрузки.
Journalctl поддерживает экспорт в текстовый формат и фильтрацию по ID процесса, пользователю, типу сообщения, что упрощает поиск специфических ошибок. Ротация и очистка журналов управляется через параметры в /etc/systemd/journald.conf.
Расположение логов веб серверов Apache и Nginx

Веб-серверы Apache и Nginx ведут отдельные журналы для доступа к сайту и ошибок, которые помогают анализировать трафик и выявлять проблемы. Их расположение зависит от дистрибутива и настроек конфигурации, но существует стандартная структура по умолчанию.
| Веб-сервер | Каталог логов по умолчанию | Файлы логов | Назначение файлов |
|---|---|---|---|
| Apache (Debian/Ubuntu) | /var/log/apache2/ | access.log | Журнал всех HTTP-запросов |
| Apache (Debian/Ubuntu) | /var/log/apache2/ | error.log | Ошибки сервера и предупреждения |
| Apache (RHEL/CentOS) | /var/log/httpd/ | access_log | Записи доступа к веб-серверу |
| Apache (RHEL/CentOS) | /var/log/httpd/ | error_log | Сообщения об ошибках и критических событиях |
| Nginx | /var/log/nginx/ | access.log | Журнал HTTP-запросов |
| Nginx | /var/log/nginx/ | error.log | Ошибки и предупреждения веб-сервера |
Для изменения путей логов следует редактировать конфигурационные файлы:
- Apache – файлы apache2.conf или виртуальных хостов (/etc/apache2/sites-available/ или /etc/httpd/conf.d/)
- Nginx – основной конфигурационный файл nginx.conf или файлы виртуальных серверов в /etc/nginx/sites-available/
Ротация логов обычно настраивается через системный logrotate с отдельными правилами для каждого сервера. Это предотвращает переполнение диска и сохраняет архивы с расширениями .1, .gz.
Где сервисы systemd пишут логи при отсутствии файлов

Когда у сервиса systemd нет традиционных файлов логов в каталоге /var/log, записи сохраняются в бинарном журнале systemd-journald. Этот журнал хранится в каталоге /var/log/journal, если он существует, или во временном каталоге /run/log/journal, где данные исчезают после перезагрузки.
Логи недоступны в виде текстовых файлов и доступны только через утилиту journalctl. По умолчанию все сообщения сервисов, включая ошибки и предупреждения, централизованно собираются systemd-journald, что исключает необходимость ручного создания логов в файлах.
Для просмотра логов конкретного сервиса используется команда:
journalctl -u имя_сервиса
Чтобы обеспечить длительное хранение логов, нужно создать каталог /var/log/journal и перезапустить службу journald. Иначе данные будут сохраняться только в памяти и исчезать после перезагрузки.
Если требуется экспортировать записи в читаемый формат, можно использовать:
journalctl -u имя_сервиса —no-pager или journalctl -u имя_сервиса > log.txt
Таким образом, даже при отсутствии файлов в традиционных местах логи сервисов systemd сохраняются в централизованном журнале, доступном для анализа и фильтрации с помощью стандартных инструментов systemd.
Файлы настроек logrotate и каталоги архивных логов

Утилита logrotate управляет ротацией, сжатием и удалением лог-файлов, предотвращая переполнение диска. Основной конфигурационный файл находится по пути /etc/logrotate.conf, где задаются глобальные параметры и подключаются дополнительные настройки из каталога /etc/logrotate.d/.
В каталоге /etc/logrotate.d/ содержатся файлы с настройками для отдельных сервисов и приложений. Каждый файл описывает правила ротации для логов конкретной службы, включая:
- Периодичность ротации (ежедневно, еженедельно, ежемесячно)
- Максимальное количество архивов для хранения
- Тип сжатия (gzip, bzip2, xz)
- Действия до и после ротации (перезапуск сервиса, очистка)
Архивные логи обычно сохраняются в тех же каталогах, что и исходные файлы, с добавлением суффиксов .1, .2.gz и так далее. Например, syslog.1 – последний сохранённый лог, а syslog.2.gz – более старый сжатый архив.
Для проверки текущих настроек и отладки полезно запускать logrotate в режиме отладки:
logrotate -d /etc/logrotate.conf
Чтобы гарантировать своевременную ротацию, logrotate вызывается системным планировщиком cron или timer-ом systemd, обычно ежедневно. Несвоевременная ротация приводит к росту файлов журналов и риску заполнения диска.
Вопрос-ответ:
Где находятся системные логи в Linux и как их найти?
Основное место для системных логов — каталог /var/log. В нём расположены разные файлы и папки, где сохраняются сообщения ядра, службы, аутентификации и приложений. Например, syslog или messages содержат общие системные события, auth.log или secure — записи входа и прав пользователей. Для поиска нужного лога нужно знать название сервиса и проверить соответствующие файлы в этом каталоге.
Почему в некоторых системах отсутствуют файлы логов и как получить доступ к журналам?
Если в /var/log нет привычных файлов с логами, вероятно, система использует systemd-journald. В этом случае логи хранятся в бинарных файлах в каталоге /var/log/journal или во временной директории. Для просмотра используют утилиту journalctl, которая позволяет фильтровать записи по времени, сервисам и другим параметрам. Для сохранения логов между перезагрузками нужно убедиться, что каталог для постоянного хранения существует и настроен.
В каких файлах хранится информация о попытках входа в систему и ошибках аутентификации?
Данные об аутентификации и попытках входа сохраняются в файлах /var/log/auth.log (Debian, Ubuntu) и /var/log/secure (RHEL, CentOS). Здесь фиксируются успешные и неудачные подключения через SSH, использование sudo, смена паролей и ошибки PAM. Эти файлы полезны для анализа подозрительной активности и поиска причин проблем с доступом.
Как узнать, где расположены логи веб-серверов Apache и Nginx на моём сервере?
По умолчанию логи Apache находятся в /var/log/apache2/ (Debian, Ubuntu) или /var/log/httpd/ (RHEL, CentOS), а Nginx — в /var/log/nginx/. Внутри каталогов обычно есть два основных файла: access.log для записей запросов и error.log для ошибок сервера. Путь к логам можно изменить в конфигурационных файлах серверов.
Как работает ротация логов и где хранятся архивы старых записей?
Ротация логов организуется с помощью logrotate, который перемещает старые файлы в архивы с суффиксами вроде .1, .gz. Настройки расположены в /etc/logrotate.conf и в папке /etc/logrotate.d/. Архивы сохраняются в тех же каталогах, что и исходные логи, что позволяет сохранять историю событий без роста занимаемого места. Если ротация не настроена, логи могут занимать слишком много дискового пространства.
