Перейти к основному контенту

Просмотр логов 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:

Снимок экрана от 2026-01-07 11-18-30.png

Пример вывода tail -100 /var/log/syslog | grep --color -E "error|fail|critical":

Снимок экрана от 2026-01-07 11-19-20.png

Пример вывода tail -f /var/log/auth.log | grep -i "failed":

Снимок экрана от 2026-01-07 11-20-11.png

Анализ частых ошибок

# Топ 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:

Снимок экрана от 2026-01-07 11-21-37.png

Пример вывода grep "\[error\]" /var/log/nginx/error.log | cut -d ' ' -f 6- | sort | uniq -c | sort -nr | head -10:

Снимок экрана от 2026-01-07 11-23-17.png

Автоматизация мониторинга

# Скрипт для проверки критических ошибок
#!/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

Пример вывода скрипта:

Снимок экрана от 2026-01-07 11-27-21.png

Как анализировать логи

Через панель управления (если доступна)

  1. ISPManager: Логи → выбор нужного лога
  2. Webmin: Система → Log File Viewer
  3. cPanel: Файловый менеджер → папка /var/log/

Через SSH

# Просмотр последних записей в логе
tail -n 50 /путь/к/логу

# Просмотр в реальном времени
tail -f /путь/к/логу

# Поиск ошибок
grep -i error /путь/к/логу

Популярные сценарии

Не удаётся зайти по SSH/FTP
  1. Откройте: /var/log/auth.log
  2. Проверьте свои попытки входа:
    • grep "ваш_логин" /var/log/auth.log | tail -n 5
  3. Если видите:
    • "Failed password" → неверный пароль
    • "Invalid user" → несуществующий пользователь
    • "Connection closed" → блокировка firewall
Сайт не работает (ошибка 500)
  1. Откройте: /var/log/apache2/error.log (Apache) или /var/log/nginx/error.log (Nginx)
  2. Посмотрите последние строки: tail -n 20 /var/log/apache2/error.log
  3. Если видите:
    • "Permission denied" → проверьте права файлов
    • "PHP Fatal error" → ошибка в PHP-коде
    • "File does not exist" → отсутствует файл
Проблемы с отправкой почты
  1. Откройте: /var/log/mail.log
  2. Найдите последние ошибки:
    • grep -i "fail\|error\|reject" /var/log/mail.log | tail -n 10
  3. Распространённые причины:
    • "authentication failed" → неверный логин/пароль
    • "connection refused" → проблемы с портами или хостингом
    • "rejected as spam" → письмо попало в спам
Медленная работа сайта
  1. Откройте логи доступа:
    • tail -n 100 /var/log/apache2/access.log
  2. Обратите внимание на время обработки запросов
    • (последние цифры в строке - обычно 0.003, 2.500 и т.д.)
  3. Запросы со временем > 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% случаев информация из логов сразу указывает на причину проблемы.