Полный гайд по /var/log: что хранит каждая папка

Каталог /var/log — это настоящий кладезь информации о состоянии вашей Linux-системы. В этой статье мы подробно рассмотрим, что хранит каждая поддиректория, и как эффективно использовать эти логи для диагностики систем.

Общая структура /var/log

Каталог /var/log является стандартным местом хранения системных и прикладных логов в Linux. Он следует принципу "все логи в одном месте", что значительно упрощает мониторинг и диагностику систем.

Основные подкаталоги и файлы

/var/log/messages или /var/log/syslog

Это основной системный журнал, содержащий широкий спектр информации о работе системы:

  • Загрузка и выгрузка драйверов
  • Сетевые события
  • Аутентификация пользователей
  • Состояние аппаратуры

В системах на базе Debian/Ubuntu используется файл /var/log/syslog, а в системах на базе Red Hat/CentOS — /var/log/messages.

/var/log/auth.log или /var/log/secure

Содержит информацию об аутентификации и авторизации:

  • Входы и выходы пользователей
  • Попытки входа в систему
  • Использование sudo
  • SSH-подключения

В системах Red Hat/CentOS этот журнал называется /var/log/secure.

/var/log/kern.log

Журнал ядра системы, содержащий:

  • Сообщения о загрузке драйверов
  • Ошибки оборудования
  • Предупреждения ядра
  • Информация о подключении и отключении устройств

/var/log/boot.log

Содержит информацию о процессе загрузки системы:

  • Запуск системных сервисов
  • Ошибки во время загрузки
  • Сообщения инициализации

/var/log/dmesg

Содержит сообщения буфера ring buffer ядра, включая:

  • Информацию об обнаружении оборудования
  • Сообщения о загрузке драйверов
  • Ошибки оборудования на ранних стадиях загрузки

Можно также получить эту информацию командой dmesg.

/var/log/cron

Журнал работы планировщика задач cron:

  • Запуск задач по расписанию
  • Ошибки выполнения задач
  • Информация о попытках запуска

/var/log/maillog или /var/log/mail.log

Журнал почтовой системы:

  • Отправленные и полученные письма
  • Ошибки доставки
  • Информация о работе почтового сервера

В системах Debian/Ubuntu используется /var/log/mail.log, в Red Hat/CentOS — /var/log/maillog.

/var/log/httpd/ или /var/log/apache2/

Каталог для логов веб-сервера Apache:

  • access.log — журнал посещений
  • error.log — ошибки сервера
  • ssl_access.log и ssl_error.log — логи SSL-соединений

/var/log/nginx/

Аналогично Apache, но для веб-сервера Nginx:

  • access.log — журнал посещений
  • error.log — ошибки сервера

/var/log/mysql/ или /var/log/mysqld.log

Журналы базы данных MySQL:

  • general.log — общий журнал запросов
  • error.log — ошибки сервера
  • slow-query.log — медленные запросы
  • binary log — бинарные логи для репликации

/var/log/audit/

Каталог для аудита безопасности (если установлен auditd):

  • audit.log — подробная информация о системных вызовах
  • Попытки доступа к файлам
  • Изменения политик безопасности

/var/log/faillog

Содержит информацию о неудачных попытках входа в систему:

  • Количество неудачных попыток
  • Время последней неудачной попытки
  • Блокировки учетных записей

/var/log/lastlog

Содержит информацию о последнем входе в систему для каждого пользователя:

  • Время последнего входа
  • Имя хоста, с которого был выполнен вход
  • Терминал, через который был выполнен вход

/var/log/btmp

Журнал неудачных попыток входа в систему (аналогично lastlog, но для неудачных попыток).

/var/log/wtmp

Журнал всех входов и выходов пользователей из системы.

Практические команды для работы с /var/log

Просмотр логов

```bash

Просмотр конца файла

tail -f /var/log/syslog

Просмотр с фильтрацией

grep "error" /var/log/syslog

Просмотр с номерами строк

cat -n /var/log/auth.log

Просмотр с пагинацией

less /var/log/messages ```

Поиск по логам

```bash

Поиск по всем логам за сегодня

grep -r "error" /var/log/

Поиск с указанием времени

awk '/Mar 3/{print}' /var/log/messages

Поиск по нескольким файлам

grep -l "ssh" /var/log/*log ```

Анализ логов

```bash

Количество строк в логе

wc -l /var/log/auth.log

Уникальные IP-адреса в логе SSH

grep "Accepted" /var/log/auth.log | awk '{print $11}' | sort | uniq -c

Последние 10 успешных входов

last | head -10 ```

Безопасность и права доступа

Каталог /var/log обычно доступен только для чтения root и группе adm:

bash ls -la /var/log/ drwxr-xr-x 15 root root 4096 Mar 3 15:00 .

Для доступа к логам обычным пользователям они должны быть включены в группу adm:

bash sudo usermod -a -G adm username

Ротация логов

Файлы в /var/log подвергаются ротации с помощью logrotate. Конфигурация находится в /etc/logrotate.d/:

/var/log/messages { rotate 5 weekly compress delaycompress missingok notifempty create 640 root adm }

Мониторинг состояния логов

Для эффективного мониторинга рекомендуется:

  • Регулярно проверять размер логов
  • Настроить автоматическую ротацию
  • Использовать централизованные системы логирования
  • Настроить уведомления о критических ошибках

Заключение

Каталог /var/log — это мощный инструмент диагностики и мониторинга Linux-систем. Понимание структуры и содержания каждого подкаталога позволяет быстро находить и устранять проблемы, а также эффективно управлять системой. Регулярный анализ логов помогает предотвращать проблемы до их возникновения и обеспечивает безопасность системы.