Ad Widget

Collapse

Cross Host trigger Dependencies and Template Usage

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sbsjclark
    Junior Member
    • Nov 2011
    • 14

    #1

    Cross Host trigger Dependencies and Template Usage

    I'm curious if some users supporting larger installations (multiple sites with multiple Internet connections , routers , and networks ) could feedback on how they handle trigger dependencies between hosts.

    Templates are awesome and we use them extensively. I understand triggered dependencies, and I also understand that you can use them in templates and even reference triggers in other templates as dependencies.

    This is all fine and well if you want dependencies in templates to reference the status of a trigger in another template assigned to the same host. For example, don't tell me the website is down on the server if the IIS service is not running (on the same server).

    The breakdown I'm having occurs when I try to use templates, to establish the dependencies between hosts. I've searched extensively but have not been able to find anyone at discussing this. And haven't found a good way to do it.

    If I have a template applied to a host server that monitors many items and has many triggers, there are many of those triggers that I'd do not want to fire if a device like the switch or router that lies between zabbix and the host goes down.

    This means I have to modify the dependencies on triggers in the template to point to a router or switch that has yet to be defined. As near as I can tell this is not possible.

    My thought was that for simple availability checking , ideally I would create a template for next hop gateway, a template for firewall WAN interface, a template for switch, and then all the templates for "client" hosts.

    Each template would depend on the other all the way down the chain, and each "client" host template would have a reference to the switch dependency for the host group. This can't be done because zabbix will not let you apply a template that references another template unless the reference template is also applied to the same host. As near as I can tell this breaks any attempt to use templates to control dependencies from one host to another.

    Using the same simple availability checking scenario where I would like most all of my "client" hosts triggers to not fire if an upstream network devices is down, it appears I would have to build explicit hard coded references to those devices into each and every template to achieve that functionality.

    After applying the template to a host, I would need to go to the hard coded external references now associated to the host via the applied template and updated them to point to what they actually should be checking against.

    Not only does this circumvent a lot of the functionality of using templates since ability to mass update the hard coded items via a template modification is lost, but it also duplicates a lot of checks that are already being performed creating uneeded processes and network overhead.

    I'm very interested to know how others are handling this problem, since am not sure what best practice would be too most easily achieve and manage the functionality desired.
  • pc99096
    Senior Member
    • Oct 2011
    • 193

    #2
    Tldr..............

    Comment

    • aib
      Senior Member
      • Jan 2014
      • 1615

      #3
      In NAGIOS world to solve that problem, they are using Host and Service Dependencies

      You can create hierarchical structure and NAGIOS will automatically stop all alerts from dependent device if the root device is down.

      In Zabbix world all devices are equal, like people in USA
      Sincerely yours,
      Aleksey

      Comment

      • fecalpitchingmonkey
        Junior Member
        • Apr 2014
        • 1

        #4
        Originally posted by sbsjclark
        I'm curious if some users supporting larger installations (multiple sites with multiple Internet connections , routers , and networks ) could feedback on how they handle trigger dependencies between hosts.

        Templates are awesome and we use them extensively. I understand triggered dependencies, and I also understand that you can use them in templates and even reference triggers in other templates as dependencies.

        This is all fine and well if you want dependencies in templates to reference the status of a trigger in another template assigned to the same host. For example, don't tell me the website is down on the server if the IIS service is not running (on the same server).

        The breakdown I'm having occurs when I try to use templates, to establish the dependencies between hosts. I've searched extensively but have not been able to find anyone at discussing this. And haven't found a good way to do it.

        If I have a template applied to a host server that monitors many items and has many triggers, there are many of those triggers that I'd do not want to fire if a device like the switch or router that lies between zabbix and the host goes down.

        This means I have to modify the dependencies on triggers in the template to point to a router or switch that has yet to be defined. As near as I can tell this is not possible.

        My thought was that for simple availability checking , ideally I would create a template for next hop gateway, a template for firewall WAN interface, a template for switch, and then all the templates for "client" hosts.

        Each template would depend on the other all the way down the chain, and each "client" host template would have a reference to the switch dependency for the host group. This can't be done because zabbix will not let you apply a template that references another template unless the reference template is also applied to the same host. As near as I can tell this breaks any attempt to use templates to control dependencies from one host to another.

        Using the same simple availability checking scenario where I would like most all of my "client" hosts triggers to not fire if an upstream network devices is down, it appears I would have to build explicit hard coded references to those devices into each and every template to achieve that functionality.

        After applying the template to a host, I would need to go to the hard coded external references now associated to the host via the applied template and updated them to point to what they actually should be checking against.

        Not only does this circumvent a lot of the functionality of using templates since ability to mass update the hard coded items via a template modification is lost, but it also duplicates a lot of checks that are already being performed creating uneeded processes and network overhead.

        I'm very interested to know how others are handling this problem, since am not sure what best practice would be too most easily achieve and manage the functionality desired.
        Right now, we just deal with fact this sucks. Trigger dependencies are superb in some scenarios, but the lack of host dependencies is a glaring omission.

        Having followed Zabbix for years, I am still shocked that some of the most basic things a network monitoring system should do, Zabbix just doesn't bother with.

        Switch X is down, Alert High -- continue polling and alerting on Host Z.

        Switch X and Y are both down Alert Critical -- stop polling and alerting on host Z, but aggregate a message in an alert mentioning host Z is down as part of this critical failure.

        Yep. You can do all this with trigger dependencies, but, jeebus... what a PIA. Especially in an environment where we are dealing with hundreds upon hundreds of small, isolated networks with enough variations to be snowflakes.

        Comment

        • bSpach
          Junior Member
          Zabbix Certified Specialist
          • Aug 2013
          • 12

          #5
          This has been a new feature request for 6 years. Wouldn't expect any movement on it any time soon, unfortunately.

          Comment

          Working...