Protocole du plugin Zabbix agent 2

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

Code

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

Taille

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

Données de charge utile

Type Taille Commentaires
Byte Defini par le champ Size 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émental utilisé pour associer les requêtes aux réponses. Unique dans une direction de requête (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

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

direction plugin → agent
response no

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

Name Type Comments
severity uint32 Le niveau de gravité du message (niveau de journalisation).
message string Le message à journaliser.

Exemple :

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

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. Retourne 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"}
Demande de démarrage

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

direction agent → plugin
response no

La demande ne comporte pas de paramètres spécifiques, elle contient uniquement les paramètres de données communes.

Exemple :

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

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

direction agent → plugin
response no

La requête ne possède pas de paramètres spécifiques, elle contient uniquement les paramètres de données communes.

Exemple :

{"id":3,"type":5}
Demande d'export

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

direction agent → plugin
response no

Paramètres spécifiques aux demandes 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. Absente 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 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 objet JSON (facultatif) 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 Validate :

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

Exemple :

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

ou

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