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

8 Scripts

Overzicht

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

Afhankelijk van de geconfigureerde reikwijdte en ook gebruikersmachtigingen zijn wereldwijde scripts beschikbaar voor uitvoering:

  • vanuit het hostmenu op verschillende locaties in de frontend (Dashboard, Problemen, Laatste gegevens, Kaarten, enz.)
  • vanuit het gebeurtenismenu
  • kunnen worden uitgevoerd als actiebewerking

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

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

  • Voor externe commando's uitgevoerd op Zabbix-agent:
    • het toevoegen van een parameter AllowKey=system.run[<commando>,*] voor elk toegestaan commando in de agentconfiguratie, * staat voor de modus 'wachten' en 'nuait';
  • Voor externe commando's uitgevoerd op Zabbix-proxy:
    • Waarschuwing: Het is niet nodig om externe commando's in te schakelen op Zabbix-proxy als externe commando's worden uitgevoerd op Zabbix-agent die wordt gecontroleerd door Zabbix-proxy. Als echter vereist is dat externe commando's worden uitgevoerd op Zabbix-proxy, stelt u de parameter EnableRemoteCommands in op '1' in de proxyconfiguratie.

Er wordt een lijst weergegeven van bestaande scripts met hun details.

Weergegeven gegevens:

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

Om een nieuw script te configureren, klikt u op de knop Script maken in de rechterbovenhoek.

Massabewerkingsopties

Onderaan de lijst is één massabewerkingsoptie beschikbaar:

  • Verwijderen - de scripts verwijderen

Om deze optie te gebruiken, markeert u de selectievakjes voor de betreffende scripts en klikt u op Verwijderen.

Gebruik van filter

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

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

Een wereldwijd script configureren

Afbeelding

Script attributen:

Parameter Beschrijving
Naam Unieke naam van het script.
Bijvoorbeeld Clear /tmp filesystem
Reikwijdte Reikwijdte van het script - actiebewerking, handmatige hostbewerking of handmatige gebeurtenisbewerking. Deze instelling bepaalt waar het script kan worden gebruikt - in externe opdrachten van actiebewerkingen, vanuit het hostmenu of vanuit het gebeurtenismenu respectievelijk.
Het instellen van de reikwijdte op 'Actiebewerking' maakt het script beschikbaar voor alle gebruikers met toegang tot MeldingenActies.
Als een script daadwerkelijk wordt gebruikt in een actie, kan de reikwijdte niet worden gewijzigd vanaf 'actiebewerking'.
Macro-ondersteuning
De reikwijdte beïnvloedt het bereik van beschikbare macro's. Bijvoorbeeld, gebruikersgerelateerde macro's ({USER.*}) worden ondersteund in scripts om informatie door te geven over de gebruiker die het script heeft gestart. Ze worden echter niet ondersteund als de reikwijdte van het script actiebewerking is, omdat actiebewerkingen automatisch worden uitgevoerd.
Om te achterhalen welke macro's worden ondersteund, zoekt u naar 'Trigger-gebaseerde meldingen en opdrachten/Trigger-gebaseerde opdrachten', 'Scripts voor handmatige hostacties' en 'Scripts voor handmatige gebeurtenisacties' in de tabel met ondersteunde macro's. Houd er rekening mee dat als een macro kan resulteren in een waarde met spaties (bijvoorbeeld hostnaam), u deze waar nodig moet aanhalen.
Menupad Het gewenste menupad naar het script. Bijvoorbeeld Standaard of Standaard/, hiermee wordt het script weergegeven in de respectieve map. Menu's kunnen genest zijn, bijvoorbeeld Hoofdmenu/Submenu1/Submenu2. Bij het openen van scripts via het host/gebeurtenismenu in de monitoringsecties worden ze georganiseerd volgens de opgegeven mappen.
Dit veld wordt alleen weergegeven als 'Handmatige hostactie' of 'Handmatige gebeurtenisactie' is geselecteerd als Reikwijdte.
Type Klik op de respectieve knop om het scripttype te selecteren:
URL, Webhook, Script, SSH, Telnet of IPMI commando.
Het type URL is alleen beschikbaar wanneer 'Handmatige hostactie' of 'Handmatige gebeurtenisactie' is geselecteerd als Reikwijdte.
Scripttype: URL
^ URL
^ In nieuw venster openen
Scripttype: Webhook
^ Parameters

Uitvoering van scripts en resultaat

Scripts die worden uitgevoerd door de Zabbix-server worden uitgevoerd in de volgorde zoals beschreven in de sectie Opdrachtuitvoering, inclusief controle op de exitcode. Het resultaat van het script wordt weergegeven in een pop-upvenster dat verschijnt nadat het script is uitgevoerd.

Opmerking: De retourwaarde van het script is de standaarduitvoer samen met de standaardfout.

Zie hieronder een voorbeeld van een script en het resultaatvenster:

uname -v
       /tmp/non_existing_script.sh
       echo "Dit script is gestart door {USER.USERNAME}"

Het resultaat van het script toont het script zelf niet.

Time-out voor script

Zabbix-agent

Het kan voorkomen dat er een time-out optreedt tijdens de uitvoering van een script.

Hieronder ziet u een voorbeeld van een script dat wordt uitgevoerd op de Zabbix-agent en het resultaatvenster:

sleep 5
       df -h

In dit geval is de foutmelding als volgt:

Time-out tijdens het uitvoeren van een shell-script.

Om dergelijke situaties te voorkomen, wordt geadviseerd om het script zelf te optimaliseren in plaats van de Time-out parameter aan te passen naar een overeenkomstige waarde (in het bovenstaande voorbeeld, > '5') in de Zabbix-agent configuratie en Zabbix-server configuratie.

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

Get value from agent failed: ZBX_TCP_READ() is verlopen.

Dit betekent dat er wijzigingen zijn aangebracht in de Zabbix-agent configuratie, maar 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 wordt ook geadviseerd om het script zelf te optimaliseren (in plaats van de TrapperTimeout parameter aan te passen naar een overeenkomstige waarde, zoals in ons geval > '11', door de Zabbix-serverconfiguratie aan te passen).