Мониторинг Nginx с помощью Proto Observability
Сбор метрик Nginx
Введение
- Убедитесь, что у вас установлен и настроен ProtoOBP Агент на сервере с Nginx или в Kubernetes (если Nginx работает в Kubernetes)
- Измените конфигурацию Nginx для отдачи метрик
- Измените конфигурацию Агента для сбора метрик Nginx
- Дополнительно Proto Observability Platform поддерживает сбор трейсов с Nginx (не зависит от сбора метрик)
Конфигурация Nginx
-
Убедитесь, что ваша версия Nginx содержит
http_stub_status_module:nginx -V 2>&1| grep -o http_stub_status_module -
Создайте файл
status.confв директории с конфигурацией Nginx (обычно/etc/nginx/conf.d/):server { listen 81; server_name localhost; access_log off; allow 127.0.0.1; deny all; location /nginx_status { stub_status; # для NGINX open source < версии 1.7.5 # stub_status on; # для NGINX Plus # status; # получение версии Nginx server_tokens on; } }
Конфигурация ProtoOBP агента
-
Укажите адрес
nginx_statusэндпоинта в файле конфигурации ProtoOBP агента (/etc/protoobp-agent/conf.d/nginx.d/conf.yaml):init_config: instances: - nginx_status_url: http://localhost:81/nginx_status/ -
Перезапустите ProtoOBP Агента выполнив:
systemctl restart protoobp-agent
Добавьте лейблы к контейнеру с Nginx:
LABEL "com.protoobp.ad.check_names"='["nginx"]'
LABEL "com.protoobp.ad.init_configs"='[{}]'
LABEL "com.protoobp.ad.instances"='[{"nginx_status_url": "http://%%host%%:81/nginx_status/"}]'
Добавьте аннотации к поду Nginx:
apiVersion: v1
kind: Pod
metadata:
name: nginx
annotations:
ad.protoobp.com/nginx.checks: |
{
"nginx": {
"init_config": {},
"instances": [
{
"nginx_status_url":"http://%%host%%:81/nginx_status/"
}
]
}
}
labels:
name: nginx
Собираемые метрики
Проверка сервиса (Service Check)
| Метрика | Описание |
|---|---|
nginx_can_connect |
Статус подключения агента к Nginx. Значения: 0 = OK (подключение успешно), 1 = WARNING, 2 = CRITICAL (агент не может подключиться и собрать метрики). |
Метрики NGINX (open source — stub_status)
Следующие метрики доступны при использовании модуля http_stub_status_module (open source NGINX):
| Метрика | Тип | Единица | Описание |
|---|---|---|---|
nginx_net_connections |
gauge | соединение | Текущее количество активных клиентских соединений |
nginx_net_reading |
gauge | соединение | Количество соединений, в которых читаются запросы от клиентов |
nginx_net_writing |
gauge | соединение | Количество соединений, ожидающих ответа от upstream или отправляющих ответ клиенту |
nginx_net_waiting |
gauge | соединение | Количество keep-alive соединений, ожидающих работу |
nginx_net_request_per_s |
rate | запрос/с | Скорость обработки запросов (успешных и неуспешных) |
nginx_net_conn_opened_per_s |
rate | соединение/с | Скорость открытия новых соединений |
nginx_net_conn_dropped_per_s |
rate | соединение/с | Скорость отброшенных соединений |