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"}