3 Trigger afhankelijkheden

Overzicht

Soms is de beschikbaarheid van de ene host afhankelijk van de andere. Een server die zich achter een router bevindt, wordt onbereikbaar als de router uitvalt. Met triggers geconfigureerd voor beide, kan het zijn dat je meldingen krijgt over twee hosts die niet beschikbaar zijn, terwijl alleen de router de schuldige is.

Dit is waar enige afhankelijkheid tussen hosts nuttig kan zijn. Met afhankelijkheid ingesteld, kunnen meldingen van de afhankelijke hosts worden ingehouden en alleen de melding over het hoofdprobleem worden verzonden.

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

In ons eenvoudige voorbeeld openen we het configuratieformulier van de servertrigger en stellen we in dat deze afhankelijk is van de betreffende trigger van de router. Met een dergelijke afhankelijkheid zal de trigger van de server zijn status niet veranderen zolang de trigger waarvan hij afhankelijk is, zich in de 'PROBLEM'-status bevindt - en dus worden er geen afhankelijke acties ondernomen en worden er geen meldingen verzonden.

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

Terwijl de bovenliggende trigger in de PROBLEM-status is, kunnen de afhankelijke triggers waarden rapporteren die niet kunnen worden vertrouwd. Daarom worden afhankelijke triggers niet opnieuw geëvalueerd totdat de bovenliggende trigger (de router in het bovenstaande voorbeeld):

  • Teruggaat van 'PROBLEM'- naar 'OK'-status;
  • Van 'PROBLEM'- naar 'UNKNOWN'-status verandert;
  • Handmatig wordt afgesloten, via correlatie of met behulp van tijdsgebaseerde functies;
  • Wordt opgelost door een waarde van een item die niet betrokken is bij de afhankelijke trigger;
  • Uitgeschakeld is, een uitgeschakeld item heeft of een uitgeschakelde host van een item heeft.

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

Ook:

  • Triggerafhankelijkheid kan worden toegevoegd vanaf 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 sommige triggers van sjabloon A afhankelijk zijn van sommige triggers van sjabloon B, kan sjabloon A alleen worden gekoppeld aan een host (of een ander sjabloon) samen met sjabloon B, maar sjabloon B kan alleen worden gekoppeld aan een host (of een ander sjabloon).
  • Triggerafhankelijkheid kan worden toegevoegd van een sjabloontrigger naar een hosttrigger. In dit geval wordt bij het koppelen van een dergelijk sjabloon aan een host een hosttrigger gemaakt die afhankelijk is van dezelfde sjabloontrigger waarvan de trigger afhankelijk was. Dit maakt het bijvoorbeeld mogelijk om een sjabloon te hebben waarin 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 triggerprototype naar een ander triggerprototype (binnen dezelfde low-level discovery-regel) of een echte trigger. Een triggerprototype kan niet afhankelijk zijn van een triggerprototype uit een andere LLD-regel of van een trigger gemaakt vanuit een triggerprototype. Een hosttriggerprototype kan niet afhankelijk zijn van een trigger uit een sjabloon.

Configuratie

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

Dependencies

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

Dependencies List

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.