Обложка канала

Хмельной Девопс

Будничный хаос и мрак при поддержке ИТ систем.

Хмельной Девопс

8 лет назад
Открыть в
Про мониторинг nginx.
Помимо стандартных url чек и /status страниц можно собирать еще кучу дополнительных параметров. Я использую связку prometheus + nginx + несколько экспортеров. Немного подробнее о них:

1. https://github.com/vozlt/nginx-module-vts - vts модуль, которые выдает расширенную статистку по запросам/ответам прямо из недр nginx. Единственный минус данного модуля - нет разделения на коды ответов (только 2xx,3xx,4xx,5xx,...) и нет данных по времени ответа.
К этому модулю идет экспортер: https://github.com/hnlq715/nginx-vts-exporter, получаются вполне хорошие графики, по которым можно смотреть всплески 4-ых и 5-ых ошибок.

2. https://github.com/martin-helmich/prometheus-nginxlog-exporter - парсит лог файлы nginx'а, агрегирует все данные и потом отдает prometheus'у на хранение. Работает в режиме tail -f, то есть как демон. Позволяет выдавать интересную статистику по 90,99th percentile времени ответов и кодам ошибок. На скриншоте ниже данные с nginx-log-exporter с одной ноды. Главное не забыть добавить в лог файлы nginx время ответа клиенту и время ответа upstream, чтобы эти данные появились:


log_format time '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'$upstream_response_time $request_time';