3 Trigger afhankelijkheden

Overzicht

Soms is de beschikbaarheid van de ene host afhankelijk van de andere. Een server die achter een router staat, wordt onbereikbaar als de router uitvalt. Met triggers geconfigureerd voor beide hosts, kunt u meldingen krijgen over twee hosts die offline zijn, terwijl alleen de router de schuldige was.

Hier kan enige afhankelijkheid tussen hosts handig zijn. Met een ingestelde afhankelijkheid kunnen meldingen van de afhankelijke hosts worden ingehouden en wordt alleen de melding van het hoofdprobleem verzonden.

Hoewel Zabbix geen directe ondersteuning biedt voor afhankelijkheden tussen hosts, kunnen deze worden gedefinieerd met een andere, meer flexibele methode: triggerafhankelijkheden. Een trigger kan afhankelijk zijn van één of meer andere triggers.

Dus in ons eenvoudige voorbeeld openen we het configuratieformulier van de servertrigger en stellen in dat deze afhankelijk is van de betreffende trigger van de router. Met zo'n afhankelijkheid zal de staat van de servertrigger niet veranderen zolang de trigger waarvan deze afhankelijk is in de 'PROBLEM'-staat is. Hierdoor worden geen afhankelijke acties ondernomen en worden er geen meldingen verzonden.

Als zowel de server als de router uitvallen en er een afhankelijkheid is, zal Zabbix geen acties uitvoeren voor de afhankelijke trigger.

Terwijl de oudertrigger in de 'PROBLEM'-staat is, kunnen de afhankelijke triggers waarden rapporteren die niet vertrouwd kunnen worden. Daarom worden afhankelijke triggers pas opnieuw geëvalueerd als de oudertrigger (de router in het bovenstaande voorbeeld):

  • Teruggaat van de 'PROBLEM'- naar de 'OK'-staat;
  • Van 'PROBLEM'- naar 'UNKNOWN'-staat verandert;
  • Handmatig wordt gesloten, door correlatie of met behulp van op tijd gebaseerde functies;
  • Wordt opgelost door een waarde van een item die niet betrokken is bij de afhankelijke trigger;
  • Wordt uitgeschakeld, heeft een uitgeschakeld item of een uitgeschakelde itemhost.

In al de hierboven genoemde gevallen wordt de afhankelijke trigger (server) pas opnieuw geëvalueerd wanneer er een nieuwe metriek voor wordt ontvangen. Dit betekent dat de afhankelijke trigger mogelijk niet direct wordt bijgewerkt.

Ook:

  • Triggerafhankelijkheid kan worden toegevoegd van elke hosttrigger naar elke andere hosttrigger, zolang dit niet resulteert in een circulaire afhankelijkheid.
  • Triggerafhankelijkheid kan worden toegevoegd van het ene sjabloon naar het andere. Als een trigger van sjabloon A afhankelijk is van een trigger van sjabloon B, kan sjabloon A alleen worden gekoppeld aan een host (of een ander sjabloon) samen met sjabloon B, maar sjabloon B kan wel alleen aan een host (of een ander sjabloon) worden gekoppeld.
  • Triggerafhankelijkheid kan worden toegevoegd van een sjabloontrigger naar een hosttrigger. In dit geval maakt het koppelen van zo'n sjabloon aan een host een hosttrigger die afhankelijk is van hetzelfde trigsjabloon waar de trigger afhankelijk van was. Dit maakt het bijvoorbeeld mogelijk om een sjabloon te hebben waarbij sommige triggers afhankelijk zijn van de router (host) triggers. Alle hosts die aan dit sjabloon zijn gekoppeld, zullen afhankelijk zijn van die specifieke router.
  • Triggerafhankelijkheid kan niet worden toegevoegd van een hosttrigger naar een sjabloontrigger.
  • Triggerafhankelijkheid kan worden toegevoegd van een triggervoorbeeld naar een ander triggervoorbeeld (binnen dezelfde low-level ontdekkingsregel) of een echte trigger. Een triggervoorbeeld kan niet afhankelijk zijn van een triggervoorbeeld uit een andere LLD-regel of van een trigger die is gemaakt van een triggervoorbeeld. Een hosttriggervoorbeeld kan niet afhankelijk zijn van een trigger uit een sjabloon.

Configuratie

Om een afhankelijkheid te definiëren, opent u het tabblad Afhankelijkheden in het configuratieformulier van de trigger. Klik op Toevoegen in het blok 'Afhankelijkheden' en selecteer één of meer triggers waarvan de trigger afhankelijk zal zijn.

Afhankelijkheid

Klik op Bijwerken. Nu heeft de trigger de aanduiding van zijn afhankelijkheid in de lijst.

Lijst van afhankelijkheden

Voorbeeld van meerdere afhankelijkheden

Bijvoorbeeld, de Host bevindt zich achter Router2 en Router2 bevindt zich achter Router1.

Zabbix - Router1 - Router2 - Host

Als Router1 uitvalt, zijn de Host en Router2 uiteraard ook niet bereikbaar, maar het is overdreven om drie meldingen te ontvangen over de Host, Router1 en Router2 die allemaal niet beschikbaar zijn.

Daarom definiëren we in dit geval twee afhankelijkheden:

  • De trigger 'Host is down' is afhankelijk van de trigger 'Router2 is down'.
  • De trigger 'Router2 is down' is afhankelijk van de trigger 'Router1 is down'.

Voordat de status van de trigger 'Host is down' wordt gewijzigd, controleert Zabbix de bijbehorende triggerafhankelijkheden. Als dergelijke afhankelijkheden worden gevonden en een van die triggers zich in de 'Problem' status bevindt, wordt de triggerstatus niet gewijzigd, worden de acties niet uitgevoerd en worden er geen meldingen verzonden.

Zabbix voert deze controle recursief uit. Als Router1 of Router2 niet bereikbaar is, wordt de trigger van de Host niet bijgewerkt.