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:
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:
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.
Onderaan de lijst is één massabewerkingsoptie beschikbaar:
Om deze optie te gebruiken, markeert u de selectievakjes voor de betreffende scripts en klikt u op Verwijderen.
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.
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 Meldingen → Acties. 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 |
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.
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.
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).