Просмотр логов Linux
Самые частые проблемы, которые можно отследить в логах Linux
Введение: Логи Linux как аналог Журнала событий Windows
Если в Windows администраторы привыкли работать с "Журналом событий" (Event Viewer), то в Linux всю диагностическую информацию можно найти в текстовых логах.
Эти файлы — "золотая жила" для диагностики проблем сервера.
Умение быстро анализировать логи означает уменьшение времени простоя.
Ключевые логи Linux и что в них искать
| Путь к логу | Основное назначение | Ключевые слова для поиска проблем |
| /var/log/auth.log (или /var/log/secure) | Аутентификация и авторизация | Failed password, Invalid user, authentication failure, sudo, BREAK-IN |
| /var/log/syslog (или /var/log/messages) | Общие системные сообщения | error, failed, panic, oom, segfault, IO error |
| /var/log/kern.log | Сообщения ядра | kernel:, oom-killer, segfault, hardware error, TCP |
| /var/log/apache2/error.log (или nginx) | Веб-сервер Apache | Permission denied, File does not exist, client denied, PHP Fatal error |
| /var/log/mysql/error.log (или mariadb) | База данных MySQL | ERROR, Warning, Aborted connection, InnoDB, crash |
| /var/log/mail.log | Почтовый сервер | Connection refused, authentication failed, reject, spam |
| /var/log/ufw.log (или firewalld) | Файрвол | BLOCK, DENY, INVALID, limit |
Таблица частых проблем и их диагностика по логам
| Проблема | Симптомы | Где искать (логи) | Что именно искать |
| Неудачные попытки входа | Медленная работа SSH, подозрительная активность | /var/log/auth.log, /var/log/secure | Failed password for, много попыток с разных IP, несуществующие имена пользователей |
| Нехватка памяти (OOM) | Сервер "зависает", процессы завершаются | /var/log/syslog, /var/log/kern.log | Out of memory, oom-killer, killed process |
| Дисковые проблемы | Ошибки чтения/записи, медленная работа диска | /var/log/syslog, dmesg | IO error, SATA link down, SMART error, filesystem read-only |
| Проблемы с сетью | Потеря соединения, недоступность сервисов | /var/log/syslog, /var/log/kern.log | Network is unreachable, Connection refused, timeout, packet loss |
| Падение сервисов | Веб-сайт/БД не работает, службы останавливаются | Соответствующие логи сервиса (/var/log/nginx/, /var/log/mysql/) | segmentation fault, fatal error, exited with code, Address already in use |
| Проблемы с веб-сервером | Ошибки 500/503, медленная загрузка страниц | /var/log/apache2/error.log или /var/log/nginx/error.log | Permission denied, premature end of script headers, connect() failed, timeout |
| Проблемы с базой данных | Ошибки соединения с БД, медленные запросы | /var/log/mysql/error.log, slow-query log | Too many connections, Table is marked as crashed, deadlock, InnoDB ошибки |
| Атаки brute-force | Необычно высокая нагрузка на аутентификацию | /var/log/auth.log, fail2ban logs | Множественные Failed password за короткий период, одинаковые пользователи с разных IP |
Практические команды для анализа логов
Основные команды для просмотра логов
# Просмотр логов в реальном времени
tail -f /var/log/syslog
# Поиск ошибок за последний час
grep -i error /var/log/syslog | grep "$(date '+%b %e %H:')"
# Просмотр последних 100 строк с подсветкой ошибок
tail -100 /var/log/syslog | grep --color -E "error|fail|critical"
# Мониторинг неудачных попыток входа
tail -f /var/log/auth.log | grep -i "failed"
Пример вывода tail -f /var/log/syslog:
Пример вывода tail -100 /var/log/syslog | grep --color -E "error|fail|critical":
Пример вывода tail -f /var/log/auth.log | grep -i "failed":
Анализ частых ошибок
# Топ IP-адресов с неудачными попытками входа
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -20
# Поиск самых частых ошибок в логах веб-сервера
grep "\[error\]" /var/log/nginx/error.log | cut -d ' ' -f 6- | sort | uniq -c | sort -nr | head -10
# Проверка перезапусков сервисов
grep -E "(Started|Stopped) .*service" /var/log/syslog | tail -20
Пример вывода grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -20:
Пример вывода grep "\[error\]" /var/log/nginx/error.log | cut -d ' ' -f 6- | sort | uniq -c | sort -nr | head -10:
Автоматизация мониторинга
# Скрипт для проверки критических ошибок
#!/bin/bash
CRITICAL_LOGS="/var/log/syslog /var/log/auth.log /var/log/kern.log"
ERROR_PATTERNS="panic|oom|segfault|hard error|failed|crashed"
for log in $CRITICAL_LOGS; do
if [ -f "$log" ]; then
echo "=== Проверка $log ==="
grep -E -i "$ERROR_PATTERNS" "$log" | tail -5
fi
done
Создаём новый файл для скрипта и сразу редактируем его:
nano script.sh
Делаем скрипт исполняемым:
chmod +x script.sh
И запускаем:
./script.sh
Пример вывода скрипта:
Как анализировать логи
Через панель управления (если доступна)
- ISPManager: Логи → выбор нужного лога
- Webmin: Система → Log File Viewer
- cPanel: Файловый менеджер → папка /var/log/
Через SSH
# Просмотр последних записей в логе
tail -n 50 /путь/к/логу
# Просмотр в реальном времени
tail -f /путь/к/логу
# Поиск ошибок
grep -i error /путь/к/логу
Популярные сценарии
Не удаётся зайти по SSH/FTP
- Откройте: /var/log/auth.log
- Проверьте свои попытки входа:
- grep "ваш_логин" /var/log/auth.log | tail -n 5
- Если видите:
- "Failed password" → неверный пароль
- "Invalid user" → несуществующий пользователь
- "Connection closed" → блокировка firewall
Сайт не работает (ошибка 500)
- Откройте: /var/log/apache2/error.log (Apache) или /var/log/nginx/error.log (Nginx)
- Посмотрите последние строки: tail -n 20 /var/log/apache2/error.log
- Если видите:
- "Permission denied" → проверьте права файлов
- "PHP Fatal error" → ошибка в PHP-коде
- "File does not exist" → отсутствует файл
Проблемы с отправкой почты
- Откройте: /var/log/mail.log
- Найдите последние ошибки:
- grep -i "fail\|error\|reject" /var/log/mail.log | tail -n 10
- Распространённые причины:
- "authentication failed" → неверный логин/пароль
- "connection refused" → проблемы с портами или хостингом
- "rejected as spam" → письмо попало в спам
Медленная работа сайта
- Откройте логи доступа:
- tail -n 100 /var/log/apache2/access.log
- Обратите внимание на время обработки запросов
- (последние цифры в строке - обычно 0.003, 2.500 и т.д.)
- Запросы со временем > 1 секунды могут указывать на:
- Медленные скрипты
- Проблемы с базой данных
- Нехватку ресурсов сервера
Как читать записи в логах
[Fri Dec 15 10:30:25.123456] [error] [client 192.168.1.1] File does not exist: /var/www/site/image.jpg
Расшифровка:
- [Fri Dec 15 10:30:25.123456] — дата и время ошибки
- [error] — уровень серьёзности (error, warning, notice)
- [client 192.168.1.1] — IP-адрес посетителя
- File does not exist... — суть проблемы
Краткий чек-лист
- Определили тип проблемы (сайт, почта, FTP, БД и т.д.)
- Найти соответствующий лог
- Отследить ошибки
- Проверили время ошибки
- Поиск и расшифровка значений ошибки
Заключение
Умение работать с логами поможет вам быстрее диагностировать проблемы.
В 70% случаев информация из логов сразу указывает на причину проблемы.





