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 media types kunnen worden gebruikt om Zabbix-meldingen door te sturen naar:
Naast de hier vermelde services kan Zabbix worden geïntegreerd met Spiceworks (geen webhook vereist). Om Zabbix-meldingen om te zetten in Spiceworks-tickets, maak een e-mail media type aan en voer het helpdesk-e-mailadres van Spiceworks in (bijv. [email protected]) in de profielinstellingen van een aangewezen Zabbix-gebruiker.
Om een webhook-integratie te starten:
templates/media
map van de gedownloade Zabbix-versie of download het van de Zabbix git repositoryOm een aangepaste webhook vanaf het begin te maken:
Het tabblad Media type bevat verschillende attributen die specifiek zijn voor dit media type:
Alle verplichte invoervelden zijn gemarkeerd met een rode asterisk.
De volgende parameters zijn specifiek voor het webhook media type:
Parameter | Omschrijving |
---|---|
Parameters | Specificeer de webhook-variabelen als attribuut- en waardeparen. Voor voorgeconfigureerde webhooks varieert de lijst met parameters, afhankelijk van de service. Bekijk het Readme.md bestand van de webhook voor een beschrijving van de parameters. Voor nieuwe webhooks zijn standaard meerdere gemeenschappelijke variabelen opgenomen (URL:<leeg>, HTTPProxy:<leeg>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}), je kunt ze behouden of verwijderen. Alle macros die worden ondersteund in probleemmeldingen, worden ondersteund in de parameters. Als je een HTTP-proxy opgeeft, ondersteunt het veld dezelfde functionaliteit als het veld voor configuratie van items HTTP-proxy. De proxyreeks kan worden voorafgegaan door [scheme]:// om aan te geven welk type proxy wordt gebruikt (bijv. https, socks4, socks5; zie documentatie). |
Script | Voer JavaScript-code in in het blok dat verschijnt wanneer je in het parameter veld klikt (of op de bekijken/bewerken knop ernaast). Deze code zal de webhook-operatie uitvoeren. De script 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, het kan HTTP GET-, POST-, PUT- en DELETE-verzoeken uitvoeren en heeft controle over HTTP-headers en verzoekbody. De script moet een return operator bevatten, anders zal het niet geldig zijn. Het kan een OK-status retourneren samen met een optionele lijst met tags en tagwaarden (zie Process tags optie) of een foutreeks. Merk op dat het script pas wordt uitgevoerd nadat een melding is gemaakt. Als het script is geconfigureerd om tags te retourneren en te verwerken, worden deze tags niet opgelost in de {EVENT.TAGS} en {EVENT.RECOVERY.TAGS} macro's in het initiële probleembericht en herstelberichten omdat het script nog niet heeft kunnen draaien. Zie ook: Richtlijnen voor webhook-ontwikkeling, Voorbeelden van webhook-scripts, Aanvullende JavaScript-objecten. |
Timeout | JavaScript-uitvoeringstimeout (1-60s, standaard 30s). Tijdsuffixen worden ondersteund, bijv. 30s, 1m. |
Process tags | Markeer het selectievakje om JSON-eigenschapswaarden die worden geretourneerd te verwerken als tags. Deze tags worden toegevoegd aan de al bestaande (indien aanwezig) probleemgebeurtenis-tags in Zabbix. Als een webhook tags gebruikt (het selectievakje Process tags is gemarkeerd), moet de webhook altijd een JSON-object retourneren dat ten minste een leeg object voor tags bevat: var result = {tags: {}}; .Voorbeelden van tags die kunnen worden geretourneerd: Jira ID: PROD-1234, Verantwoordelijk: John Smith, Verwerkt:<geen waarde>, enz. |
Menu-item externe ticket toevoegen | Markeer het selectievakje om een item op te nemen in het gebeurtenismenu dat linkt naar het aangemaakte externe ticket. Indien gemarkeerd, moet de webhook niet worden gebruikt om meldingen naar verschillende gebruikers te sturen (overweeg in plaats daarvan een toegewijde gebruiker te maken) of in verschillende meldingsacties gerelateerd aan een enkele probleemgebeurtenis. |
Naam van menu-item | Specificeer de naam van het menu-item. {EVENT.TAGS.<tag name>} macro wordt ondersteund. Dit veld is alleen verplicht als Menu-item externe ticket toevoegen is geselecteerd. |
URL van menu-item | Specificeer de onderliggende URL van het menu-item. {EVENT.TAGS.<tag name>} macro wordt ondersteund. Dit veld is alleen verplicht als Menu-item externe ticket toevoegen is geselecteerd. |
Zie algemene parameters voor media type voor details over het configureren van standaard berichten en opties voor het verwerken van meldingen.
Zelfs als een webhook geen standaardberichten gebruikt, moeten berichtsjablonen voor operatietypen die door deze webhook worden gebruikt, nog steeds worden gedefinieerd.
Nadat het media type is geconfigureerd, ga je naar de Beheer → Gebruikers sectie en wijs je het webhook media toe aan een bestaande gebruiker of maak je een nieuwe gebruiker aan om het webhook te vertegenwoordigen. Stappen voor het instellen van gebruikersmedia voor een bestaande gebruiker, die gemeenschappelijk zijn voor alle media types, worden beschreven op de Media types pagina.
Als een webhook tags gebruikt om ticket\bericht ID op te slaan, vermijd dan om dezelfde webhook als media toe te wijzen aan verschillende gebruikers, omdat dit webhook fouten kan veroorzaken (dit geldt voor de meeste webhooks die de optie Menu-item externe ticket toevoegen gebruiken). In dit geval is de beste praktijk om een speciale gebruiker te maken om het webhook te vertegenwoordigen:
Bij het configureren van een meldingsactie, voeg je deze gebruiker toe in het Aan gebruikers verzenden veld in Operation details - dit vertelt Zabbix om het webhook te gebruiken voor meldingen vanuit deze actie.
Acties bepalen welke meldingen via het webhook moeten worden verzonden. De stappen voor het configureren van acties die webhooks betrekken, zijn hetzelfde als voor alle andere media types, met deze uitzonderingen: