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

5 Gebruikersparameters

Overzicht

Soms wil je een agent check uitvoeren die niet standaard wordt geleverd 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 agent configuratiebestand ('UserParameter' configuratieparameter).

Een gebruikersparameter heeft de volgende syntaxis:

UserParameter=<sleutel>,<opdracht>

Zoals je kunt zien, bevat een gebruikersparameter ook een sleutel. De sleutel zal nodig zijn bij het configureren van een item. Kies een sleutel die gemakkelijk te refereren is (het moet uniek zijn binnen een host).

Herstart de agent of gebruik de agent runtime controle optie om de nieuwe parameter te activeren, bijvoorbeeld:

zabbix_agentd -R userparameter_reload

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

Gebruikersparameters zijn opdrachten die worden uitgevoerd door de Zabbix agent. Er kan maximaal 512 KB aan gegevens worden teruggestuurd voordat de item voorverwerkingsstappen worden uitgevoerd. Let echter op dat de tekstwaarde die uiteindelijk in de database kan worden opgeslagen, beperkt is tot 64 KB op MySQL (zie informatie over andere databases in de tabel).

/bin/sh wordt gebruikt als opdrachtregelinterpreter onder UNIX-besturingssystemen. Gebruikersparameters volgen de agent check timeout; als de timeout wordt bereikt, wordt het geforkte gebruikersparameterproces beëindigd.

Zie ook:

Voorbeelden van eenvoudige gebruikersparameters

Een eenvoudige opdracht:

UserParameter=ping,echo 1

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

Een meer complex voorbeeld:

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

De agent zal '1' teruggeven als de MySQL-server actief is en '0' als dat 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 meerdere items.

Flexibele gebruikersparameters hebben de volgende syntaxis:

UserParameter=key[*],command
Parameter Beschrijving
Key Unieke item sleutel. Het [*] geeft aan dat deze sleutel parameters accepteert tussen de haakjes.
Parameters worden opgegeven bij het configureren van het item.
Command Commando dat wordt uitgevoerd om de waarde van de sleutel te evalueren.
Alleen voor flexibele gebruikersparameters:
U kunt positionele verwijzingen $1…$9 in het commando gebruiken om te verwijzen naar de respectievelijke parameter in de item sleutel.
Zabbix analyseert de parameters tussen [ ] van de item sleutel en vervangt $1,...,$9 in het commando dienovereenkomstig.
$0 wordt vervangen door het oorspronkelijke commando (vóór de uitbreiding van $0,...,$9) dat moet worden uitgevoerd.
Positionele verwijzingen worden geïnterpreteerd ongeacht of ze zijn ingesloten tussen dubbele (") of enkele (') aanhalingstekens.
Om ongewijzigde positionele verwijzingen te gebruiken, specificeert u een dubbel dollarteken - bijvoorbeeld awk '{print $$2}'. In dit geval wordt $$2 daadwerkelijk $2 wanneer het commando wordt uitgevoerd.

Positionele verwijzingen met het dollarteken worden alleen gezocht en vervangen door de Zabbix-agent voor flexibele gebruikersparameters. Voor eenvoudige gebruikersparameters wordt dit referentieproces overgeslagen en daarom is geen enkele dollarteken-citering nodig.

Bepaalde symbolen zijn standaard niet toegestaan in gebruikersparameters. Zie de UnsafeUserParameters documentatie 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.