4 Protocole du plug-in agent Zabbix 2

Le protocole de l'agent Zabbix 2 est basé sur le code, la taille et le modèle de données.

Code

Type Size Commentaires
Byte 4 Type de charge utile, actuellement seul JSON est pris en charge.

Taille

Type Taille Commentaires
Octet 4 Taille de la charge utile actuelle en octets.

Données de charge utile

Type Taille Commentaires
Octet Défini par le champ Taille Données au format JSON.
Définition des données de charge utile
Données communes

Ces paramètres sont présents dans toutes les requêtes/réponses :

Name Type Comments
id uint32 Pour les requêtes - l’identifiant incrémentiel utilisé pour associer les requêtes aux réponses. Il est unique dans une direction de requête donnée (c’est-à-dire de l’agent vers le plugin ou du plugin vers l’agent).
Pour les réponses - l’ID de la requête correspondante.
type uint32 Le type de requête.
Requête de journalisation

Une requête envoyée par un plugin pour écrire un message de journal dans le fichier journal de l'agent.

direction plugin → agent
response non

Paramètres spécifiques aux requêtes de journalisation :

Name Type Comments
severity uint32 La sévérité du message (niveau de journalisation).
message string Le message à journaliser.

Exemple :

{"id":0,"type":1,"severity":3,"message":"message"}
Requête d’enregistrement

Une requête envoyée par l’agent pendant la phase de démarrage de l’agent afin d’obtenir les métriques fournies pour enregistrer un plugin.

direction agent → plugin
response yes

Paramètres spécifiques aux requêtes d’enregistrement :

Name Type Comments
version string La version du protocole <major>.<minor>

Exemple :

{"id":1,"type":2,"version":"1.0"}
Réponse d’enregistrement

Réponse du plugin à la requête d’enregistrement.

direction plugin → agent
response n/a

Paramètres spécifiques aux réponses d’enregistrement :

Name Type Comments
name string Le nom du plugin.
metrics array of strings (optional) Les métriques avec leurs descriptions telles qu’utilisées dans le plugin. Renvoie RegisterMetrics(). Absent si une erreur est renvoyée.
interfaces uint32 (optional) Le masque de bits des interfaces prises en charge par le plugin. Absent si une erreur est renvoyée.
error string (optional) Un message d’erreur renvoyé si un plugin ne peut pas être démarré. Absent si des métriques sont renvoyées.

Exemples :

{"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}

ou

{"id":2,"type":3,"error":"error message"}
Requête de démarrage

Une requête pour exécuter la fonction Start de l’interface Runner.

direction agent → plugin
response no

La requête n’a pas de paramètres spécifiques, elle contient uniquement les paramètres des données communes.

Exemple :

{"id":3,"type":4}
Requête de terminaison

Une requête envoyée par l'agent pour arrêter un plugin.

direction agent → plugin
response no

La requête n'a pas de paramètres spécifiques, elle contient uniquement les paramètres des données communes.

Exemple :

{"id":3,"type":5}
Requête d’export

Une requête pour exécuter la fonction Export de l’interface Exporter.

direction agent → plugin
response non

Paramètres spécifiques aux requêtes d’export :

Name Type Comments
key string La clé du plugin.
parameters array of strings (optional) Les paramètres de la fonction Export.

Exemple :

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Réponse d’export

Réponse de la fonction Export de l’interface Exporter.

direction plugin → agent
response n/a

Paramètres spécifiques aux réponses d’export :

Name Type Comments
value string (optional) Valeur de réponse de la fonction Export. Absent si une erreur est renvoyée.
error string (optional) Message d’erreur si la fonction Export ne s’est pas exécutée avec succès. Absent si une valeur est renvoyée.

Exemples :

{"id":5,"type":7,"value":"response"}

ou

{"id":5,"type":7,"error":"error message"}
Configurer la requête

Une requête pour exécuter la fonction Configure de l’interface Configurator.

direction agent → plugin
response n/a

Paramètres spécifiques aux requêtes Configure :

Name Type Comments
global_options JSON object Objet JSON contenant les options de configuration globales de l’agent.
private_options JSON object (optional) Objet JSON contenant les options de configuration privées du plugin, si elles sont fournies.

Exemple :

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Valider la requête

Une requête pour exécuter la fonction Validate de l’interface Configurator.

direction agent → plugin
response yes

Paramètres spécifiques aux requêtes Validate :

Name Type Comments
private_options JSON object (optional) Objet JSON contenant les options de configuration privées du plugin, si elles sont fournies.

Exemple :

{"id":7,"type":9,"private_options":{...}}
Valider la réponse

Réponse de la fonction Validate de l’interface Configurator.

direction plugin → agent
response n/a

Paramètres spécifiques aux réponses de Validate :

Name Type Comments
error string (optional) Message d’erreur renvoyé si la fonction Validate ne s’exécute pas correctement. Absent si l’exécution réussit.

Exemple :

{"id":8,"type":10}

ou

{"id":8,"type":10,"error":"error message"}