De webhook media type is handig voor het maken van HTTP-oproepen met behulp van aangepaste JavaScript-code voor eenvoudige integratie met externe software zoals helpdesksystemen, chats of berichtendiensten. U kunt ervoor kiezen om een integratie die door Zabbix wordt aangeboden te importeren of een aangepaste integratie helemaal opnieuw te maken.
De volgende integraties zijn beschikbaar, waardoor vooraf gedefinieerde webhook-mediatypen kunnen worden gebruikt om Zabbix-meldingen naar de volgende bestemmingen te sturen:
Naast de hier vermelde services kan Zabbix ook worden geïntegreerd met Spiceworks (er is geen webhook vereist). Om Zabbix-meldingen om te zetten in Spiceworks-tickets, maakt u een e-mail mediatype aan en voert u het e-mailadres van de Spiceworks-helpdesk (bijv. [email protected]) in de profielinstellingen van een aangewezen Zabbix-gebruiker.
Om een webhook-integratie te gaan gebruiken:
templates/media
-directory van de gedownloade Zabbix-versie of download het vanuit het Zabbix git-repository.Om een aangepaste webhook vanaf nul te maken:
Het tabblad Mediatype bevat verschillende attributen die specifiek zijn voor dit mediatype:
Alle verplichte invoervelden zijn gemarkeerd met een rood asterisk.
De volgende parameters zijn specifiek voor het webhook-mediatype:
Parameter | Beschrijving |
---|---|
Parameters | Specificeer de webhook-variabelen als attribuut- en waardeparen. Voor vooraf geconfigureerde webhooks varieert de lijst met parameters afhankelijk van de service. Controleer het Readme.md-bestand van de webhook voor een beschrijving van de parameters. Voor nieuwe webhooks zijn standaard verschillende algemene variabelen inbegrepen (URL:<leeg>, HTTPProxy:<leeg>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}), u kunt ze behouden of verwijderen. Webhook-parameters ondersteunen gebruiker-macro's, alle macro's die worden ondersteund in probleemmeldingen en bovendien {ALERT.SENDTO}, {ALERT.SUBJECT} en {ALERT.MESSAGE} macro's. Als u een HTTP-proxy opgeeft, ondersteunt het veld dezelfde functionaliteit als in het configuratieveld HTTP-proxy. De proxy-string kan worden voorafgegaan door [scheme]:// om aan te geven welk soort proxy wordt gebruikt (bijvoorbeeld https, socks4, socks5; zie documentatie). |
Script | Voer JavaScript-code in het blok in dat verschijnt wanneer u in het parameter-veld klikt (of op de view/edit-knop ernaast). Deze code zal de webhook-operatie uitvoeren. De scriptcode is een functiecode die parameter-waardeparen accepteert. De waarden moeten worden omgezet in JSON-objecten met behulp van de JSON.parse() methode, bijvoorbeeld: var params = JSON.parse(value); .De code heeft toegang tot alle parameters, kan HTTP GET, POST, PUT en DELETE-verzoeken uitvoeren en heeft controle over HTTP-headers en verzoek-body. Het script moet een return-operator bevatten, anders is het niet geldig. Het kan een OK-status retourneren samen met een optionele lijst met tags en tagwaarden (zie de optie Process tags) of een foutreeks. Merk op dat het script alleen wordt uitgevoerd nadat er een melding is gemaakt. Als het script is geconfigureerd om tags terug te geven en te verwerken, worden deze tags niet opgelost in de macro's {EVENT.TAGS} en {EVENT.RECOVERY.TAGS} in het oorspronkelijke probleembericht en herstelberichten omdat het script nog geen tijd heeft gehad om uit te voeren. Zie ook: Richtlijnen voor het ontwikkelen van webhooks, Voorbeelden van webhook-scripts, Aanvullende JavaScript-objecten. |
Timeout | Time-out voor het uitvoeren van JavaScript (1-60 seconden, standaard 30 seconden). Tijdsuffixen worden ondersteund, bijv. 30s, 1m. |
Process tags | Vink het selectievakje aan om geretourneerde JSON-eigenschapswaarden als tags te verwerken. Deze tags worden toegevoegd aan de reeds bestaande (indien aanwezig) probleemgebeurtenis-tags in Zabbix. Als een webhook tags gebruikt (het selectievakje Process tags is aangevinkt), moet de webhook altijd een JSON-object retourneren met ten minste een leeg object voor tags: var result = {tags: {}}; .Voorbeelden van tags die kunnen worden geretourneerd: Jira ID: PROD-1234, Verantwoordelijk: John Smith, Verwerkt:<geen waarde>, enz. |
Voeg menu-item voor gebeurtenis in | Vink het selectievakje aan om een vermelding in het gebeurtenismenu op te nemen die linkt naar het gemaakte externe ticket. Als dit is aangevinkt, mag de webhook niet worden gebruikt om meldingen naar verschillende gebruikers te sturen (overweeg in plaats daarvan het maken van een dedicated gebruiker) of in verschillende waarschuwingsacties gerelateerd aan een enkele probleemgebeurtenis. |
Naam van menu-item | Specificeer de naam van het menu-item. {EVENT.TAGS.<tagnaam>} macro wordt ondersteund. Dit veld is alleen verplicht als Voeg menu-item voor gebeurtenis in is geselecteerd. |
URL van menu-item | Specificeer de onderliggende URL van het menu-item. {EVENT.TAGS.<tagnaam>} macro wordt ondersteund. Dit veld is alleen verplicht als Voeg menu-item voor gebeurtenis in is geselecteerd. |
Zie algemene parameters voor mediatypen voor details over het configureren van standaardberichten en opties voor het verwerken van waarschuwingen.
Zelfs als een webhook geen standaardberichten gebruikt, moeten de berichtsjablonen voor bewerkingstypen die door deze webhook worden gebruikt nog steeds worden gedefinieerd.
Om een geconfigureerde webhook media type te testen:
Standaard worden webhook tests uitgevoerd met de tijdens configuratie ingevoerde parameters. Het is echter mogelijk om attribuutwaarden voor testen te wijzigen. Het vervangen of verwijderen van waarden in het testvenster heeft alleen invloed op de testprocedure, de daadwerkelijke webhook attribuutwaarden blijven ongewijzigd.
Om logboekvermeldingen van media type tests te bekijken zonder het testvenster te verlaten, klik op Open log (een nieuw popup-venster zal openen).
Als de webhook test succesvol is:
Als de webhook test mislukt:
Nadat het media type is geconfigureerd, ga naar de sectie Gebruikers → Gebruikers en wijs het webhook media toe aan een bestaande gebruiker of maak een nieuwe gebruiker aan om het webhook te vertegenwoordigen. Stappen voor het instellen van gebruikersmedia voor een bestaande gebruiker, die voor alle media types hetzelfde zijn, worden beschreven op de Media types pagina.
Als een webhook tags gebruikt om ticket- of bericht-ID op te slaan, vermijd dan om dezelfde webhook als media aan verschillende gebruikers toe te wijzen, omdat dit webhook fouten kan veroorzaken (dit is van toepassing op de meerderheid van de webhooks die de optie Opnemen in gebeurtenismenu gebruiken). In dit geval is de beste praktijk om een toegewijde gebruiker te maken om het webhook te vertegenwoordigen:
Bij het configureren van een waarschuwingsactie, voeg deze gebruiker toe in het veld Naar gebruikers verzenden in de Details van de operatie - dit vertelt Zabbix om het webhook te gebruiken voor meldingen van deze actie.
Acties bepalen welke meldingen via het webhook moeten worden verzonden. Stappen voor het configureren van acties met betrekking tot webhooks zijn hetzelfde als voor alle andere media types, met deze uitzonderingen: