Áú»¢¶Ä²©

This is a translation of the original English documentation page. Help us make it better.

3 V¨¦rifications passives et actives des agents

Aper?u

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.

V¨¦rifications passives

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 :

  1. Le serveur ouvre une connexion TCP
  2. Le serveur envoie <HEADER><DATALEN>agent.ping
  3. L'agent lit la requ¨ºte et r¨¦pond avec <HEADER><DATALEN>1
  4. Le serveur traite les donn¨¦es pour obtenir la valeur, '1' dans notre cas
  5. La connexion TCP est ferm¨¦e

Pour les ¨¦l¨¦ments non support¨¦s :

  1. Le serveur ouvre une connexion TCP
  2. Le serveur envoie <HEADER><DATALEN>vfs.fs.size[/nono]
  3. L'agent lit la demande et r¨¦pond avec <HEADER><DATALEN>ZBX_NOTSUPPORTED\0Cannot obtain filesystem information: [2] No such file or directory
  4. Le serveur traite les donn¨¦es et modifie l'¨¦tat de l'¨¦l¨¦ment ¨¤ non support¨¦ avec le message d'erreur sp¨¦cifi¨¦.
  5. La connexion TCP est ferm¨¦e

V¨¦rifications actives

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.

Obtenir la liste des ¨¦l¨¦ments

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 :

  1. L'agent ouvre une connexion TCP
  2. L'agent demande la liste des v¨¦rifications
  3. Le serveur r¨¦pond avec une liste d'¨¦l¨¦ments (cl¨¦ d'¨¦l¨¦ment, d¨¦lai)
  4. L'agent analyse la r¨¦ponse
  5. La connexion TCP est ferm¨¦e
  6. L'agent commence la collecte p¨¦riodique des donn¨¦es

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.

Envoi des donn¨¦es collect¨¦es

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.

{
         "response": "success",
         "info": "processed: 2; failed: 0; total: 2; seconds spent: 0.003534"
       }
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 :

  1. L'agent ouvre une connexion TCP
  2. L'agent envoie une liste de valeurs
  3. Le serveur traite les donn¨¦es et renvoie le statut
  4. La connexion TCP est ferm¨¦e

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.

Ancien protocole XML

Áú»¢¶Ä²© 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.