Перейти к содержимому

Логи: где искать и что читать

Лог — это дневник сервера, и почти любой сбой в нём уже записан. Статья: где искать, как быстро фильтровать и какими словами читать, чтобы найти причину за минуты.

Все сервисы systemd пишут в единый журнал:

Окно терминала
journalctl -u sshd -n 50 # последние 50 строк сервиса sshd
journalctl -u nginx --since "1 hour ago"
journalctl -p err -n 100 # только ошибки за всё
journalctl -f # живой поток (как tail -f)

Приоритеты по возрастанию серьёзности: info → warning → err → crit → alert → emerg. Ищите первую ошибку перед сбоем — обычно она причина, всё дальше — следствия.

Что Где
Веб-сервер nginx /var/log/nginx/{access,error}.log
Apache /var/log/apache2/ (Debian/Ubuntu), /var/log/httpd/ (RHEL-семейство)
MySQL/MariaDB /var/log/mysql/, journalctl -u mysql
PostgreSQL /var/log/postgresql/, journalctl -u postgresql
Ваше приложение (systemd) journalctl -u имя-службы
Docker-контейнеры docker logs имя-контейнера
Авторизации/входы /var/log/auth.log (Debian/Ubuntu), secure (RHEL)
  • Время решает: знаете момент сбоя — режьте по времени: journalctl --since "14:00" --until "14:10".
  • Первая ошибка — причина. Ленты из 200 повторов «Connection refused» сводятся к одному событию выше: «упал postgres».
  • Копируйте ошибку как есть в поиск — для типовых ошибок stack trace почти всегда уже описан.
  • Ошибки 502/504 в nginx error.log говорят, к какому upstream не удалось подключиться — сверяйте с «Серверами сайта» в панели.
  • Сайт лежит: journalctl -u ваш-сервис -n 100, потом df -h / (диск переполнен — классика).
  • SSH не пускает: journalctl -u sshd -n 50, /var/log/auth.log.
  • Медленно: access.log — какие запросы и сколько «времени ответа»; медленные запросы — slow query log БД.

Вы нашли строку с ошибкой, поняли сервис и причину (или получили точный текст для поиска/поддержки).

Симптом Причина Что делать
Логи пустые journald ограничен или лог не пишется systemctl status rsyslog; проверьте Storage= в journald.conf
Логи заняли весь диск Нет ротации Настройте logrotate; journalctl --vacuum-size=200M
Не понимаю ошибку Всё бывает Скопируйте строку с меткой времени в поддержку — ответит по существу
Есть ли логи в самой панели?

В карточке сервера есть «История» — события платформы (создание, образы, питание). Логи внутри ОС — на сервере, по SSH или в консоли VNC.

Как освободить место от старых логов?

`journalctl --vacuum-size=200M` для journald; для файлов — logrotate или удаление архивов *.gz в /var/log.

Видит ли поддержка мои логи?

Нет, мы не читаем ваши серверы без запроса. Приложите строки с ошибкой к тикету — это ускорит ответ в разы.