Мониторинг 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-agentsudo 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 · привязка метрик.