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

8 Scripts

Overzicht

In de sectie Administratie → Scripts kunnen door de gebruiker gedefinieerde globale scripts worden geconfigureerd en onderhouden.

Afhankelijk van de geconfigureerde reikwijdte en gebruikersmachtigingen, kunnen globale scripts worden uitgevoerd:

  • Vanuit het hostmenu op verschillende locaties in de frontend (Dashboard, Problemen, Laatste gegevens, Kaarten, enz.)
  • Vanuit het evenementenmenu
  • Kan worden uitgevoerd als een actiebewerking

De scripts worden uitgevoerd op de Zabbix-agent, Zabbix-server (proxy) of alleen op de Zabbix-server. Zie ook Commandouitvoering.

Zowel op de Zabbix-agent als op de Zabbix-proxy zijn externe scripts standaard uitgeschakeld. Ze kunnen als volgt worden ingeschakeld:

  • Voor externe opdrachten die worden uitgevoerd op de Zabbix-agent
    • Voeg een AllowKey=system.run[<command>,*] parameter toe voor elke toegestane opdracht in de agentconfiguratie, * staat voor wait en nowait mode.
  • Voor externe opdrachten die worden uitgevoerd op de Zabbix-proxy
    • Waarschuwing: Het is niet nodig om externe opdrachten in te schakelen op de Zabbix-proxy als externe opdrachten worden uitgevoerd op de Zabbix-agent die wordt bewaakt door de Zabbix-proxy. Als het echter nodig is om externe opdrachten op de Zabbix-proxy uit te voeren, stel dan de parameter EnableRemoteCommands in op '1' in de proxyconfiguratie.

Een lijst van bestaande scripts met hun details wordt weergegeven.

Weergegeven gegevens:

Kolom Omschrijving
Naam Naam van het script. Door op de naam van het script te klikken, wordt het script configuratieformulier geopend.
Reikwijdte Bereik van het script - actiebewerking, handmatige hostactie of handmatige evenementactie. Deze instelling bepaalt waar het script beschikbaar is.
Gebruikt in acties Acties waarin het script wordt gebruikt, worden weergegeven.
Type Het scripttype wordt weergegeven - Webhook, Script, SSH, Telnet of IPMI-opdracht.
Uitvoeren op Er wordt weergegeven of het script wordt uitgevoerd op de Zabbix-agent, Zabbix-server (proxy) of alleen op de Zabbix-server.
Opdrachten Alle opdrachten die binnen het script moeten worden uitgevoerd, worden weergegeven.
Gebruikersgroep De gebruikersgroep waaraan het script beschikbaar is, wordt weergegeven (of Alles voor alle gebruikersgroepen).
Hostgroep De hostgroep waarvoor het script beschikbaar is, wordt weergegeven (of Alles voor alle hostgroepen).
Toegang tot host Het toestemmingsniveau voor de hostgroep wordt weergegeven - Lezen of Schrijven. Alleen gebruikers met het vereiste toestemmingsniveau hebben toegang tot het uitvoeren van het script.

Klik op de knop Script maken in de rechterbovenhoek om een nieuw script te configureren.

Een knop onder de lijst biedt één massabewerkingsmogelijkheid:

  • Verwijderen - verwijder de scripts

Om deze optie te gebruiken, vinkt u de vakjes voor de respectieve scripts aan en klikt u op Verwijderen.

U kunt de filter gebruiken om alleen de scripts weer te geven waarin u geïnteresseerd bent. Voor een betere zoekprestatie worden gegevens gezocht met onopgeloste macro's.

De Filter link is beschikbaar boven de lijst met scripts. Als u erop klikt, wordt een filter beschikbaar waarin u scripts kunt filteren op naam en scope.

