This is a translation of the original English documentation page. Help us make it better.

Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

14 Surveillance ODBC

Aperçu

La surveillance ODBC correspond au type d'élément surveillance de base de donées dans l'interface Zabbix.

ODBC est une API intermédiaire en langage de programmation 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 plus tard porté sur d'autres plates-formes.

Zabbix peut interroger n'importe quelle base de données prise en charge 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 de différentes bases de données à des fins multiples - par exemple, la vérification de files d'attente de bases de données spécifiques, les statistiques d'utilisation, etc. Zabbix prend en charge unixODBC, qui est l'une des implémentations d'API ODBC open source les plus couramment utilisées.

Consultez également les problèmes connus pour les vérifications ODBC.

Installation d'unixODBC

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

Installation d'unixODBC sur des systèmes basés sur RedHat/Fedora à l'aide du gestionnaire de packages yum :

shell> yum -y install unixODBC unixODBC-devel

Installation d'unixODBC sur des systèmes basés sur SUSE à l'aide du gestionnaire de packages 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 surveillée. unixODBC a une liste de bases de données et de pilotes pris en charge : 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. Installer le pilote de base de données MySQL sur les systèmes basés sur RedHat/Fedora à l'aide du gestionnaire de packages yum :

shell> yum install mysql-connector-odbc

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

zypper in MyODBC-unixODBC

Configuring unixODBC

ODBC configuration is done by editing the odbcinst.ini and odbc.ini files. To verify the configuration file location, type:

shell> odbcinst -j

odbcinst.ini is used to list the installed ODBC database drivers:

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

Parameter details:

Attribute Description
mysql Database driver name.
Description Database driver description.
Driver Database driver library location.

odbc.ini is used to define data sources:

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

Parameter details:

Attribute Description
test Data source name (DSN).
Description Data source description.
Driver Database driver name - as specified in odbcinst.ini
Server Database server IP/DNS.
User Database user for connection.
Password Database user password.
Port Database connection port.
Database Database name.

To verify if ODBC connection is working successfully, a connection to database should be tested. That can be done with the isql utility (included in the unixODBC package):

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

Compiler Zabbix avec le support ODBC

Pour activer le support ODBC, Zabbix doit être compilé avec le flag suivant :

  --with-unixodbc[=ARG]   utiliser le pilote odbc au lieu du package unixODBC

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

Item configuration in Zabbix frontend

Configure a database monitoring item.

All mandatory input fields are marked with a red asterisk.

Specifically for database monitoring items you must enter:

Type Select Database monitor here.
Key Enter db.odbc.select[unique_description,data_source_name]
The unique description will serve to identify the item in triggers etc.
The data source name (DSN) must be set as specified in odbc.ini.
User name Enter the database user name (optional if user is specified in odbc.ini)
Password Enter the database user password (optional if password is specified in odbc.ini)
SQL query Enter the SQL query
Type of information It is important to know what type of information will be returned by the query, so that it is selected correctly here. With an incorrect type of information the item will turn unsupported.

Remarques importantes

  • Les éléments de surveillance de la base de données ne seront plus pris en charge si aucun processus odbc poller n'est démarré dans la configuration du serveur ou du proxy. Pour activer les pollers ODBC, définissez le paramètre StartODBCPollers dans le fichier de configuration serveur Zabbix ou, pour les vérifications effectuées par proxy, dans le fichier de configuration proxy Zabbix.
  • Zabbix ne limite pas le temps d'exécution des requêtes. Il appartient à l'utilisateur de choisir des requêtes pouvant ê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 de connexion peut être ignoré).
  • La commande SQL doit retourner un jeu de résultats comme n'importe quelle requête avec select .... La syntaxe des requêtes dépendra du SGBDR qui les traitera. La syntaxe de requête à une procédure de stockage doit être démarrée avec le mot-clé call.

Messages d'erreur

Les messages d'erreur ODBC sont structurés en 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]
       └───────────┬───────────┘  └────┬────┘ └──┬──┘└┬┘└─────────────────────────────┬─────────────────────────────────────┘
                   │                   │         │    └─ Native error code            └─ Native error message
                   │                   │         └─ SQLState
                   └─ Zabbix message   └─ ODBC return code

Notez que la longueur du message d'erreur est limitée à 2048 octets, le message peut donc être tronqué. S'il existe plusieurs enregistrements de diagnostic ODBC, Zabbix essaie de les concaténer (séparés par |) dans la mesure où la limite de longueur le permet.