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.
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 :
Installation d'unixODBC sur des systèmes basés sur SUSE à l'aide du gestionnaire de paquets zypper :
Le package unixODBC-devel est nécessaire pour compiler Zabbix avec le support 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 :
Installation du pilote de base de données MySQL sur les systèmes SUSE à l'aide du gestionnaire de packages zypper :
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 :
odbcinst.ini est utilisé pour lister les pilotes de base de données ODBC installés :
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>
Pour activer le support ODBC, Zabbix doit être compilé avec l’option suivante :
En savoir plus sur l'installation de Zabbix à partir du code source.
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. |
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
.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.