This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

15 Supervision ODBC

Aperçu

La supervision ODBC correspond au type d'élément Surveillance base de données dans l'interface utilisateur de Zabbix.

ODBC est une API de programmation en langage C permettant d'accéder aux systèmes de gestion de base de données (SGBD). Le concept ODBC a été développé par Microsoft et ensuite porté sur d'autres plates-formes.

Zabbix peut interroger n'importe quelle base de données, qui est supportée par ODBC. Pour ce faire, Zabbix ne se connecte pas directement aux bases de données, mais utilise l'interface ODBC et les pilotes configurés dans ODBC. Cette fonction permet une surveillance plus efficace des différentes bases de données à des fins multiples - par exemple, vérifier des files d'attente de bases de données spécifiques, des statistiques d'utilisation, etc. Zabbix prend en charge unixODBC, l'une des implémentations d'API ODBC open source les plus couramment utilisées.

Installation de unixODBC

La méthode suggérée pour installer unixODBC consiste à utiliser les dépôts de paquets par défaut du système d'exploitation Linux. Dans les distributions Linux les plus populaires, unixODBC est inclus dans le dépôt du paquet par défaut. S'il n'est pas disponible, il peut être obtenu sur la page d'accueil d'unixODBC : http://www.unixodbc.org/download.html.

Installation d'unixODBC sur les systèmes RedHat/Fedora à l'aide du gestionnaire de paquets yum :

shell> yum -y install unixODBC unixODBC-devel

Installation d'unixODBC sur des systèmes basés sur SUSE à l'aide du gestionnaire de paquets zypper :

# zypper in unixODBC-devel

Le package unixODBC-devel est nécessaire pour compiler Zabbix avec le support unixODBC.

Installation des pilotes unixODBC

Un pilote de base de données unixODBC doit être installé pour la base de données qui sera supervisée. UnixODBC dispose une liste de bases de données et de pilotes supportés : http://www.unixodbc.org/drivers.html. Dans certaines distributions Linux, les pilotes de base de données sont inclus dans les référentiels de packages.

Installation du pilote de base de données MySQL sur les systèmes RedHat/Fedora à l'aide du gestionnaire de paquets yum :

shell> yum install mysql-connector-odbc

Installation du pilote de base de données MySQL sur les systèmes SUSE à l'aide du gestionnaire de packages zypper :

zypper in MyODBC-unixODBC

Configuration unixODBC

La configuration ODBC est effectuée en éditant les fichiers odbcinst.ini et odbc.ini. Pour vérifier l'emplacement du fichier de configuration, tapez :

shell> odbcinst -j

odbcinst.ini est utilisé pour lister les pilotes de base de données ODBC installés :

[mysql]
       Description = ODBC for MySQL
       Driver      = /usr/lib/libmyodbc5.so

Détails des paramètres :

Attribut Description
mysql Nom du pilote de base de données.
Description Description du pilote de base de données.
Driver Emplacement de la librairie des pilotes de base de données.

odbc.ini est utilisé pour définir les sources de données :

[test]
       Description = MySQL test database
       Driver      = mysql
       Server      = 127.0.0.1
       User        = root
       Password    =
       Port        = 3306
       Database    = zabbix

Détails des paramètres :

Attribut Description
test Nom de la source de données (DSN).
Description Description de la source de données.
Driver Nom du pilote de base de données - comme spécifié dans odbcinst.ini
Server IP/DNS du serveur hébergeant la base de données.
User Utilisateur de base de données pour la connexion.
Password Mot de passe utilisateur de base de données.
Port Port de connexion à la base de données.
Database Nom de la base de données.

Pour vérifier si la connexion ODBC fonctionne correctement, une connexion à la base de données doit être testée. Cela peut être fait avec l'utilitaire isql (inclus dans le paquet unixODBC) :

shell> isql test
       +---------------------------------------+
       | Connected!                            |
       |                                       |
       | sql-statement                         |
       | help [tablename]                      |
       | quit                                  |
       |                                       |
       +---------------------------------------+
       SQL>

Compilation de Zabbix avec le support ODBC

Pour activer le support ODBC, Zabbix doit être compilé avec l’option suivante :

  --with-unixodbc[=ARG]   utilise le pilote odbc correspondant au paquet unixODBC

En savoir plus sur l'installation de Zabbix à partir du code source.

Configuration de l'élément dans l'interface Zabbix

Configurer un élément de supervision de base de données :

Tous les champs de saisie obligatoires sont marqués d'un astérisque rouge.

Spécifiquement pour les éléments de supervision de base de données, vous devez entrer :

Type Sélectionnez Surveillance de base de données ici.
Clé Entrez db.odbc.select[unique_description,data_source_name]
La description unique servira à identifier l'élément dans les déclencheurs, etc.
Les sources de données (DSN) doivent être définies comme spécifiée dans le fichier odbc.ini.
Nom d'utilisateur Entrez le nom de l'utilisateur de la base de données (facultatif si l'utilisateur est spécifié dans le fichier odbc.ini)
Mot de passe Entrez le mot de passe de l'utilisateur de base de données (facultatif si le mot de passe est spécifié dans le fichier odbc.ini)
Requête SQL Entrez la requête SQL
Type d'information Il est important de savoir quel type d'information sera renvoyé par la requête, afin qu'elle soit sélectionnée correctement ici. Avec un type d'information incorrect, l'élément ne sera pas pris en charge.

Notes Importantes

  • Zabbix ne limite pas le temps d'exécution de la requête. Il appartient à l'utilisateur de choisir les requêtes qui peuvent être exécutées dans un délai raisonnable.
  • La valeur du paramètre Timeout du serveur Zabbix est utilisée comme délai de connexion ODBC (notez que selon les pilotes ODBC, le paramètre de délai d'attente de connexion peut être ignoré).
  • La requête ne doit renvoyer qu'une seule valeur.
  • Si une requête renvoie plus d'une colonne, seule la première colonne est lue.
  • Si une requête renvoie plus d'une ligne, seule la première ligne sera lue.
  • La commande SQL doit renvoyer un jeu de résultats comme toute requête avec select .... La syntaxe de la requête dépendra du SGBD qui les traitera. La syntaxe de demande à une procédure de stockage doit être démarrée avec le mot clé call.
  • Voir aussi les problèmes connus pour les vérifications ODBC.

Messages d'erreurs

Les messages d'erreurs ODBC sont structurés en différents champs pour fournir des informations détaillées. Par exemple :

Cannot execute ODBC query: [SQL_ERROR]:[42601][7][ERROR: syntax error at or near ";"; Error while executing the query]
       └───────────┬───────────┘  └────┬────┘ └──┬──┘└┬┘└─────────────────────────────┬─────────────────────────────────────┘
                   │                   │         │    └─ code d'erreur natif          └─ Message d'erreur natif
                   │                   │         └─ SQLState
                   └─ Message Zabbix   └─ code de retour ODBC

Notez que la longueur du message d'erreur est limitée à 2048 octets, ainsi le message peut être tronqué. S'il y a plus d'un enregistrement de diagnostic ODBC, Zabbix essaie de les concaténer (séparé par |) aussi loin que la limite de longueur le permet.