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

Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

2 Passive and active agent checks

Overview

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.

Passieve controles

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.

<itemtoets>

Reactie agent

<GEGEVENS>[\0<FOUT>]

Hierboven is het gedeelte tussen vierkante haken optioneel en wordt alleen verzonden voor niet ondersteunde artikelen.

Voor ondersteunde items bijvoorbeeld:

  1. Server opent een TCP-verbinding
  2. Server verzendt <HEADER><DATALEN>agent.ping
  3. Agent leest het verzoek en reageert met: <HEADER><DATALEN>1
  4. Server verwerkt gegevens om de waarde '1' in ons geval te krijgen
  5. TCP-verbinding is gesloten

Voor niet-ondersteunde items:

  1. Server opent een TCP-verbinding
  2. Server verzendt <HEADER><DATALEN>vfs.fs.size[/nono]
  3. Agent leest het verzoek en reageert met: <HEADER><DATALEN>ZBX_NOTSUPPORTED\0Kan niet verkrijgen bestandssysteeminformatie: [2] Geen dergelijk bestand of map
  4. Server verwerkt gegevens, wijzigt itemstatus in niet ondersteund met de gespecificeerde foutmelding
  5. TCP-verbinding is gesloten

Actieve controles

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.

De lijst met items ophalen

Agent aanvraag

{
           "request":"actieve controles",
           "host":"<hostnaam>"
       }

Serverreactie

{
           "response":"succes",
           "gegevens":[
               {
                   "key":"log[/home/zabbix/logs/zabbix_agentd.log]",
                   "vertraging":30,
                   "lastloggrootte":0,
                   "mtime":0
               },
               {
                   "key":"agent.version",
                   "vertraging":600,
                   "lastloggrootte":0,
                   "mtime":0
               },
               {
                   "key":"vfs.fs.size[/nono]",
                   "vertraging":600,
                   "lastloggrootte":0,
                   "mtime":0
               }
           ]
       }

De server moet met succes reageren. Voor elk geretourneerd artikel, alle eigenschappen key, delay, lastlogsize en mtime moeten bestaan, ongeacht of het item een logboekitem is of niet.

Bijvoorbeeld:

  1. Agent opent een TCP-verbinding
  2. Agent vraagt om de lijst met cheques
  3. Server reageert met een lijst met items (itemsleutel, vertraging)
  4. Agent ontleedt het antwoord
  5. TCP-verbinding is gesloten
  6. Agent begint periodieke gegevensverzameling

Houd er rekening mee dat (gevoelige) configuratiegegevens beschikbaar kunnen komen voor partijen die toegang hebben tot de Zabbix-server trapper poort bij gebruik van een actieve controle. Dit is mogelijk omdat iedereen kan zich voordoen als een actieve agent en item configuratie gegevens opvragen; authenticatie vindt niet plaats, tenzij u gebruik maakt van encryptie opties.

Verzamelde gegevens insturen

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

{
           "response":"succes",
           "info":"verwerkt: 3; mislukt: 0; totaal: 3; bestede seconden: 0,003534"
       }

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:

  1. Agent opent een TCP-verbinding
  2. Agent stuurt een lijst met waarden
  3. Server verwerkt de gegevens en stuurt de status terug
  4. TCP-verbinding is gesloten

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.

Ouder XML-protocol

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.