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):
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:
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.
Klik op Bijwerken. Nu heeft de trigger een indicatie van zijn afhankelijkheid in de lijst.
Bijvoorbeeld, de Host bevindt zich achter Router2 en Router2 bevindt zich achter Router1.
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:
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.