Мониторинг 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