Deze sectie bevat details over passieve en actieve controles uitgevoerd door Zabbix agent.
Zabbix gebruikt een op JSON gebaseerd communicatie protocol om te communiceren met de Zabbix agent.
Een passieve controle is een eenvoudig gegevensverzoek. Zabbix-server of proxy vraagt voor sommige gegevens (bijvoorbeeld CPU-belasting) en Zabbix-agent stuurt de resultaat naar de server.
Serververzoek
Voor definitie van koptekst en gegevenslengte verwijzen wij u naar protocol details.
Reactie agent
Hierboven is het gedeelte tussen vierkante haken optioneel en wordt alleen verzonden voor niet ondersteunde artikelen.
Voor ondersteunde items bijvoorbeeld:
Voor niet-ondersteunde items:
Actieve controles vereisen een complexere verwerking. De agent moet eerst van de server(s) een lijst met items ophalen voor onafhankelijke verwerking.
De servers waar de actieve controles vandaan komen, staan vermeld in de 'ServerActive' parameter van de agent configuratie bestand. De frequentie van vragen voor deze controles wordt ingesteld door de parameter 'RefreshActiveChecks' in de hetzelfde configuratiebestand. Als het vernieuwen van actieve controles echter niet lukt, wordt na 60 seconden hardcoded opnieuw geprobeerd.
De agent stuurt vervolgens periodiek de nieuwe waarden naar de server(s).
Als er een agent achter de firewall zit, kunt u overwegen: alleen actieve controles gebruiken, omdat dat in dit geval niet nodig is wijzig de firewall om de eerste inkomende verbindingen toe te staan.
Verzoek van de agent
Het actieve controleverzoek wordt gebruikt om de actieve controles op te halen die door de agent moeten worden verwerkt. Dit verzoek wordt door de agent verzonden bij het opstarten en vervolgens met intervallen voor het vernieuwen van actieve controles.
{
"request": "active checks",
"host": "Zabbix-server",
"host_metadata": "mysql,nginx",
"hostinterface": "zabbix.server.lan",
"ip": "159.168.1.1",
"port": 12050
}
Veld | Type | Verplicht | Waarde |
---|---|---|---|
request | string | ja | active checks |
host | string | ja | Hostnaam. |
host_metadata | string | nee | De configuratieparameter HostMetadata of HostMetadataItem metrische waarde. |
hostinterface | string | nee | De configuratieparameter HostInterface of HostInterfaceItem metrische waarde. |
ip | string | nee | Het eerste IP-adres van de configuratieparameter ListenIP indien ingesteld. |
port | nummer | nee | De configuratieparameter ListenPort waarde indien ingesteld en niet de standaard luisterpoort van de agent. |
Reactie van de server
De reactie van de actieve controles wordt door de server teruggestuurd naar de agent na verwerking van het verzoek voor actieve controles.
{
"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
}
]
}
Veld | Type | Verplicht | Waarde | |
---|---|---|---|---|
response | string | ja | success | failed |
|
info | string | nee | Informatie over fouten in geval van mislukking. | |
data | reeks van objecten | nee | Actieve controle-items. | |
key | string | nee | Item-sleutel met uitgebreide macro's. | |
key_orig | string | nee | Item-sleutel zonder uitgebreide macro's. | |
itemid | nummer | nee | Item-identificator. | |
delay | string | nee | Interval voor bijwerken van item. | |
lastlogsize | nummer | nee | Laatste loggrootte van item. | |
mtime | nummer | nee | Mtime van item. | |
refresh_unsupported | nummer | nee | Interval voor vernieuwen van niet-ondersteunde items. | |
regexp | reeks van objecten | nee | Globale reguliere expressies. | |
name | string | nee | Naam van de globale reguliere expressie. | |
expression | string | nee | Globale reguliere expressie. | |
expression_type | nummer | nee | Type van de globale reguliere expressie. | |
exp_delimiter | string | nee | Delimiter van de globale reguliere expressie. | |
case_sensitive | nummer | nee | Instelling voor hoofdlettergevoeligheid van de globale reguliere expressie. |
De server moet reageren met succes.
Bijvoorbeeld:
Merk op dat (gevoelige) configuratiegegevens mogelijk beschikbaar worden voor partijen die toegang hebben tot de Zabbix-server-trapperpoort bij het gebruik van een actieve controle. Dit is mogelijk omdat iedereen zich kan voordoen als een actieve agent en itemconfiguratiegegevens kan opvragen; authenticatie vindt niet plaats tenzij u versleutelingsopties gebruikt.
Agent stuurt
{
"request":"agentgegevens",
"sessie": "12345678901234567890123456789012",
"gegevens":[
{
"host":"<hostnaam>",
"key":"agent.version",
"waarde":"2.4.0",
"id": 1,
"klok":1400675595,
"ns":76808644
},
{
"host":"<hostnaam>",
"key":"log[/home/zabbix/logs/zabbix_agentd.log]",
"lastloggrootte":112,
"value":" 19845:20140621:141708.521 Zabbix Agent starten [<hostnaam>]. Zabbix 2.4.0 (revisie 50000)",
"id": 2,
"klok":1400675595,
"ns":77053975
},
{
"host":"<hostnaam>",
"key":"vfs.fs.size[/nono]",
"staat":1,
"value":"Kan geen bestandssysteeminformatie verkrijgen: [2] Geen dergelijk bestand of map",
"id": 3,
"klok":1400675595,
"ns":78154128
}
],
"klok": 1400675595,
"ns": 78211329
}
Aan elke waarde wordt een virtuele ID toegewezen. Waarde-ID is eenvoudig oplopend teller, uniek binnen één datasessie (geïdentificeerd door de sessie teken). Deze ID wordt gebruikt om dubbele waarden te verwijderen die mogelijk worden verzonden in omgevingen met slechte connectiviteit.
Serverreactie
Als het verzenden van sommige waarden op de server mislukt (voor bijvoorbeeld omdat host of item is uitgeschakeld of verwijderd), zal de agent probeer deze waarden niet opnieuw te verzenden.
Bijvoorbeeld:
Merk op hoe in het bovenstaande voorbeeld de niet-ondersteunde status voor vfs.fs.size[/nono] wordt aangegeven door de "state" waarde van 1 en de foutmelding in de eigenschap "waarde".
Foutmelding wordt ingekort tot 2048 symbolen op server kant.
Zabbix neemt tot 16 MB aan XML Base64-gecodeerde gegevens in beslag, maar een enkele gedecodeerde waarde mag niet langer zijn dan 64 KB, anders zal het worden ingekort tot 64 KB tijdens het decoderen.