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 Taille Commentaires
Octet 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 :

Nom Type Commentaires
id uint32 Pour les requêtes - l'identifiant d'incrémentation utilisé pour lier les requêtes aux réponses. Unique dans une direction de requête (c'est-à-dire d'agent à plugin ou de plugin à agent).
Pour les réponses - ID de la requête correspondante.
type uint32 Le type de requête.
Requête de journal

Requête envoyée par un plug-in pour écrire un message de journal dans le fichier journal de l'agent.

direction plugin → agent
réponse non

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

Nom Type Commentaires
severity uint32 La gravité du message (niveau de journalisation).
message chaîne Le message à consigner.

Exemple:

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

Requête envoyée par l'agent lors de la phase de démarrage de l'agent pour obtenir les métriques fournies pour enregistrer un plug-in.

direction agent → plugin
réponse oui

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

Nom Type Commentaires
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
réponse n/a

Paramètres spécifiques aux réponses d'enregistrements :

Nom Type Commentaires
name string Le nom du plug-in.
metrics tableau de chaînes (facultatif) Les métriques avec des descriptions telles qu'elles sont utilisées dans le plugin. Renvoie RegisterMetrics(). Absent si une erreur est renvoyée.
interfaces uint32 (facultatif) Le masque binaire des interfaces prises en charge par le plugin. Absent si une erreur est renvoyée.
error string (facultatif) Un message d'erreur est renvoyé si un plugin ne peut pas être démarré. Absent, si les métriques sont renvoyées.

Exemples:

{"id":2,"type":3,"metrics":["external.test", "Test de l'exportateur externe."], "interfaces": 4}

ou

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

Une demande d'exécution de la fonction Start de l'interface Runner.

direction agent → plugin
réponse non

La requête n'a pas de paramètres spécifiques, elle ne contient que des paramètres de données communs.

Exemple:

{"id":3,"type":4}
Terminer la requête

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

direction agent → plugin
réponse non

La requête n'a pas de paramètres spécifiques, elle ne contient que des paramètres de données communs.

Exemple:

{"id":3,"type":5}
Requête d'exportation

Une demande d'exécution de la fonction Exporter de l'interface Exporter.

direction agent → plugin
réponse non

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

Nom Type Commentaires
key string La clé du plugin.
parameters tableau de chaînes (facultatif) Les paramètres de la fonction d'exportation.

Exemple:

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Réponse de l'exportation

Réponse de la fonction Exporter de l'interface Exporter.

direction plugin → agent
réponse n/a

Paramètres spécifiques aux réponses d'exportation :

Nom Type Commentaires
value string (facultatif) Valeur de réponse de la fonction d'exportation. Absent, si une erreur est renvoyée.
error string (facultatif) Message d'erreur si la fonction d'exportation n'a pas été exécutée avec succès. Absent, si la valeur est renvoyée.

Exemples :

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

ou

{"id":5,"type":7,"error":"message d'erreur"}
Requête de configuration

Une requête pour exécuter la fonction Configure de l'interface Configurateurr.

direction agent → plugin
réponse n/a

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

Nom Type Commentaires
global_options Objet JSON Objet JSON contenant les options de configuration globales de l'agent.
private_options Objet JSON (facultatif) Objet JSON contenant les options de configuration du plug-in privé, le cas échéant.

Exemple :

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Requête de validation

Une requête pour exécuter la fonction Valider de l'interface Configurateur.

direction agent → plugin
réponse oui

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

Nom Type Commentaires
private_options Objet JSON (facultatif) Objet JSON contenant les options de configuration du plug-in privé, le cas échéant.

Exemple :

{"id":7,"type":9,"private_options":{...}}
Réponse de validation

Réponse de la fonction Valider de l'interface Configurateur.

direction plugin → agent
réponse n/a

Paramètres spécifiques aux réponses Valider :

Nom Type Commentaires
error string (facultatif) Un message d'erreur est renvoyé si la fonction Validate n'est pas exécutée avec succès. Absent si exécuté avec succès.

Exemple :

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

ou

{"id":8,"type":10,"error":"message d'erreur"}