Можно ли в Grafana собирать статистику по запросам NGINX?
Доброго дня!
Есть задача собирать логи запросов из приложения в графану. Для статистики нагрузки нашёл nginx-prometheus-exporter, но там информации весь мало.
Хотелось бы стату по респонсам иметь. Сколько 500, сколько 403 etc. И всё это осложняется тем, что приложение ВСЕГДА отдаёт 200, а статус в json поле... Возможно ли это какими-то простыми путями сделать, или без боли и страдания никак?
Извиняюсь, если вопрос глупый, сегодня первый день работы с этим стеком вообще =)
Допустим, приложение собирает какой-то .log файл, где все интересующие меня данные.
А как это можно в прометея передать? Для nginx готовый экспортёр, а под кастомный .log нужно кастомный экспортёр писать? Или есть какое-то универсальное конфигурируемое чудо?
Не нужен вам никакой лог файл. Вам нужны счетчики. Храните их в каком-нибудь редисе или в самом приложении, если оно так умеет.
Сделайте http-ручку типа /metrics в ней выводите все значения в формате прометея.
А прометею в конфиг добавьте товый таргет, он будет собирать все эти метрики и сделает из них исторические данные для графиков.
Есть такое nginx-module-vts (умеет экспортировать метрики в формате Prometheus)
Можно заставить Nginx писать логи в JSON-формате и с помощью, например, Filebeat сохранять их в Elasticsearch, а затем делать выборки по интересующим критериям с помощью prometheus-es-exporter