Prérequis
J'ai déjà configuré mes hosts types, mes period, mes contacts. Je veux maintenant ajouter de facon simple le monitoring mysql pour certains hosts.

Pas à pas
  • Creation de l'utilisateur nagios sur la base cible
mysql> create database nagios ;
Query OK, 1 row affected (0.08 sec)
mysql> GRANT ALL ON nagios.* TO nagiosuser@ identified by '' ;
Query OK, 0 rows affected (0.23 sec)
mysql> flush privileges ;
Query OK, 0 rows affected (0.14 sec)
  • Verifier que le plugin fonctionne à partir du serveur nagios
nagios % check_mysql -P 3306 -u nagiosuser -p''  -H 
Uptime: 2753334 Threads: 2 Questions: 43815 Slow queries: 1196
Opens: 2889 Flush tables: 177 Open tables: 7 Queries per second avg: 0.15
  • configurer la 'command' avec les parametres ci dessus
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p'$ARG3$'
}
  • Configurer la commande dans le service qui va bien
define service{
use local-service
hostgroup_name mysql-servers
service_description MYSQL
check_command check_mysql!3306!nagiosuser!MOTDEPASSE!
contact_groups mysql-services-admins
}
  • Enfin ajouter le service dans la definition du host (correspondance entre hostgroups)
define host{
host_name monhost
use mongroupe_primaire
hostgroups mysql-servers
check_period prod-period
address @IP
}

Voila qui fonctionne mais il serait préferable de pouvoir parametrer le plugin dans la definition du host final.
De plus le mot de passe apparait en clair lors de l'execution du plugin.
L'accès au serveur nagios étant restreint et les droits de nagiosuser limité ca devrait aller.