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

Fonctionnement du modèle d'agent Zabbix

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

1. Assurez-vous que l'agent Zabbix est installé sur l'hôte. Pour les vérifications actives, assurez-vous également que l'hôte est ajouté au paramètre 'ServerActive' du fichier de configuration de l'agent.
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 .xml du modèle - voir Modèles prêts à l'emploi pour les instructions).
3. Ajustez les valeurs des macros obligatoires selon vos besoins.
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.

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
Apache by Zabbix agent {$APACHE.STATUS.HOST} - le nom d'hôte ou l'adresse IP de la page d'état d'Apache (par défaut : 127.0.0.1)
{$APACHE.STATUS.PATH} - le chemin de l'URL (par défaut : server-status?auto)
{$APACHE.STATUS.PORT} - le port de la page d'état d'Apache (défaut : 80)
Le module apache mod_status doit être défini (voir la documentation Apache pour pluse de détails).
Pour vérifier la disponibilité, exécutez :
httpd -M 2>/dev/null \| grep status_module

Exemple de configuration Apache :
<Location "/server-status">
SetHandler server-status
Require host example.com
</Location>
HAProxy by Zabbix agent {$HAPROXY.STATS.PATH} - le chemin de la page HAProxy Stats (par défaut : stats)
{$HAPROXY.STATS.PORT} - le port de l'hôte ou du conteneur HAProxy Stats (par défaut : 8404)
{$HAPROXY.STATS.SCHEME} - le schéma de la page HAProxy Stats. Pris en charge : http (par défaut), https
La page HAProxy Stats doit être configurée (voir l'article du blog HAProxy pour plus de détails ou le fichier Readme.md du modèle pour un exemple de configuration).
IIS by Zabbix agent / IIS by Zabbix agent active {$IIS.PORT} - le port d'écoute du serveur IIS (par défaut : 80)
{$IIS.SERVICE} - le service de contrôle de port (par défaut : http). Voir la section net.tcp.service pour plus de détails.
Le serveur doit avoir les rôles suivants :
Serveur Web
Scripts et outils de gestion IIS

Voir la documentation IIS pour plus de détails.
Microsoft Exchange Server 2016 by Zabbix agent/Microsoft Exchange Server 2016 by Zabbix agent active Notez que le modèle ne fournit pas d'informations sur l'état des services Windows. Il est recommandé de l'utiliser avec le modèle OS Windows by Zabbix agent ou OS Windows by Zabbix agent active.
Nginx by Zabbix agent {$NGINX.STUB_STATUS.HOST} - le nom d'hôte ou l'adresse IP de l'hôte ou du conteneur Nginx stub_status (par défaut : localhost)
{$NGINX.STUB_STATUS.PATH} - le chemin de la page Nginx stub_status (par défaut : basic_status)
{$NGINX.STUB_STATUS.PORT} - le port de l'hôte ou du conteneur Nginx stub_status (par défaut : 80)
ngx_http_stub_status_module doit être configuré (voir la documentation Nginx pour plus de détails ou le fichier Readme.md du modèle pour un exemple de configuration).
Pour vérifier la disponibilité, exécutez :
nginx -V 2>&1 \| grep -o with-http_stub_status_module
PHP-FPM by Zabbix agent {$PHP_FPM.HOST} - un nom d'hôte ou une IP d'hôte ou de conteneur de statut PHP-FPM (par défaut : localhost)
{$PHP_FPM.PING.PAGE} - Chemin de la page de ping PHP-FPM (par défaut : ping)
{$PHP_FPM.PORT} - le port de l'hôte ou du conteneur de statut PHP-FPM (par défaut : 80)
{$PHP_FPM.PROCESS_NAME} - Nom du processus PHP-FPM (par défaut : php-fpm)
{$PHP_FPM.STATUS.PAGE} - Chemin de la page d'état PHP-FPM (par défaut : status)
1. Ouvrez le fichier de configuration php-fpm et activez la page d'état :
pm.status_path = /status
ping.path = /ping

2. Validez la syntaxe : $ php-fpm7 -t

3. Rechargez le service php-fpm.

4. Dans le fichier de configuration Nginx Server Block (hôte virtuel), ajoutez (voir le Readme.md du modèle pour un exemple développé avec des commentaires) :
location ~ ^/(status\|ping)$ {
access_log off;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}

5. Vérifiez la syntaxe : $ nginx -t

6. Rechargez Nginx

7. Vérifiez : curl -L 127.0.0.1/status
RabbitMQ cluster by Zabbix agent {$RABBITMQ.API.CLUSTER_HOST} - le nom d'hôte ou l'adresse IP du point de terminaison de l'API du cluster RabbitMQ (par défaut : 127.0.0.1)
{$RABBITMQ.API.USER}, {$RABBITMQ.API.PASSWORD} - Identifiants de connexion RabbitMQ (nom d'utilisateur par défaut : zbx_monitor, mot de passe : zabbix)
Activez le plugin de gestion RabbitMQ (voir la documentation RabbitMQ).

Pour créer un utilisateur RabbitMQ avec les autorisations nécessaires pour la surveillance, exécutez :
rabbitmqctl add\_user zbx\_monitor <PASSWORD>
rabbitmqctl set_permissions -p / zbx_monitor %% "" "" ".*"%%
rabbitmqctl set_user_tags zbx_monitor monitoring

Si le cluster se compose de plusieurs nœuds, il est recommandé d'attribuer le modèle de cluster à un hôte d'équilibrage distinct. Dans le cas d'une installation à nœud unique, le modèle de cluster peut être attribué à l'hôte avec un modèle de nœud.
MySQL by Zabbix agent {$MYSQL.HOST} - le nom d'hôte ou l'adresse IP de l'hôte ou du conteneur MySQL (par défaut : 127.0.0.1 (depuis 6.0.8)/localhost (avant 6.0.8))
{$MYSQL.PORT} - le port du service de base de données (par défaut : 3306)
1. Si nécessaire, ajoutez le chemin vers les utilitaires mysql et mysqladmin à la variable d'environnement globale PATH.

2. Copiez le fichier template_db_mysql.conf depuis le répertoire templates de Zabbix dans le dossier avec la configuration de l'agent Zabbix (/etc/zabbix/zabbix_agentd.d/ par défaut) et redémarrez l'agent Zabbix.

3. Créer un utilisateur MySQL zbx_monitor. Pour accorder les privilèges requis à l'utilisateur, exécutez :
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON %% *.* TO '<username>'@'%';%%
(voir la documentation MYSQL pour plus de détails).

4. Créez .my.cnf dans le répertoire d'accueil de l'agent Zabbix pour Linux (/var/lib/zabbix par défaut) ou my.cnf dans c:\ pour Windows. Le fichier doit avoir trois chaînes :
[client]
user='zbx\_monitor'
password='<password>'
PostgreSQL {$PG.DB} - le nom de la base de données pour se connecter au serveur (par défaut : postgres)
{$PG.HOST} - le répertoire de l'hôte ou du socket du serveur de base de données (par défaut : 127.0.0.1)
{$PG.PORT} - le port du serveur de base de données (par défaut : 5432)
{$PG.USER} - le nom d'utilisateur de la base de données (par défaut : zbx_monitor)
1. Créez un utilisateur en lecture seule zbx_monitor avec un accès approprié au serveur PostgreSQL. Pour PostgreSQL 10 et versions ultérieures, exécutez :
CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>' INHERIT;
GRANT pg_monitor TO zbx_monitor;
Pour les anciennes versions de PostgreSQL, exécutez :
CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>';
GRANT SELECT ON pg_stat_database TO zbx_monitor;

2. Copiez postgresql/ vers le répertoire d'accueil de l'agent Zabbix (/var/lib/zabbix/).

3. Copiez template_db_postgresql.conf du répertoire templates de Zabbix vers le répertoire de configuration de l'agent Zabbix (/etc/zabbix/zabbix_agentd.d/) et redémarrez l'agent Zabbix.

4. Modifiez pg_hba.conf pour autoriser les connexions depuis l'agent Zabbix (voir la Documentation PostgreSQL pour plus de détails).
Exemples de lignes :
host all zbx_monitor 127.0.0.1/32 trust
host all zbx_monitor 0.0.0.0/0 md5
host all zbx_monitor ::0/0 md5

5. Pour surveiller un serveur distant, créez un fichier .pgpass dans le répertoire d'accueil de l'agent Zabbix (/var/lib/zabbix/) et ajoutez des lignes avec les informations d'instance, de port, de base de données, d'utilisateur et de mot de passe (voir la Documentation PostgreSQL pour plus de détails).
Exemples de lignes :
<REMOTE_HOST1>:5432:postgres:zbx_monitor:<PASSWORD>
*:5432:postgres:zbx_monitor:<PASSWORD>