check_eZ_Nagios: Monitorer eZ Publish avec Nagios/Centreon

Histoire de simplifier le tout, j’ai nommé ce script check_ez_nagios.
A ce jour, nous avons donc 2 types d’informations collectées:
- ContentObject
- total amount of eZContentObjects
- total amount of eZContentObjectAttributes
- total amount of eZContentObjectTreeNodes
- total amount of eZContentObjectRelations
- total amount of drafts objects
- eZsession
- total number of eZUsers
- total number of sessions in the database
A venir, le check de l’evolution du cache dans le cadre d’une installation eZ Publish Cluster DFS.
Si vous avez des suggestions / améliorations, n’hésitez pas 🙂
./check_ez_nagios.sh ============ Help check_ez_nagios.sh ============ Usage: ./check_ez_nagios.sh -H host -u username -p password -D database -m mode Mode options: contentobject or ezsession Ex: ./check_ez_nagios.sh -H mysql-server -u ezpublish -p password -D ezDB -m ezsession =================================================
Ci-dessous comment l’intégrer dans Nagios et Centreon, et notamment, comment facilement générer les graph pour une instance donnée.
—
Note
Il existe déja plusieurs solutions de surveillance de ce type, dont:
Alors vous me direz, pourquoi ne pas utiliser ces dernières?
Ayant un environnement de monitoring Nagios, et utilisant NRPE pour faire du spécifique « maison », je souhaite donc utiliser ce même mécanisme (donc out Munin, et les agents SNMP).
Je constate également que, chez beaucoup de mes clients, la proposition de faire du SNMP depuis l’extérieur est (à juste raison) refusé.
Il ne reste donc que très peu de solutions pour proposer une interface unique (monitoring, reporting, SLA), et des consultations de graphiques sur l’état de vie d’eZ Publish.
—
Installation
Copier le script .sh dans le répertoire plugins de Nagios / Centreon
chown nagios.nagios check_ez_nagios.sh chmod +x check_ez_nagios.sh
Création d’un utilisateur SQL pour le monitoring (facultatif)
Personnellement, je crée un compte dédié, n’ayant que le droit de faire du SELECT. Mais vous pouvez utiliser le compte de l’application par exemple…
CREATE USER 'eznagios'@'%' IDENTIFIED BY 'eznagios_pass'; GRANT USAGE ON * . * TO 'eznagios'@'%' IDENTIFIED BY 'eznagios_pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; GRANT SELECT ON `martinez` . * TO 'eznagios'@'%';
Remplacer par vos valeurs bien entendu.
Ici nous avons:
- Connexion BDD: % (tous)
- Base de données: martinez
- Utilisateur MySql: eznagios
- Mot de pass: eznagios_pass
Configuration Centreon
Création de la commande check
Création du service
Vous n’avez plus qu’à sélectionner la commande « check_ez_nagios » et renseigner les arguments {dbhost,username,password,database,mode}
(et bien entendu, vos différents paramétrages liés au service)
Configuration Nagios
Fichier checkcommands.cfg
define command{ command_name check_ez_nagios command_line $USER1$/check_ez_nagios.sh -H $ARG1$ -u $ARG2$ -p $ARG3$ -D $ARG4$ -m $ARG5$ ;$ARG1$ dbhost ;$ARG2$ username ;$ARG3$ password ;$ARG4$ database ;$ARG5$ mode }
Fichier services.cfg
define service{ host_name mon_serveur_ez service_description Check_ez_nagios_db_martinez_ContentObject _SERVICE_ID 229 check_command check_ez_nagios!mon_serveur_ez!eznagios!eznagios_pass!martinez!contentobject max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 active_checks_enabled 1 passive_checks_enabled 0 check_period 24x7_GMT notification_period 24x7_GMT notification_interval 5 notification_options w,u,c,r notifications_enabled 0 first_notification_delay 1 contact_groups SLA_24x7 contacts Sysadmin } define service{ host_name mon_serveur_ez service_description Check_ez_nagios_db_martinez_eZsession _SERVICE_ID 228 check_command check_ez_nagios!mon_serveur_ez!eznagios!eznagios_pass!martinez!ezsession max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 active_checks_enabled 1 passive_checks_enabled 0 check_period 24x7_GMT notification_period 24x7_GMT notification_interval 5 notification_options w,u,c,r notifications_enabled 0 first_notification_delay 1 contact_groups SLA_24x7 contacts Sysadmin }