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

Fonctionnement du modèle de l'agent Zabbix 2

Étapes pour garantir le bon fonctionnement des modèles qui collectent des métriques avec l'agent Zabbix agent 2 :

1. Assurez-vous que l'agent 2 est installé sur l'hôte et que la version installée contient le plug-in requis. Dans certains cas, vous devrez peut-être mettre à niveau l'agent 2 en premier.
2.Liez le modèle à un hôte cible (si le modèle n'est pas disponible dans votre installation Zabbix, vous devrez peut-être d'abord importer le fichier d'importation du modèle - voir Modèles prêts à l'emploi pour les instructions).
3. Ajustez les valeurs des macros obligatoires selon vos besoins. Notez que les macros utilisateur peuvent être utilisées pour remplacer les paramètres de configuration.
4. Configurez l'instance surveillée pour autoriser le partage de données avec Zabbix - voir les instructions dans la colonne Étapes supplémentaires/commentaires.

Les modèles de l'agent Zabbix 2 fonctionnent conjointement avec les plugins. Alors que la configuration de base peut être effectuée en ajustant simplement les macros utilisateur, la personnalisation plus approfondie peut être obtenue en configurant le plugin lui-même. Par exemple, si un plugin prend en charge les sessions nommées, il est possible de surveiller plusieurs entités du même type (par exemple MySQL1 et MySQL2) en spécifiant une session nommée avec son propre URI, nom d'utilisateur et mot de passe pour chaque entité dans le fichier de configuration.

Cette page ne contient qu'un ensemble minimal de macros et d'étapes de configuration nécessaires au bon fonctionnement du modèle. Une description détaillée d'un modèle, y compris la liste complète des macros, des éléments et des déclencheurs, est disponible dans le fichier Readme.md du modèle (accessible en cliquant sur un nom de modèle).

Nom du modèle Macros obligatoires Étapes supplémentaires/commentaires
Ceph par l'agent Zabbix 2 {$CEPH.API.KEY} - la clé API (par défaut : zabbix_pass).
Requis, si {$CEPH.CONNSTRING} est un URI.
Doit être vide, si {$CEPH.CONNSTRING} est un nom de session.
{$CEPH.CONNSTRING} - chaîne de connexion ; peut être un nom de session ou un URI défini au format suivant : <protocol(host:port)>. Pour l'URI, seul le schéma HTTPS est pris en charge.
Exemples : Prod, https://localhost:8003 (par défaut)
{$CEPH.USER} - utilisateur à utiliser pour la surveillance (par défaut :zabbix).
Obligatoire, si {$CEPH.CONNSTRING} est un URI.
Doit être vide, si {$CEPH.CONNSTRING} est un nom de session.
Fonctionne avec le plugin Ceph ; les sessions nommées sont prises en charge.

1. Configurez le module Ceph RESTful conformément à la documentation.

2. Assurez-vous qu'un point de terminaison d'API RESTful est disponible pour la connexion.
Docker - Fonctionne avec le plug-in Docker ; les sessions nommées ne sont pas prises en charge.

