Aquesta secció detalla les verificacions actives i passives que fa l'agent Zabbix.
Zabbix empra un protocol de comunicacions basat en JSON per comunicar-se amb l'agent Zabbix.
Veieu també els detalls del protocol de l'Agent Zabbix 2.
Una verificació passiva és una petició simple de dades. El servidor o el proxy Zabbix demanen dades (per exemple, la càrrega del processador) i l'agent Zabbix retorna el resultat al sevidor.
**Petició del servidor **
Per la definició de l'encapçalament i la longitud de les dades, veieu els détalls del protocol.
<item key>
Respossta de l'agent
<DATA>[\0<ERROR>]
A sota, la part en claudàtors és opcional i només s'envia per als elements no admesos.
Per exemple, per elements admesos:
Per els elements no admesos:
To make sure that Zabbix server or proxy can work with agents from pre-7.0 versions, which have plaintext protocol, a failover to the old protocol is implemented.
Passive checks are performed using the JSON protocol (7.0 and later) after restart or when the interface configuration is changed. If no valid JSON is received in response (agent sent "ZBX_NOTSUPPORTED"), Zabbix will cache the interface as old protocol and retry the check by sending only the item key.
Note that every hour Zabbix server/proxy will again try working with the new protocol with all interfaces, falling back to the old protocol if required.
Les verificacions actives tenen un tractament més complexe. L'agent primer ha de recuperar dels servidors una llista d'elements o comandes remotes for independent processingper un tractament independent.
Els servidors/proxys des d'on obtenim les verificacions actives són llistats al paràmetre 'ServerActive' de l'arxiu de configuració de l'agent. La freqüència de les peticions per les verificacions es defineix amb el paràmetre 'RefreshActiveChecks' del mateix arxiu de configuració. Tanmateix, si el refresc de les verificacions actives falla, es tornarà a provar després de 60 segons.
Per tal de reduir el trànsit de la xarxa i l'ús de recursos, el servidor Zabbix o el proxy Zabbix només proporcionaran configuració si l'agent Zabbix encara no ha rebut la configuració o si alguna cosa ha canviat en la configuració de l'equip, les macros globals o les expressions regulars globals.
Aleshores, l'agent envia periòdicament els nous valors als servidors.
Si un agent és darrere un tallafocs, considereu a emprar només les verificacions actives doncs, en aquest cas, no tindreu pas necessitat de modificar el tallafocs per permetre connexions entrants inicials.
Petició de l'agent
La petició de les verificacions actives s'empra per obtindre les verificacions actives a tractar per l'agent. Aquesta petició s'envia per l'agent a l'iniciar, i després amb els intervals RefreshActiveChecks.
{
"request": "active checks",
"host": "Zabbix server",
"host_metadata": "mysql,nginx",
"hostinterface": "zabbix.server.lan",
"ip": "159.168.1.1",
"port": 12050,
"config_revision": 1,
"session": "e3dcbd9ace2c9694e1d7bbd030eeef6e"
}
Camp | Tipus | Obligatori | Valor |
---|---|---|---|
request | string | sí | active checks |
host | string | sí | Nom d'equip. |
host_metadata | string | no | El paràmetre de configuració HostMetadata o el valor de mètrica HostMetadataItem. |
hostinterface | string | no | El valor de mètrica del paràmetre de configuració HostInterface o HostInterfaceItem. |
ip | string | no | El paràmetre de configuració ListenIP first IP, si s'ha definit. |
port | number | no | El valor del paràmetre de configuració ListenPort si s'ha definit i no pas el port d'escola per defecte de l'agent. |
config_revision | number | no | Identificador de configuració per sincronització incremental de la configuració. |
session | string | no | Identificador de la sessió per sincronització incremental de la configuració. |
Resposta del servidor
La resposta de les verificacions actives s'envien per el servidor a l'agent després del tractament de la petició de verificacions 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
}
]
}
Camp | Tipus | Obligatori | Valor | |
---|---|---|---|---|
response | string | sí | success | failed |
|
info | string | no | Informacions d'error en cas de fallida. | |
data | array of objects | no | Elements de verificacions actius. | |
key | string | no | Clau d'element amb macros esteses. | |
key_orig | string | no | Clau d'element sense macros esteses. | |
itemid | number | no | Identificador d'element. | |
delay | string | no | Interval d'actualització de l'element. | |
lastlogsize | number | no | Darrera mida del registre de l'element. | |
mtime | number | no | Mtime de l'element. | |
refresh_unsupported | number | no | Interval d'actualització dels elements no suportats. | |
regexp | array of objects | no | Expressions regulars globals. | |
name | string | no | Nom de l'expressió regular global. | |
expression | string | no | Expression régulière globale. | |
expression_type | number | no | Tipus de l'expressió regular global. | |
exp_delimiter | string | no | Delimitador de l'expressió regular global. | |
case_sensitive | number | no | Paràmetre global de sensibilitat a majúscules de les expressions regulars. | |
config_revision | number | no | Identificador de la configuració per sincronització incremental de la configuració. Omès si la configuració de l'equip no s'ha canviat. S'incrementa si la configuració de l'equip ha canviat. |
El servidor ha de respondre amb èxit.
Per exemple :
Veieu que les dades de configuració (sensibles) poden ésser disponibles per a les persones que tinguin accés al port del trapper del servidor Zabbix quan emprin verificació activa. Això és possible perquè tot el món pot pretendre tindre un agent actiu i demanar informació de configuració d'elements. L'autenticació no té lloc excepte que empreu les opcions de xifrat.
Enviament de l'agent
La petició de dades de l'agent conté els valors recollits de l'element.
{
"request": "agent data",
"data": [
{
"host": "Zabbix server",
"key": "agent.version",
"value": "2.4.0",
"clock": 1400675595,
"ns": 76808644
},
{
"host": "Zabbix server",
"key": "log[/home/zabbix/logs/zabbix_agentd.log]",
"lastlogsize": 112,
"value": " 19845:20140621:141708.521 Starting Zabbix Agent [<hostname>]. Zabbix 2.4.0 (revision 50000).",
"clock": 1400675595,
"ns": 77053975
}
],
"session": "1234456akdsjhfoui"
}
Camp | Tipus | Obligatori | Valor | |
---|---|---|---|---|
request | string | yes | dades de l'agent |
|
session | string | yes | Identificador de sessió únic generat cada vegada que s'inicia l'agent. | |
data | array of objects | yes | Valors de l'element. | |
id | number | yes | L'identificador del valor (comptador incremental emprat per comprovar els valors duplicats en cas de problemes de xarxa). | |
host | string | yes | Nom de l'equip. | |
key | string | yes | Clau de l'element. | |
value | string | no | Valor de l'article. | |
lastlogsize | number | no | Darrera mida del registre. | |
mtime | number | no | Element mtime. | |
state | number | no | Estat de l'element. | |
source | string | no | Font del registre d'esdeveniments del valor. | |
eventid | number | no | El valor del registre d'esdeveniments eventd. | |
severity | number | no | El valor de gravetat del registre d'esdeveniments. | |
timestamp | number | no | La marca de temps del registre d'esdeveniments del valor. | |
clock | number | yes | La marca de temps del valor (segons des de l'Època. | |
ns | number | yes | El valor de marca de temps nanosegons. |
S'assigna un identificador virtual a cada valor. El valor ID és un comptador ascendent simple, únic dins d'una sessió de dades (identificat per el token de la sessió). Aquest identificador s'empra per descartar els valors duplicats que es poden enviar a entorns de connectivitat pobra.
Resposta del servidor
El servidor torna a enviar la resposta de dades de l'agent a l'agent després de processar la petició de dades de l'agent.
Camp | Tipus | Obligatori | Valor |
---|---|---|---|
resposta | cadena | sí | èxit | fallit |
informació | cadena | sí | Resultats del processament d'articles. |
::: noteimportant Si l'enviament d'alguns valors falla al servidor (per exemple, perquè l'equip o l'element s'ha desactivat o suprimit), l'agent no tornarà a provar d'enviar aquests valors. :::
Per exemple:
Tingueu en compte com a l'exemple anterior l'estat no compatible per vfs.fs.size[/nono] s'indica amb el valor "estat" 1 i el missatge d'error a la propietat "valor".
El missatge d'error es retallarà a 2048 símbols de la banda del servidor.
El missatge de heartbeat l'envia un agent actiu al servidor/proxy de Zabbix cada segons de HeartbeatFrequency (configurat al fitxer de configuració de l'agent Zabbix).
S'empra per controlar la disponibilitat de controls actius.
Camp | Tipus | Obligatori | Valor |
---|---|---|---|
petició | cadena | sí | comprovació activa del heartbeat |
host | cadena | sí | El nom de l'equip. |
heartbeat_freq | nombre | sí | Freqüència de heartbeat de l'agent (paràmetre de configuració HeartbeatFrequency). |
Zabbix prendrà fins a 16Mo de dades codificades en XML Base64, però un sol valor descodificat no haurà de passar els 64Ko, sinó es retallarà a 64Ko mentre es descodifiqui.