[PYTHON] [blackbird-nginx] Surveiller Nginx avec blackbird

blackbird nginx plugin

Ce plugin obtient diverses informations de nginx et envoie les données au backend Actuellement, vous pouvez surveiller les informations suivantes:

Install

corps de merle

Veuillez installer en vous référant à ici

Install nginx plugin

Vous pouvez utiliser setup.py ou rpm. Vous pouvez également l'insérer manuellement, mais dans ce cas, veuillez utiliser le module de requests de python séparément.

installer avec setup.py

git clone https://github.com/Vagrants/blackbird-nginx.git
cd blackbird-nginx
python setup.py install

installer avec rpm

yum install blackbird-nginx--enablerepo=blackbird

La dépendance nécessite des requêtes python

Autoriser la prise de statut du côté Nginx

Définir stub_status

pl:/etc/nginx/conf.d/stub_status.conf


server {
    listen 80;
    server_name localhost;
    location /nginx_status {
        stub_status on;
        access_log  off;
        allow 127.0.0.1;
        deny  all;
    }
}

Par exemple, comme ça

Définir le plugin

config se trouve dans / etc / blackbird / conf.d / nginx.cfg

ini:/etc/blackbird/conf.d/nginx.cfg


[nginx]
module = 'nginx'

# stub_status URI
# - support only http status code '200'
# - you must set uri value start with '/'
#
status_uri = '/nginx_status'
# host = '127.0.0.1'
# port = '80'

# use ssl connection?
#
# ssl = False

# for BASIC authentication. default: Nothing
#
# user = 'nobody'

# for BASIC authentication. default: Nothing
#
# password = 'nobody'

# for response time check
# if you do not want to check, please comment out
# - support only http status code '200'
# - you must set uri value start with '/'
#
response_check_uri = '/'
# response_check_port = '80'
# response_check_host = '127.0.0.1'
# response_check_vhost = 'localhost'
# response_check_uagent = 'blackbird response check'
# response_check_ssl = False

# nginx path
path = '/usr/sbin/nginx'

Si response_check_uri est spécifié, HTTP GET est exécuté sur cet uri. Mesurer le code d'état HTTP et le temps de réponse En définissant également l'hôte virtuel, il est possible de surveiller la réponse de l'hôte virtuel pour l'utilisation du service.

Redémarrez blackbird lorsque vous avez terminé

sudo /etc/init.d/blackbird restart

Vérifiez si les données arrivent sur Zabbix