Pour définir le chemin d'accès au point de terminaison de l'API Docker, modifiez le paramètre Plugins.Docker.Endpoint dans le fichier de configuration (par défaut : Plugins.Docker.Endpoint=unix:///var/run/docker.sock) de l'agent 2.

Pour tester la disponibilité, exécutez :
zabbix_get -s docker-host -k docker.info
Memcached {$MEMCACHED.CONN.URI} - chaîne de connexion au format URI ; le port est facultatif ; le mot de passe n'est pas utilisé.
Si non défini, la valeur par défaut du plugin est utilisée : tcp://localhost:11211.
Exemples : tcp://127.0.0.1:11211, tcp://localhost, unix:/var/run/memcached.sock.
Fonctionne avec le plug-in Memcached ; les sessions nommées sont prises en charge.

Pour tester la disponibilité, exécutez :
zabbix_get -s memcached-host -k memcached.ping
Cluster MongoDB par l'agent Zabbix 2 {$MONGODB.CONNSTRING} - chaîne de connexion au format URI ; le mot de passe n'est pas utilisé (par défaut : tcp://localhost:27017).
Peut être un nom de session ou un URI défini au format suivant : %% <protocol(host:port)>%%
Pour l'URI, seul le schéma TCP est pris en charge.
Exemples : MongoDB1, tcp://172.16.0.10
{$MONGODB.USER}, {$MONGODB.PASSWORD} - Identifiants MongoDB (par défaut : aucun).
S'il n'est pas défini et que {$MONGODB.CONNSTRING} est un URI, les paramètres du fichier de configuration seront utilisés.
Doit être vide, si {$MONGODB.CONNSTRING} est un nom de session.
Fonctionne avec le plug-in MongoDB ; les sessions nommées sont prises en charge.
Pour les instructions de configuration de MongoDB, voir les plugins.
Pour tester la disponibilité, exécutez :
zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
Noeud MongoDB par l'agent Zabbix 2 {$MONGODB.CONNSTRING} - chaîne de connexion au format URI ; le mot de passe n'est pas utilisé (par défaut : tcp://localhost:27017).
Peut être un nom de session ou un URI défini au format suivant : %% <protocol(host:port)>%%
Pour l'URI, seul le schéma TCP est pris en charge.
Exemples : MongoDB1, tcp://172.16.0.10
{$MONGODB.USER}, {$MONGODB.PASSWORD} - Informations d'identification MongoDB (par défaut : aucun).
Si elles ne sont pas définies et que {$MONGODB.CONNSTRING} est un URI, les paramètres du fichier de configuration seront utilisés.
Doit être vide, si {$MONGODB.CONNSTRING} est un nom de la session.
Fonctionne avec le plug-in MongoDB ; les sessions nommées sont prises en charge.
Pour les instructions de configuration de MongoDB, voir les plugins.
Pour tester la disponibilité, exécutez :
zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
MySQL par l'agent Zabbix 2 {$MYSQL.DSN} - le nom de la source de données système de l'instance MySQL (par défaut : <Put your DSN>).
Peut être un nom de session ou un URI défini au format suivant : %% <protocol(host:port or /path/to/socket)/>%%
For URI only TCP and Unix schemas are supported.
Examples: MySQL1, tcp://localhost:3306, tcp://172.16.0.10, unix:/var/run/mysql.sock
{$MYSQL.USER}, {$MYSQL.PASSWORD} - Identifiants MySQL (par défaut : aucun). Requis, si {$MYSQL.DSN} est un URI.
Doit être vide, si {$MYSQL.DSN} est un nom de session.
Fonctionne avec le plugin MySQL ; les sessions nommées sont prises en charge.

Pour accorder les privilèges requis à un utilisateur MySQL qui sera utilisé pour la surveillance, exécutez :
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO '<username>'@'%';

Voir la documentation MySQL pour plus d'informations sur les privilèges utilisateur et les sockets Unix.
Oracle par l'agent Zabbix 2 {$ORACLE.CONNSTRING} - chaîne de connexion ; peut être un nom de session ou un URI défini au format suivant : <protocol(host:port or /path/to/socket)/>
Pour l'URI, seul le schéma TCP est pris en charge.
Exemples : Oracle1, tcp://localhost:1521

{$ORACLE.SERVICE} - Nom du service Oracle (par défaut : ORA). Obligatoire, si {$ORACLE.CONNSTRING} est un URI.
Doit être vide, si {$ORACLE.CONNSTRING} est un nom de session.

{$ORACLE.USER}, {$ORACLE.PASSWORD} - Identifiants Oracle (nom d'utilisateur par défaut : zabbix, mot de passe : zabbix_password). Requis, si {$ORACLE.CONNSTRING} est un URI.
Doit être vide, si {$ORACLE.CONNSTRING} est un nom de session.
Fonctionne avec le plug-in Oracle ; les sessions nommées sont prises en charge.

Installer Oracle Instant Client.
Pour créer un utilisateur Oracle avec les privilèges requis, exécutez :
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
GRANT SELECT ON SYS.DBA_DATA_FILES TO zabbix_mon;
GRANT SELECT ON V$ACTIVE_SESSION_HISTORY TO zabbix_mon;
GRANT SELECT ON V$ARCHIVE_DEST TO zabbix_mon;
GRANT SELECT ON V$ASM_DISKGROUP TO zabbix_mon;
GRANT SELECT ON V$DATABASE TO zabbix_mon;
GRANT SELECT ON V$DATAFILE TO zabbix_mon;
GRANT SELECT ON V$INSTANCE TO zabbix_mon;
GRANT SELECT ON V$LOG TO zabbix_mon;
GRANT SELECT ON V$OSSTAT TO zabbix_mon;
GRANT SELECT ON V$PGASTAT TO zabbix_mon;
GRANT SELECT ON V$PROCESS TO zabbix_mon;
GRANT SELECT ON V$RECOVERY_FILE_DEST TO zabbix_mon;
GRANT SELECT ON V$RESTORE_POINT TO zabbix_mon;
GRANT SELECT ON V$SESSION TO zabbix_mon;
GRANT SELECT ON V$SGASTAT TO zabbix_mon;
GRANT SELECT ON V$SYSMETRIC TO zabbix_mon;
GRANT SELECT ON V$SYSTEM_PARAMETER TO zabbix_mon;
PostgreSQL Agent 2 {$PG.URI} - chaîne de connexion; peut être un nom de session ou un URI défini au format suivant :
%% <protocol(host:port or /path/to/socket)/>%%. Pour l'URI, seuls les schémas TCP et Unix sont pris en charge.
Exemples : Postgres1, tcp://localhost:5432, tcp://172.16.0.10
{$PG.USER}, {$PG.PASSWORD} - Identifiants PostgreSQL (nom d'utilisateur par défaut : postgres, mot de passe : postgres).
Requis, si {$PG.URI} est un URI. Doit être vide, si {$PG.URI} est un nom de session.
Fonctionne avec le plug-in PostgreSQL ; les sessions nommées sont prises en charge.

Pour créer un utilisateur avec les privilèges requis, pour PostgreSQL 10 et versions ultérieures, exécutez :
CREATE USER 'zbx_monitor' IDENTIFIED BY '<password>';
GRANT EXECUTE ON FUNCTION pg_catalog.pg_ls_dir(text) TO zbx_monitor;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_stat_file(text) TO zbx_monitor;

Modifiez pg_hba.conf pour autoriser les connexions depuis l'agent Zabbix (voir la Documentation PostgreSQL pour plus de détails).
Redis {$REDIS.CONN.URI} -chaîne de connexion au format URI ; le port est facultatif ; le mot de passe n'est pas utilisé.
S'il n'est pas défini, la valeur par défaut du plugin est utilisée : tcp://localhost:6379
Fonctionne avec le plug-in Redis ; les sessions nommées sont prises en charge.

Pour tester la disponibilité, exécutez :
zabbix_get -s redis-master -k redis.ping
SMART par l'agent Zabbix 2 / SMART par l'agent Zabbix 2 actif - Les droits d'accès sudo/root à smartctl sont requis pour l'utilisateur exécutant l'agent Zabbix 2. La version minimum requise de smartctl est 7.1.

La règle LLD de découverte de disque trouve tous les disques HDD, SSD, NVMe avec S.M.A.R.T. activé.

La règle LLD de découverte d'attributs trouve tous les attributs spécifiques au fournisseur pour chaque disque.

Pour ignorer certains attributs, définissez des expressions régulières avec des noms de disque dans {$SMART.DISK.NAME.MATCHES} et avec les ID d'attribut dans {$SMART.ATTRIBUTE.ID.MATCHES} au niveau de l'hôte.
Systemd par m'agent Zabbix 2 - Aucune configuration spécifique n'est requise.
Certificat de site internet par l'agent Zabbix 2 {$CERT.WEBSITE.HOSTNAME} - le nom DNS du site Web pour la connexion (par défaut : <Put DNS name>). Fonctionne avec le plug-in WebCertificate ; les sessions nommées ne sont pas prises en charge.
Pour tester la disponibilité, exécutez :
zabbix_get -s <zabbix_agent_addr> -k web.certificate.get[<website_DNS_name>]

Créez un hôte distinct pour le certificat TLS/SSL avec l'interface de l'agent Zabbix et liez le modèle à cet hôte.