Логи Nginx: анализ и мониторинг веб-сервера

Если у тебя есть свой сайт или ты отвечаешь за продакшн в компании — рано или поздно ты столкнёшься с анализом логов Nginx. Почему? Потому что логи — это твои глаза и уши: они расскажут, кто ломится в админку, почему сайт тупит или почему сожрали весь трафик за ночь. Без нормального мониторинга и анализа логов ты как капитан корабля без радара: вроде всё плывёт, но айсберг уже рядом.

Возможности

  • Видеть реальное число запросов, пиковые часы, самые популярные страницы
  • Ловить 404/500 ошибки на лету
  • Отслеживать подозрительную активность (боты, DDoS, brute force и пр.)
  • Мониторить производительность — сколько времени реально обрабатывается запрос
  • Анализировать рефереры, user-agent, географию посетителей
  • Интегрировать с системами алертов (Telegram, Slack, email)

Что требуется

  • ОС: Linux (Ubuntu/Debian/CentOS/Alpine), подойдет и macOS для теста
  • Железо: 1 CPU, 1-2 GB RAM хватит для старта, SSD ускорит парсинг
  • Права: root или sudo для установки пакетов
  • Доступ к логам Nginx: обычно /var/log/nginx/access.log и error.log

Установка — пошаговая инструкция

Покажу на примере GoAccess — это реально крутая тулза для live-аналитики логов прямо в терминале или через web-интерфейс. Работает быстро, не требует сложных зависимостей, open source.

  1. Обнови пакеты:
    sudo apt update
  2. Установи GoAccess:
    sudo apt install goaccess
    Для CentOS: sudo yum install goaccess
  3. Проверь, где лежат логи Nginx:
    cat /etc/nginx/nginx.conf | grep access_log
    Обычно это /var/log/nginx/access.log
  4. Запусти GoAccess в терминале:
    goaccess /var/log/nginx/access.log -c
    Первый запуск попросит выбрать формат логов. Для стандартного Nginx — выбирай COMBINED или укажи свой формат.
  5. Для постоянного мониторинга в браузере:
    goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html
    После этого открывай http://your-server/report.html — и смотри обновления в реальном времени.
  6. Для нескольких логов (ротация):
    zcat /var/log/nginx/access.log.*.gz | goaccess - -c
    Это склеит все архивные логи и покажет аналитику по ним.

Официальная дока по установке на другие ОС: https://goaccess.io/download

Использование — команды и варианты

  • goaccess /var/log/nginx/access.log -c — запусти интерактивный терминал-отчет
  • goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED — оффлайн HTML-отчет
  • goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html — live-отчет в браузере
  • goaccess /var/log/nginx/error.log -c — анализируй error.log (но для него формат другой, обычно COMBINED не подходит)
  • goaccess --help — все опции
  • man goaccess — подробная справка
  • goaccess --exclude-ip=127.0.0.1 — исключить локальные запросы
  • goaccess --geoip-database=/usr/share/GeoIP/GeoLite2-City.mmdb — добавить геолокацию по IP

Больше примеров: https://goaccess.io/man

Ошибки и как делать не надо

  • Не запускай анализ логов без ротации — access.log может вырасти до гигабайтов и упереть сервер в swap
  • Не храни отчеты в общедоступных папках без пароля — там может быть чувствительная инфа (IP, user-agent, реферы)
  • Не забывай про права: если запускаешь goaccess от обычного юзера, может не быть доступа к логам (решается через группу или sudo)
  • Не используй устаревшие форматы логов — иногда admin меняет log_format в nginx.conf, и GoAccess не сможет их корректно парсить
  • Не игнорируй error.log — там часто живут самые ценные подсказки по проблемам

Пример из жизни

Реальный случай: на одном проекте резко выросла нагрузка на сервер. В access.log видно — за 10 минут прилетело 100k запросов на /wp-login.php из разных стран. С помощью GoAccess быстро увидели топ-10 IP и user-agent, забанили их через fail2ban и nginx. Одновременно нашли, что 30% трафика — это краулеры и парсеры, которые можно было отрубить через robots.txt и firewall. Без анализа логов это бы заняло часы, а тут — 10 минут и всё под контролем.

Заключение

Логи Nginx — это не просто “история посещений”, а мощный инструмент для диагностики, оптимизации и безопасности. Не забивай на них, а автоматизируй анализ с помощью GoAccess или других тулзов. Это реально экономит нервы, время и деньги. И да, анализируй не только access.log, но и error.log — там часто лежит ключ к решению проблем. Удачи в мониторинге!

Полезные ссылки:

Хотите прочитать больше про Администрирование,Разное?
Отзывов нет.

Ваш отзыв

Пожалуйста, заполните поля снизу и добавьте отзыв!.
Имя *
E-mail *
Сайт
Сообщение *