Cette section fournit des d¨¦tails sur les v¨¦rifications passives et actives effectu¨¦es par l'agent Áú»¢¶Ä²©.
Áú»¢¶Ä²© utilise un protocole de communication bas¨¦ sur JSON pour communiquer avec l'agent Áú»¢¶Ä²©.
Voir aussi les d¨¦tails de protocole de l'Agent Áú»¢¶Ä²© 2.
Une v¨¦rification passive est une simple demande de donn¨¦es. Le serveur ou le proxy Áú»¢¶Ä²© demande des donn¨¦es (par exemple, la charge du processeur) et l'agent Áú»¢¶Ä²© renvoie le r¨¦sultat au serveur.
**Requ¨ºte du serveur **
Pour la d¨¦finition de l'en-t¨ºte et de la longueur des donn¨¦es, veuillez vous reporter aux d¨¦tails du protocole.
<item key>
R¨¦ponse de l'agent
<DATA>[\0<ERROR>]
Ci-dessus, la partie entre crochets est facultative et n'est envoy¨¦e que pour les ¨¦l¨¦ments non support¨¦s.
Par exemple, pour les ¨¦l¨¦ments support¨¦s :
Pour les ¨¦l¨¦ments non support¨¦s :
Les v¨¦rifications actives n¨¦cessitent un traitement plus complexe. L'agent doit d'abord r¨¦cup¨¦rer sur le(s) serveur(s) une liste d'¨¦l¨¦ments pour un traitement ind¨¦pendant.
Les serveurs ¨¤ partir desquels obtenir les v¨¦rifications actives sont r¨¦pertori¨¦s dans le param¨¨tre 'ServerActive' du fichier de configuration de l'agent. La fr¨¦quence des demandes pour ces v¨¦rifications est d¨¦fini par le param¨¨tre 'RefreshActiveChecks' dans le m¨ºme fichier de configuration. Cependant, si le rafra?chissement des v¨¦rifications actives ¨¦choue, il sera r¨¦essay¨¦ apr¨¨s 60 secondes (cod¨¦es en dur).
L'agent envoie alors p¨¦riodiquement les nouvelles valeurs au(x) serveur(s).
Si un agent se trouve derri¨¨re le pare-feu, vous pouvez envisager d'utiliser uniquement les v¨¦rifications actives, car dans ce cas, vous n'auriez pas besoin de modifier le pare-feu pour autoriser les connexions entrantes initiales.
Requ¨ºte de l'agent
La requ¨ºte des v¨¦rifications actives est utilis¨¦e pour obtenir les v¨¦rifications actives ¨¤ traiter par l'agent. Cette requ¨ºte est envoy¨¦e par l'agent au d¨¦marrage, puis avec des intervalles de RefreshActiveChecks.
{
"request": "active checks",
"host": "Áú»¢¶Ä²© server",
"host_metadata": "mysql,nginx",
"hostinterface": "zabbix.server.lan",
"ip": "159.168.1.1",
"port": 12050
}
Champ | Type | Obligatoire | Valeur |
---|---|---|---|
request | string | oui | active checks |
host | string | oui | Nom d'h?te. |
host_metadata | string | non | Le param¨¨tre de configuration HostMetadata ou la valeur de m¨¦trique HostMetadataItem. |
hostinterface | string | non | La valeur m¨¦trique du param¨¨tre de configuration HostInterface ou HostInterfaceItem. |
ip | string | non | Le param¨¨tre de configuration ListenIP first IP s'il est d¨¦fini. |
port | number | non | La valeur du param¨¨tre de configuration ListenPort si d¨¦finie et non le port d'¨¦coute par d¨¦faut de l'agent. |
R¨¦ponse du serveur
La r¨¦ponse des v¨¦rifications actives est renvoy¨¦e par le serveur ¨¤ l'agent apr¨¨s le traitement de la requ¨ºte de v¨¦rifications actives.
{
"response": "success",
"data": [
{
"key": "log[/home/zabbix/logs/zabbix_agentd.log]",
"key_orig": "log[/home/zabbix/logs/zabbix_agentd.log]",
"itemid": 1234,
"delay": "30s",
"lastlogsize": 0,
"mtime": 0
},
{
"key": "agent.version",
"key_orig": "agent.version",
"itemid": 5678,
"delay": "10m",
"lastlogsize": 0,
"mtime": 0
}
]
}
Champ | Type | Obligatoire | Valeur | |
---|---|---|---|---|
response | string | oui | success | failed |
|
info | string | non | Informations d'erreur en cas d'¨¦chec. | |
data | array of objects | non | ?l¨¦ments de v¨¦rifications actives. | |
key | string | non | Cl¨¦ d'¨¦l¨¦ment avec macros ¨¦tendues. | |
key_orig | string | non | Cl¨¦ d'¨¦l¨¦ment sans macro ¨¦tendue. | |
itemid | number | non | Identificateur d'¨¦l¨¦ment. | |
delay | string | non | Intervalle de mise ¨¤ jour de l'¨¦l¨¦ment. | |
lastlogsize | number | non | Derni¨¨re taille du journal de l'¨¦l¨¦ment. | |
mtime | number | non | Mtime de l'¨¦l¨¦ment. | |
refresh_unsupported | number | non | Intervalle d'actualisation des ¨¦l¨¦ments non pris en charge. | |
regexp | array of objects | non | Expressions r¨¦guli¨¨res globales. | |
name | string | non | Nom de l'expression r¨¦guli¨¨re globale. | |
expression | string | non | Expression r¨¦guli¨¨re globale. | |
expression_type | number | non | Type de l'expression r¨¦guli¨¨re globale. | |
exp_delimiter | string | non | D¨¦limiteur de l'expression r¨¦guli¨¨re globale. | |
case_sensitive | number | non | Param¨¨tre global de sensibilit¨¦ ¨¤ la casse des expressions r¨¦guli¨¨res. |
Le serveur doit r¨¦pondre avec succ¨¨s.
Par exemple :
Notez que des donn¨¦es de configuration (sensibles) peuvent devenir disponibles pour les parties ayant acc¨¨s au port du trapper du serveur Áú»¢¶Ä²© lors de l'utilisation d'une v¨¦rification active. Cela est possible car tout le monde peut pr¨¦tendre ¨ºtre un agent actif et demander des donn¨¦es de configuration d'¨¦l¨¦ment. L'authentification n'a pas lieu sauf si vous utilisez les options de chiffrement.
Envois de l'agent
La demande de donn¨¦es d'agent contient les valeurs d'¨¦l¨¦ment collect¨¦es.
{
"request": "agent data",
"data": [
{
"host": "Áú»¢¶Ä²© server",
"key": "agent.version",
"value": "2.4.0",
"clock": 1400675595,
"ns": 76808644
},
{
"host": "Áú»¢¶Ä²© server",
"key": "log[/home/zabbix/logs/zabbix_agentd.log]",
"lastlogsize": 112,
"value": " 19845:20140621:141708.521 Starting Áú»¢¶Ä²© Agent [<hostname>]. Áú»¢¶Ä²© 2.4.0 (revision 50000).",
"clock": 1400675595,
"ns": 77053975
}
],
"session": "1234456akdsjhfoui"
}
Champ | Type | Obligatoire | Valeur | |
---|---|---|---|---|
request | string | oui | donn¨¦es des agents |
|
session | string | oui | Identifiant de session unique g¨¦n¨¦r¨¦ ¨¤ chaque d¨¦marrage de l'agent. | |
data | array of objects | oui | Valeurs des ¨¦l¨¦ments. | |
id | number | oui | L'identifiant de la valeur (compteur incr¨¦mental utilis¨¦ pour v¨¦rifier les valeurs dupliqu¨¦es en cas de probl¨¨mes r¨¦seaux). | |
host | string | oui | Nom d'h?te. | |
key | string | oui | La cl¨¦ de l'¨¦l¨¦ment. | |
value | string | non | La valeur de l'¨¦l¨¦ment. | |
lastlogsize | number | non | La derni¨¨re taille de journal de l'¨¦l¨¦ment. | |
mtime | number | non | Le mtime de l'¨¦l¨¦ment. | |
state | number | non | L'¨¦tat de l'¨¦l¨¦ment. | |
source | string | non | Valeur de la source du journal des ¨¦v¨¦nements. | |
eventid | number | non | La valeur eventid du journal des ¨¦v¨¦nements. | |
severity | number | non | La valeur de la s¨¦v¨¦rit¨¦ du journal des ¨¦v¨¦nements. | |
timestamp | number | non | La valeur de l'horodatage du journal des ¨¦v¨¦nements. | |
clock | number | oui | La valeur d'horodatage (secondes depuis Epoch). | |
ns | number | oui | La valeur d'horodatage en nanosecondes. |
Un identifiant virtuel est attribu¨¦ ¨¤ chaque valeur. L'ID de valeur est un simple compteur croissant, unique au sein d'une session de donn¨¦es (identifi¨¦ par le jeton de session). Cet ID est utilis¨¦ pour supprimer les valeurs en double qui pourraient ¨ºtre envoy¨¦es dans des environnements de mauvaise connectivit¨¦.
R¨¦ponse du serveur
La r¨¦ponse de donn¨¦es d'agent est renvoy¨¦e par le serveur ¨¤ l'agent apr¨¨s le traitement de la demande de donn¨¦es d'agent.
Champ | Type | Obligatoire | Valeur |
---|---|---|---|
response | string | oui | success | failed |
info | string | oui | R¨¦sultats du traitement des ¨¦l¨¦ments. |
::: noteimportant Si l'envoi de certaines valeurs ¨¦choue sur le serveur (par exemple, parce que l'h?te ou l'¨¦l¨¦ment a ¨¦t¨¦ d¨¦sactiv¨¦ ou supprim¨¦), l'agent ne r¨¦essayera pas d'envoyer ces valeurs. :::
Par exemple :
Notez que dans l'exemple ci-dessus, le statut non pris en charge pour vfs.fs.size[/nono] est indiqu¨¦ par la valeur "state" de 1 et le message d'erreur dans la propri¨¦t¨¦ "value".
Le message d'erreur sera r¨¦duit ¨¤ 2048 symboles c?t¨¦ serveur.
Áú»¢¶Ä²© prendra jusqu'¨¤ 16 Mo de donn¨¦es cod¨¦es en XML Base64, mais une seule valeur d¨¦cod¨¦e ne devrait pas d¨¦passer 64 Ko, sinon elle sera tronqu¨¦e ¨¤ 64 Ko lors du d¨¦codage.