Как использовать NGINX Prometheus exporter
Мониторинг — важная часть разработки программного обеспечения, поскольку он помогает вам следить за производительностью и ресурсами. Без активного мониторинга вы находитесь в неведении, и ваши приложения могут выйти из строя в любой момент без вашего ведома. Здесь помогают такие инструменты, как Prometheus . Prometheus — это решение для наблюдения с открытым исходным кодом, которое отслеживает ключевые показатели и обеспечивает видимость ваших приложений.
Однако Prometheus не может автоматически подключаться ко всем типам приложений и ресурсов. В некоторых случаях вам понадобится адаптер для перевода метрик, генерируемых ресурсом, в формат, который легко понять Prometheus. Prometheus exporters поступают именно так.
Это руководство покажет вам, как использовать prometheus-nginx-exporter
инструмент для подключения сервера NGINX к Prometheus.
Что такое экспортер NGINX Prometheus?
NGINX — один из самых популярных веб-серверов, используемых сегодня, а экспортер NGINX Promtheus — это инструмент, который вы можете использовать для экспорта метрик с вашего сервера NGINX и сбора их в вашем экземпляре Prometheus. Хотя NGINX предоставляет базовый набор метрик через свой stub status module, эти метрики не находятся в такой форме, которую может очистить Prometheus.
Вот здесь и prometheus-nginx-exporter
помогает. Он прослушивает конечную точку stub_status и генерирует поток метрик, удобных для Prometheus, на конечной точке. Затем вы можете настроить свой экземпляр Prometheus для сбора данных из этой конечной точки и использовать их для отслеживания и анализа производительности вашего сервера NGINX.
Как использовать NGINX Prometheus exporter
Чтобы настроить мониторинг NGINX с помощью Prometheus, вам понадобится следующее:
- Сервер Nginx
- Экземпляр Prometheus
- prometheus-nginx-exporter
Для начала обновите файл конфигурации вашего сервера NGINX, чтобы включить /metrics
конечную точку, добавив в nginx.conf
файл следующее:
server { location /metrics { stub_status on; } }
Посетите /metrics
маршрут на своем сервере NGINX, чтобы узнать, были ли предоставлены метрики. Вы должны увидеть такой результат:
Active connections: 1 server accepts handled requests 7 7 14 Reading: 0 Writing: 1 Waiting: 0
Затем установите экспортер в контейнер Docker, выполнив следующую команду:
docker run \ -p 9113:9113 \ nginx/nginx-prometheus-exporter:0.10.0 \ -nginx.scrape-uri=http://<nginx ip>:8080/metrics \ -web.telemetry-path=/metrics
Как только экспортер заработает, вы сможете получить доступ к следующей странице: http:<your machine ip>:9113/metrics
и увидеть страницу с подробными показателями вашего сервера NGINX.
# HELP nginx_connections_accepted Accepted client connections # TYPE nginx_connections_accepted counter nginx_connections_accepted 10 # HELP nginx_connections_active Active client connections # TYPE nginx_connections_active gauge nginx_connections_active 1 # HELP nginx_connections_handled Handled client connections # TYPE nginx_connections_handled counter nginx_connections_handled 10 # HELP nginx_connections_reading Connections where NGINX is reading the request header # TYPE nginx_connections_reading gauge nginx_connections_reading 0 # HELP nginx_connections_waiting Idle client connections # TYPE nginx_connections_waiting gauge nginx_connections_waiting 0 # HELP nginx_connections_writing Connections where NGINX is writing the response back to the client # TYPE nginx_connections_writing gauge nginx_connections_writing 1 # HELP nginx_http_requests_total Total http requests # TYPE nginx_http_requests_total counter nginx_http_requests_total 21 # HELP nginx_up Status of the last metric scrape # TYPE nginx_up gauge nginx_up 1 # HELP nginxexporter_build_info Exporter build information # TYPE nginxexporter_build_info gauge nginxexporter_build_info{commit="7a03d0314425793cf4001f0d9b0b2cfd19563433",date="2021-12-21T19:24:34Z",version="0.10.0"} 1
Затем настройте свой экземпляр Prometheus для сбора данных из экспортера. Вы можете сделать это, обновив prometheus.yaml
файл, включив в него следующее:
scrape_configs: - job_name: ‘nginx exporter’ scrape_interval: 5s static_configs: - targets: ['<your machine ip>:9113']
Как только все будет настроено правильно, вы сможете увидеть метрики, связанные с NGINX, в предложениях автозаполнения PromQL:
Теперь вы можете использовать эти метрики в запросах PromQL для мониторинга вашего сервера NGINX и визуализаций с помощью других инструментов, таких как Grafana.
Последние мысли
Prometheus — это универсальное решение для мониторинга с открытым исходным кодом. Однако для работы с внешними инструментами и сервисами требуется дополнительная настройка. В этом руководстве вы увидели, как экспортировать метрики с вашего сервера NGINX и фиксировать их в Prometheus с помощью NGINX Prometheus exporter.