Полный гайд по /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-систем. Понимание структуры и содержания каждого подкаталога позволяет быстро находить и устранять проблемы, а также эффективно управлять системой. Регулярный анализ логов помогает предотвращать проблемы до их возникновения и обеспечивает безопасность системы.