Le module database comme son nom l'indique va nous permettre de superviser les bases de données. Actuellement six types de bases de données vous sont proposés : MySQL, PostGres, Oracle, MS SQL, firebird et Informix. Par convention, nous utiliserons le chemin des plugins de la distribution Centreon. Adaptez votre chemin si besoin.
Le premier module décrit servira à superviser une base MySQL ou MariaDB et le second servira à superviser une base SQL Server de Microsoft.
Le premier module décrit servira à superviser une base MySQL ou MariaDB et le second servira à superviser une base SQL Server de Microsoft.
1 Découverte des plugins de base de données
Avant de commencer, vous pouvez visualiser avec cette commande, les types de base de données qui sont gérés par le plugin Centreon.
/usr/lib/centreon/plugins/centreon_plugins.pl --list-plugin | grep database
PLUGIN: database::informix::plugin PLUGIN: database::firebird::plugin --database PLUGIN: database::mysql::plugin PLUGIN: database::oracle::plugin PLUGIN: database::postgres::plugin --database PLUGIN: database::mssql::plugin
2 Le module database::mysql::plugin
2.1 Connexion à la base de données
Avant de commencer, il faudra choisir le mode de connexion à la base de données. Afin de ne pas utiliser le compte root avec la base de données MySQL, nous créerons, tout d'abord, un utilisateur supervision, voir l'article spécialement réalisé pour la connexion MySQL. Dans notre exemple, nous utiliserons le serveur Weblamp de la maquette Duchmol.
2.2 Les modes du plugin database::mysql::plugin
Voici les principaux mode de supervision de ce plugin.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --list-mode
.... Modes Available: connection-time databases-size innodb-bufferpool-hitrate long-queries myisam-keycache-hitrate open-files qcache-hitrate queries replication-master-master replication-master-slave slow-queries sql tables-size threads-connected uptime
2.3 Quelques exemples d’utilisation du module database::mysql
Voici une liste d’exemples avec une connexion locale (user supervision mdp centreon)
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=connection-time --username supervision --password centreonrésultat
OK: Connection established in 0.014s.| 'connection_time'=14ms;;;0;;
Serveur supervision
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=databases-size --username supervision --password centreonrésultat
OK: All databases are ok. | 'centreon_size'=6750208B;;;0; 'centreon_storage_size'=5042604B;;;0; 'information_schema_size'=9216B;;;0; 'mysql_size'=707254B;;;0; 'performance_schema_size'=0B;;;0;
Serveur supervision, base centreon
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=databases-size --username supervision --password centreon --filter='centreon'résultat
OK: All databases are ok. | 'centreon_size'=6750208B;;;0; 'centreon_storage_size'=5044756B;;;0;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=innodb-bufferpool-hitrate --username supervision --password centreonrésultat
OK: innodb buffer pool hitrate at 100.00% | 'bufferpool_hitrate_now'=100.00%;;;0; 'bufferpool_hitrate'=99.97%;;;0;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=long-queries --username supervision --password centreonrésultat
OK: 0 queries over 60 seconds | 'longqueries'=0;;;0;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=myisam-keycache-hitrate --username supervision --password centreonrésultat
OK: myisam keycache hitrate at 100.00% | 'keycache_hitrate_now'=100.00%;;;0; 'keycache_hitrate'=99.96%;;;0;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=open-files --username supervision --password centreonrésultat
OK: 10.00% of the open files limit reached (106 of max. 1024)| 'open_files'=106;;;0;;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=qcache-hitrate --username supervision --password centreonrésultat
OK: query cache hitrate at 100.00% | 'qcache_hitrate_now'=100.00%;;;0; 'qcache_hitrate'=80.10%;;;0;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=queries --username supervision --password centreonrésultat
OK: Total requests = 7.| 'Com_delete_requests'=0;;;0;; 'Com_insert_requests'=0;;;0;; 'Com_select_requests'=0;;;0;; 'Com_truncate_requests'=0;;;0;; 'Com_update_requests'=2;;;0;; 'total_requests'=7;;;0;;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=slow-queries --username supervision --password centreonrésultat
OK: 0 slow queries in 3 seconds (0.00/sec)| 'slow_queries_rate'=0.00;;;0;;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=threads-connected --username supervision --password centreonrésultat
OK: 3 client connection threads| 'threads_connected'=3;;;0;;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=sql --username supervision --password centreon --sql-statement='select count(*) from contact;' --connect-options database=centreonrésultat
OK: SQL statement result : 6. | 'value'=6;;;;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=uptime --username supervision --password centreonrésultat
OK: database is up since 8 days | 'uptime'=691388s;;;0;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=tables-size --username supervision --password centreon --filter-table='^contact$'résultat
OK: Total Size : 112.00KB - Table 'centreon.contact' size : 112.00KB | 'total'=114688B;;;0; 'table'=114688B;;;0;
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mysql::plugin --host localhost --mode=threads-connected --username supervision --password centreonrésultat
OK: 4 client connection threads | 'threads_connected'=4;;;0;
Maintenant passons à un exemple pratique pour Mysql.
3 Le module database::mssql::plugin
3.1 Prérequis
Ce module va nous servir à superviser une base de données Windows MS SQL. Avant de commencer, il faudra installer la librairie freeTDS. Pour la distribution Centreon, pas de souci particulier. Il faudra vérifier la présence de certaines librairies comme nous le verrons plus loin. Pour Debian, c'est une autre histoire. En effet, la version packagée 0.91 ne fonctionne pas, il faut donc utiliser la version binaire et la compiler manuellement.
3.1a Installation sur Debian
En premier lieu, installer les paquets nécessaire à la compilation si ce n'est pas déjà fait.
apt-get install autoconf gcc make psmisc
Nous récupérons la version stable de FreeTDS. Compilons cette version.
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz tar xzf freetds-patched.tar.gz cd freetds-1.00.54/ ./configure make make install
Les fichiers ont été copiés dans /usr/local. vérifions le fonctionnement de tsql qui nous permettra de nous connecter à la base MS SQL.
tsql -Crésultat
Compile-time settings (established with the "configure" script) Version: freetds v1.00.54 freetds.conf directory: /usr/local/etc MS db-lib source compatibility: no Sybase binary compatibility: no Thread safety: yes iconv library: yes TDS version: auto iODBC: no unixodbc: no SSPI "trusted" logins: no Kerberos: no OpenSSL: no GnuTLS: no MARS: no
Notre serveur Windows a pour adresse IP 172.16.209.175, le user de connexion s'appelle supervision avec son mot de passe P@ssw0rd. Celui-ci doit avec un accès en lecture seule à toutes les tables, master compris. Nous pouvons tester une première connexion.
tsql -H 172.16.209.175 -p 1433 -U supervision -P P@ssw0rdrésultat
locale is "fr_FR.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1>
On peut tester notre première interrogation sur le serveur.
1> SELECT name FROM master.dbo.sysdatabases 2> go name master tempdb model msdb AdventureWorks2008R2 VCDB (6 rows affected) 1>
Pour quitter le programme, faire exit. Maintenant, que nous avons vérifié le bon fonctionnement de notre connexion, il nous reste à installer les prérequis pour le plugin Centreon.
apt-get install libdbd-sybase-perl libdbi-perl
Les dépendances des paquets vont installer le paquet freetds-common version 0.91 mais sans conséquence pour le fonctionnement de la version compilée. Passez au chapitre 3.2.
3.1b Installation sur Centreon (CentOS)
Il faudra installer le paquet nécessaire au fonctionnement du plugin.
yum install perl-DBD-Sybase
C'est tout, vous pouvez tester le plugin.
3.2 Test du plugin
Nous allons maintenant tester le plugin Centreon.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=database::mssql::plugin --mode=connection-time --hostname=172.16.209.175 --username=supervision --password=P@ssw0rd --port=1433Résultat
OK: Connection established in 0.333s. | 'connection_time'=333ms;;;0;
Notre connexion à la base SQL Server fonctionne sans problème.