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):
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:
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.
Klik op Bijwerken. Nu heeft de trigger de aanduiding 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.