You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

5 Gebruikersparameters

Overzicht

Soms wil je een agent-check uitvoeren die niet standaard wordt meegeleverd met Zabbix. Hier komen gebruikersparameters van pas.

Je kunt een opdracht schrijven die de benodigde gegevens ophaalt en deze opnemen in de gebruikersparameter in het agentconfiguratiebestand ('UserParameter' configuratieparameter).

Een gebruikersparameter heeft de volgende syntaxis:

UserParameter=<sleutel>,<opdracht>

Zoals je kunt zien, bevat een gebruikersparameter ook een sleutel. De sleutel is nodig bij het configureren van een item. Voer een sleutel naar keuze in die gemakkelijk te verwijzen is (hij moet uniek zijn binnen een host).

Herstart de agent of gebruik de optie runtimebeheer van de agent om de nieuwe parameter op te pikken, bijvoorbeeld:

zabbix_agentd -R userparameter_reload

Vervolgens voer je bij het configureren van een item de sleutel in om te verwijzen naar de opdracht uit de gebruikersparameter die je wilt uitvoeren.

Gebruikersparameters zijn opdrachten die worden uitgevoerd door de Zabbix-agent. Tot 512KB aan gegevens kan worden geretourneerd voordat item-voorverwerkingstappen plaatsvinden. Merk echter op dat de tekstwaarde die uiteindelijk in de database kan worden opgeslagen, beperkt is tot 64KB in MySQL (zie informatie over andere databases in de tabel).

/bin/sh wordt gebruikt als opdrachtregelinterpreter onder UNIX-besturingssystemen. Gebruikersparameters houden zich aan de timeout voor agentcontrole; als de timeout wordt bereikt, wordt het afgesplitste gebruikersparameterproces beëindigd.

Zie ook:

Voorbeelden van eenvoudige gebruikersparameters

Een eenvoudige opdracht:

UserParameter=ping,echo 1

De agent zal altijd '1' retourneren voor een item met de sleutel 'ping'.

Een complexer voorbeeld:

UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

De agent zal '1' retourneren als de MySQL-server actief is en '0' als dit niet het geval is.

Flexibele gebruikersparameters

Flexibele gebruikersparameters accepteren parameters met de sleutel. Op deze manier kan een flexibele gebruikersparameter de basis vormen voor het maken van verschillende items.

Flexibele gebruikersparameters hebben de volgende syntaxis:

UserParameter=sleutel[*],opdracht
Parameter Beschrijving
Sleutel Unieke item-sleutel. De [*] geeft aan dat deze sleutel parameters binnen de haakjes accepteert.
Parameters worden opgegeven bij het configureren van het item.
Opdracht Opdracht die moet worden uitgevoerd om de waarde van de sleutel te evalueren.
Alleen voor flexibele gebruikersparameters:
Je kunt positionele verwijzingen $1...$9 in de opdracht gebruiken om te verwijzen naar de respectieve parameter in de item-sleutel.
Zabbix analyseert de parameters die tussen [ ] van de item-sleutel staan en vervangt $1,...,$9 in de opdracht dienovereenkomstig.
$0 wordt vervangen door de oorspronkelijke opdracht (voordat $0,...,$9 worden uitgebreid) die moet worden uitgevoerd.
Positionele verwijzingen worden geïnterpreteerd ongeacht of ze tussen dubbele (") of enkele (') aanhalingstekens staan.
Om positionele verwijzingen ongewijzigd te gebruiken, geef je een dubbel dollarteken op - bijvoorbeeld awk '{print $$2}'. In dit geval wordt $$2 daadwerkelijk omgezet in $2 bij het uitvoeren van de opdracht.

Positionele verwijzingen met het $-teken worden alleen door de Zabbix-agent gezocht en vervangen voor flexibele gebruikersparameters. Voor eenvoudige gebruikersparameters wordt deze verwijzingsverwerking overgeslagen en is daarom geen enkele $-teken quotering nodig.

Bepaalde symbolen zijn standaard niet toegestaan in gebruikersparameters. Zie de documentatie over UnsafeUserParameters voor een volledige lijst.

Voorbeeld 1

Iets heel eenvoudigs:

UserParameter=ping[*],echo $1

We kunnen een onbeperkt aantal items definiëren voor monitoring, allemaal met het formaat ping[iets].

  • ping[0] - zal altijd '0' retourneren
  • ping[aaa] - zal altijd 'aaa' retourneren
Voorbeeld 2

Laten we wat meer betekenis toevoegen!

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

Deze parameter kan worden gebruikt om de beschikbaarheid van een MySQL-database te controleren. We kunnen gebruikersnaam en wachtwoord doorgeven:

mysql.ping[zabbix,ons_wachtwoord]
Voorbeeld 3

Hoeveel regels komen overeen met een reguliere expressie in een bestand?

UserParameter=wc[*],grep -c "$2" $1

Deze parameter kan worden gebruikt om het aantal regels in een bestand te berekenen.

wc[/etc/passwd,root]
       wc[/etc/services,zabbix]

Resultaat van de opdracht

De retourwaarde van de opdracht is de standaard uitvoer samen met de standaard foutmelding.

Een tekstitem (karakter, log of tekst type informatie) wordt niet ongeldig als er een standaard foutuitvoer is.

Gebruikersparameters die tekst retourneren (karakter, log, tekst type informatie) kunnen witruimte retourneren. Bij een ongeldig resultaat wordt het item niet ondersteund.