Hier zijn de attributen die u kunt configureren bij het maken van een globaal script:

  • Naam: Geef een unieke naam op voor het script, bijvoorbeeld "Leeg /tmp-bestandssysteem".
  • Scope: Bepaal waar het script beschikbaar zal zijn - in actieoperaties, handmatige hostacties of handmatige evenementacties.
  • Menu pad: Dit veld wordt weergegeven als 'Handmatige hostactie' of 'Handmatige evenementactie' is geselecteerd als Scope. Hiermee kunt u het menu-pad instellen waarin het script wordt weergegeven.
  • Type: Selecteer het scripttype - Webhook, Script, SSH, Telnet of IPMI-opdracht.
  • Uitvoeren op: Selecteer waar het script wordt uitgevoerd - Zabbix-agent, Zabbix-server (proxy) of alleen Zabbix-server.
  • Commando's: Voer het pad in naar de commando's die binnen het script moeten worden uitgevoerd.
  • Beschrijving: Voeg een beschrijving toe voor het script.
  • Hostgroep: Selecteer de hostgroep waarvoor het script beschikbaar zal zijn (of Alles voor alle hostgroepen).
  • Gebruikersgroep: Selecteer de gebruikersgroep waaraan het script beschikbaar zal zijn.
  • Vereiste hostmachtigingen: Selecteer het machtigingsniveau voor de hostgroep - Lezen of Schrijven.
  • Bevestiging inschakelen: Schakel dit in als u een bevestigingsbericht wilt weergeven voordat het script wordt uitgevoerd.
  • Bevestigingstekst: Voer aangepaste bevestigingstekst in voor het bevestigingspop-upvenster.

U kunt meer gedetailleerde informatie en configuratie-opties vinden in de bovenstaande tabel. Als u nog specifieke vragen heeft over het configureren van een globaal script, sta ik klaar om te helpen!

When a script is executed by the Zabbix server, it follows the execution order described in the Command Execution section, including checking the exit code of the script. The result of the script execution is displayed in a pop-up window that appears after the script has been run.

The return value of the script includes both standard output and standard error. The script result window will provide you with information about the execution, including the exit status and the output of the script.

Here's an example of what the script and the result window might look like:

Script:

uname -v
       /tmp/non_existing_script.sh
       echo "This script was started by {USER.USERNAME}"

Result Window:

Exit status: 0

       Command: uname -v
       Result: #1 SMP Thu Aug 15 02:35:53 UTC 2019

       Command: /tmp/non_existing_script.sh
       Result: /bin/bash: /tmp/non_existing_script.sh: No such file or directory

       Command: echo "This script was started by {USER.USERNAME}"
       Result: This script was started by Admin

The script result window will not display the script itself, but it will show the output and status of each individual command executed within the script.

Time-out voor script

Zabbix-agent

Het kan voorkomen dat er een time-out optreedt tijdens het uitvoeren van een script.

Zie hieronder een voorbeeld van een script dat wordt uitgevoerd op de Zabbix-agent en het resultaatvenster:

sleep 5
       df -h

De foutmelding in dit geval is als volgt:

Time-out bij het uitvoeren van een shellscript.

Om een dergelijke situatie te voorkomen, is het raadzaam om het script zelf te optimaliseren (in plaats van de Time-out parameter aan te passen naar een overeenkomstige waarde (in ons geval, > '5') door de Zabbix-agent configuratie en Zabbix-server configuratie aan te passen).

Als de Time-out parameter wordt gewijzigd in de Zabbix-agent configuratie, verschijnt de volgende foutmelding:

Waarde ophalen van agent mislukt: ZBX_TCP_READ() is verlopen.

Dit betekent dat er wijzigingen zijn aangebracht in de Zabbix-agent configuratie en dat het ook nodig is om de Time-out instelling in de Zabbix-server configuratie aan te passen.

Zabbix server/proxy

Zie hieronder een voorbeeld van een script dat wordt uitgevoerd op de Zabbix-server en het resultaatvenster:

sleep 11
       df -h

Het is ook aanbevolen om het script zelf te optimaliseren (in plaats van de TrapperTimeout parameter aan te passen naar een overeenkomstige waarde (in ons geval, > '11') door de Zabbix-server configuratie aan te passen).