Les modèles Zabbix peuvent être trouvés dans le référentiel github (https://github.com/Vagrants/blackbird-nginx/tree/master/templates) Importez-le dans Zabbix et appliquez-le au serveur cible

** Si le nom d'hôte sur Zabbix et le nom d'hôte du serveur sur lequel tourne blackbird sont différents, vous devez définir le nom d'hôte sur / etc / blackbird / conf.d / nginx.cfg ** Match avec Zabbix

ini:/etc/blackbird/conf.d/nginx.cfg


hostname = your_static_hostname

Vous pouvez également modifier l'intervalle de surveillance (60 secondes par défaut)

ini:/etc/blackbird/conf.d/nginx.cfg


interval = 30

À propos des éléments du modèle Zabbix

_Nginx_1.4

Application item description
Nginx - Stats Stats - Accepts stub_statut Accepte
Nginx - Stats Stats - Accepts cps Connexion par seconde ci-dessus
Nginx - Stats Stats - Handled stub_statut géré
Nginx - Stats Stats - Handled cps Connexion par seconde ci-dessus
Nginx - Stats Stats - Requests stub_Demandes de statut
Nginx - Stats Stats - Requests cps Connexion par seconde ci-dessus
Nginx - Stats Stats - Reading stub_Statut Lecture
Nginx - Stats Stats - Writing stub_Écriture de statut
Nginx - Stats Stats - Waiting stub_état En attente
Nginx - Performance Performance - Amount article pour agrégat
Nginx - Performance Performance - Available article pour agrégat
Nginx - Performance Performance - Response status response_check_uriÉtat HTTP
Nginx - Performance Performance - Response Time response_check_uriTemps de réponse
Version Version - Nginx version nginx
General General - Blackbird nginx plugin is sending data Ping de merle
General General - Blackbird nginx plugin version version du plugin nginx
General General - Port $PORT is in LISTENING state Un port spécifique écoute-t-il?
General General - Port $PORT is accepting connections Le port spécifique accepte-t-il?
General Process - Number of nginx processes numéro de processus nginx
Macro {$ITM_NGINX_MONITOR_URI} Pour l'affichage des articles(nginx.Veuillez faire correspondre avec cfg)
Macro {$ITM_NGINX_MONITOR_VHOST} Pour l'affichage des articles(nginx.Veuillez faire correspondre avec cfg)
Macro {$ITM_NGINX_PORT} port nginx
Macro {$TRG_BBD_NGX_NDT_PRD} Seuil pour l'intervalle de ping de blackbird
Macro {$TRG_NGINX_RSP_TIME} Seuil de temps de réponse
À propos de «{$ TRG_BBD_NGX_NDT_PRD}»

Déclenche un déclencheur si l'élément ping n'est pas mis à jour à intervalles réguliers pour détecter que le merle est arrêté. Le seuil de cet intervalle Si vous allongez l'intervalle dans / etc / blackbird / conf.d / nginx.cfg, augmentez également cette valeur.

À propos de «{$ TRG_NGINX_RSP_TIME}»

Le déclencheur monte lorsque le temps de réponse est supérieur à un certain nombre de secondes Sera ce seuil (Dans Template, Trigger est augmenté lorsque le seuil est dépassé trois fois de suite, mais changez-le en fonction de l'environnement.)

Le nom du modèle est \ _Nginx_1.4, mais il peut également être utilisé dans la série 1.6.

_Nginx_group_monitor

Application item description
Nginx - Group Group - Total servers Nombre total de serveurs de surveillance de groupe
Nginx - Group Group - Available servers Nombre normal de serveurs de surveillance de groupe
Nginx - Group Group - Available servers rate Ce ratio
Macro {$ITM_NGINX_GROUP_NAME} groupe Moniteur groupe d'hôtes
Macro {$TRG_NGINX_AVAILABLE_RATE} Seuil de déclenchement

Ce \ _Nginx_group_monitor est censé être utilisé lorsque vous voulez savoir combien de serveurs normaux se trouvent dans le groupe de serveurs sous l'équilibreur de charge. Par exemple, vous pouvez détecter que la moitié des 10 serveurs chargés renvoient autre chose que l'état HTTP 200. Puisque nous utilisons la fonction d'agrégation de Zabbix, les serveurs que nous voulons surveiller doivent être regroupés dans le même groupe d'hôtes. À propos, le serveur auquel ce modèle est appliqué peut être honnêtement n'importe où (127.0.0.1 etc.), mais en tant que méthode facile à comprendre, si vous définissez l'hôte de vip pour l'équilibrage de charge sur Zabbix et l'appliquez à cet hôte d'accord

Recommended Posts

[blackbird-nginx] Surveiller Nginx avec blackbird
[blackbird-rabbitmq] Surveiller rabbitmq avec blackbird
[blackbird-aerospike] Surveiller Aerospike avec blackbird
[blackbird-xfs] Surveiller les fichiers xfs avec blackbird
[blackbird-mysql] Surveiller mysql avec blackbird
[blackbird-memcached] Surveiller Memcached avec blackbird
[blackbird-fio-status] Surveiller ioDrive (Fusion-IO) avec blackbird
[blackbird-named] Monitor Bind (nommé) avec blackbird
[blackbird-ntp] Surveiller les informations ntpq (décalage, gigue, etc.) avec blackbird
API avec Flask + uWSGI + Nginx
Contrôler le libellé des erreurs avec nginx
Surveiller les processus Tomcat avec Zabbix-agent
Construisez FastAPI + uvicorn + nginx avec docker-compose
Surveillez les applications Web Python avec Prometheus
Surveillez les performances des applications Python avec Dynatrace ♪
Surveiller l'état du DHCP ISC avec ZABBIX