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:
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:
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:
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:
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.
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:
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.
Zie hieronder een voorbeeld van een script dat wordt uitgevoerd op de Zabbix-server en het resultaatvenster:
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).