Vous êtes ici:

Menu


Stacks Image 16791
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.

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 centreon
ré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 centreon
ré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 centreon
ré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 centreon
ré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 centreon
ré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 centreon
ré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 centreon
ré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 centreon
ré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 centreon
ré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 centreon
résultat
OK: 3 client connection threads| 'threads_connected'=3;;;0;;

sql

/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=centreon
ré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 centreon
ré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 centreon
ré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 -C
ré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@ssw0rd
ré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=1433
Résultat
OK: Connection established in 0.333s. | 'connection_time'=333ms;;;0;
Notre connexion à la base SQL Server fonctionne sans problème.
comments powered by Disqus
 Vous êtes ici: