Соберите статистику NGINX access.log для Прометея - PullRequest
0 голосов
/ 23 мая 2019

Существует веб-сервер nginx, который обслуживает вызовы API от различных агентов пользователя. Я хочу анализировать логи nginx и собирать статистику о вызовах API от разных User-Agents.

Я собираюсь написать скрипт Python для разбора nginx access.log вот так https://gist.github.com/sysdig-blog/22ef4c07714b1a34fe20dac11a80c4e2#file-prometheus-metrics-python-py

Есть ли более подходящее решение?

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Когда приложение не предоставляет конечных точек мониторинга whitebox, анализ журналов является единственным решением.

Оттуда у вас есть несколько вариантов в зависимости от масштаба и бюджета вашей установки:

  • централизация журналов (в ES на примере) с использованием коляски, такой как Filebeat, для их анализа и отправки.Затем вы можете сделать запросы для экспорта статистики
  • синтаксический анализ журнала, который предоставляет статистику: хорошими примерами являются fluentd, telegraf, mtail
  • регулярное выполнение скрипта, который выдает данные в файл промена, который нужно собратьэкспортером узлов также является дешевым решением

Прокрутка собственного сценария была бы последним средством: если вам нужна статистика, которую вы не можете получить из полочных инструментов или статистики, для которой требуется извлечь контекст.Но это происходит за счет обработки болезненных сценариев;в вашем случае может возникнуть проблема с отслеживанием файла при его перемещении.

0 голосов
/ 23 мая 2019

Я крайне не одобряю такой подход.

Разбор журналов - старая задача, и есть много инструментов, которые более чем способны сделать это эффективным способом.

Для менялично я имел успех с Fluentd - Open Source Data Collector , но есть больше инструментов, в зависимости от ваших конкретных потребностей.

Сообщество, например, количество и качество плагинов /Дополнения к инструменту, имеют значение при выборе инструмента.

Так что, если поискать в Google fluentd prometheus даст вам некоторые результаты от github и самого разработчика - это может быть вашим правильным курсом действий.

...