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