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

Мониторинг Nginx

Агент собирает access-логи Nginx через файловый источник со встроенным парсером формата combined — каждая запись раскладывается на статус, адрес клиента, запрос и user-agent, а уровень выставляется по коду ответа (5xx → ERROR, 4xx → WARN). Дополнительно агент умеет снимать метрики stub_status.

Предварительные требования

  • Агент Flaree установлен на том же хосте, что и Nginx.

  • Access-лог пишется в стандартном формате combined (default для access_log).

  • Процесс агента имеет право читать файл лога — обычно членство в группе adm:

    sudo usermod -aG adm flaree-agent
    sudo systemctl restart flaree-agent

Минимальная конфигурация

В дашборде: Агенты → ваш агент → Источники логов → Новый источник, тип File, формат NginxCombined (или Auto — парсер определится по первым строкам):

{ "path": "/var/log/nginx/access.log" }

Агент tail-ит файл, переживает logrotate (детект ротации по inode и размеру) и отправляет записи в привязанный компонент.

Полная конфигурация

Какие поля извлекает парсер nginx combined:

АтрибутИсточник в лог-строке
remote_addr$remote_addr
user$remote_user
status$status; определяет уровень записи
bytes$body_bytes_sent
referer$http_referer
user_agent$http_user_agent

Сообщение записи — строка запроса (GET /path HTTP/1.1). Кастомные log_format парсер не разбирает: для них используйте logfmt/JSON-формат лога на стороне Nginx и формат Auto.

Фильтры пригодятся для отсечения health-check-шума — exclude-правило GET /healthz в настройках источника. Метрики stub_status (nginx.active_connections, nginx.requests_total, nginx.accepts_total, nginx.handled_total) агент снимает с локального endpoint stub_status; включается как источник метрик с параметром url в дашборде.

Error-лог Nginx подключается вторым файловым источником с форматом Auto.

Проверка работы

  • Сгенерируйте запрос к Nginx и убедитесь, что строка появилась в access-логе.
  • Проверьте, что пользователь агента может читать файл.
  • В дашборде запись появится у компонента в течение минуты; 4xx/5xx приходят с уровнями WARN/ERROR.
curl -s -o /dev/null http://127.0.0.1/
tail -n 1 /var/log/nginx/access.log

sudo -u flaree-agent head -n 1 /var/log/nginx/access.log

Troubleshooting

  • Записи не появляются — чек-лист нет данных.
  • Записи приходят как plaintext без атрибутов — лог пишется не в combined; выставьте формат источника явно или верните стандартный log_format.
  • После logrotate записи пропали — проверьте, что новый файл создаётся по тому же пути; агент сам переоткрывает файл при ротации.
  • Всплеск INFO-записей съедает квоту — добавьте exclude-фильтр на шумные пути или сэмплирование INFO в настройках источника.

Связанные страницы: сбор логов · HAProxy · привязка метрик.