3 Aangepaste waarschuwingsscripts

Overzicht

Indien u niet tevreden bent met de bestaande mediatypen voor het verzenden van waarschuwingen, is er een alternatieve manier om dit te doen. U kunt een script maken dat de melding op uw manier afhandelt.

Aangepaste waarschuwingsscripts worden uitgevoerd op de Zabbix-server. Deze scripts moeten zich bevinden in de map die is gespecificeerd in het serverconfiguratiebestand AlertScriptsPath parameter.

Hier is een voorbeeld van een aangepast waarschuwingsscript:

#!/bin/bash
       
       naar=$1
       onderwerp=$2
       bericht=$3
       host=$4
       waarde=$5
       
       cat <<EOF | mail -s "$onderwerp" "$naar"
       $bericht
       
       Host: $host
       Waarde: $waarde
       EOF

Vanaf versie 3.4 controleert Zabbix de exitcode van de uitgevoerde commando's en scripts. Elke exitcode die verschilt van 0, wordt beschouwd als een commando-uitvoerings fout. In dergelijke gevallen zal Zabbix proberen de mislukte uitvoering opnieuw te proberen.

Omgevingsvariabelen worden niet behouden of gemaakt voor het script, dus ze moeten expliciet worden afgehandeld.

Configuratie

Om aangepaste waarschuwingsscripts in te stellen als een mediatype:

  1. Ga naar Waarschuwingen → Mediatypen.
  2. Klik op Mediatype maken.

Het tabblad Mediatype bevat algemene kenmerken van het mediatype:

Alle verplichte invoervelden zijn gemarkeerd met een rode asterisk.

De volgende parameters zijn specifiek voor het scriptmediatype:

Parameter Omschrijving
Scriptnaam Voer de naam van het scriptsbestand in (bijv. notification.sh) dat zich bevindt in de map die is gespecificeerd in het serverconfiguratiebestand AlertScriptsPath parameter.
Scriptparameters Voeg optionele scriptparameters toe die aan het script worden doorgegeven als command line-argumenten in de volgorde waarin ze zijn gedefinieerd.

Scriptparameters ondersteunen de {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} macro's, en sinds Zabbix 6.4.0, alle macro's die worden ondersteund in meldingen, evenals gebruikersmacro's.

Zie algemene parameters van mediatypen voor details over het configureren van standaardberichten en waarschuwingsverwerkingsinstellingen.

Zelfs als een waarschuwingsscript geen standaardberichten gebruikt, moeten de sjablonen voor berichttypen die door dit mediatype worden gebruikt, nog steeds worden gedefinieerd. Anders wordt er geen melding verzonden.

Als er meer dan één scriptmediatype is geconfigureerd, kunnen deze scripts parallel worden verwerkt door de waarschuwingsverwerkerprocessen. Het totale aantal waarschuwingsverwerkerprocessen is beperkt door de serverconfiguratiebestand StartAlerters parameter.

Mediatype-test

Om een geconfigureerd scriptmediatype te testen:

  1. Zoek het relevante script op in de lijst van mediatypen.

  2. Klik op Testen in de laatste kolom van de lijst; er wordt een testformulier geopend in een pop-upvenster. Het testformulier bevat hetzelfde aantal parameters dat is geconfigureerd voor het scriptmediatype.

  3. Bewerk indien nodig de waarden van de scriptparameters. Het bewerken heeft alleen invloed op de testprocedure; de werkelijke waarden worden niet gewijzigd.

  4. Klik op Testen.

Bij het testen van een geconfigureerd scriptmediatype worden {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} en gebruikersmacro's omgezet naar hun waarden, maar macro's die betrekking hebben op gebeurtenissen (bijv. {HOST.HOST}, {ITEM.LASTVALUE}, enz.) worden niet omgezet, omdat er tijdens het testen geen gerelateerde gebeurtenis is om de gegevens uit te halen. Let op dat macro's binnen {ALERT.SUBJECT} en {ALERT.MESSAGE} macro's ook niet worden omgezet. Bijvoorbeeld, als de waarde van {ALERT.SUBJECT} is samengesteld uit "Probleem: {EVENT.NAME}" dan wordt de {EVENT.NAME} macro niet omgezet.

Gebruikersmedia

Nadat het mediatype is geconfigureerd, ga naar de sectie Gebruikers → Gebruikers en bewerk een gebruikersprofiel door dit mediatype aan de gebruiker toe te wijzen. Stappen voor het instellen van gebruikersmedia, die voor alle mediatypen hetzelfde zijn, worden beschreven op de Mediatypen pagina.

Merk op dat bij het definiëren van de gebruikersmedia het Verzenden aan veld niet leeg mag zijn. Als dit veld niet wordt gebruikt in het waarschuwingsscript, voer dan een willekeurige combinatie van ondersteunde tekens in om validatievereisten te omzeilen.