Zabbix has greath flexibility, but I've hit a wall.
(traders) <-> [(Server) <-> (Brokers APIs)] <-> (Brokers on DMZs)
We have a couple of machines like that for production, backup, developement, test, etc...
The Server and and Brokers APIs are on the same machine. Only one machine may have the Brokers APIs talking to the Brokers on the DMZs and that's the production server. Of course, we want to be able to test changes so other server may connect to the brokers on the DMZs but we want alerts to tiggers when this happens.
There are 7 Brokers APIs permiting giving the server the ability to talk to the brokers. If the server is stopped, the Brokers APIs stops also. We seek to be alerted when something is not in a "normal state" (server running on production machine and server stopped on anything else). We defined a user macro {$SERVER_NORMAL_STATE} assigned to 0 in the template, and assigned to 1 in the production server. This works like a charm using a trigger like this:
{Template_server:net.tcp.service[tcp,{IPADDRESS},1234].last(0)}#{$DSTS_NORMAL_STATE}
With dependencies, we prevent being notified for Brokers APIs going down when the production server goes down.
HERE IS THE SNAG:
On the other machines though, when the server is up (not normal state so trigger fires) we would still like to get notifications on the states of the Brokers APIs, but this is prevented since there are dependencies defined in the template. In reverse, if the server is down (normal state so trigger is off), of course all the Brokers APIs are also down and so it fires all the triggers on them (which we don't care since we know the server is down).
What I wish to emulate is to reverse the dependency, that is, to inhibite triggers when another trigger is fired and vice verse. Another way to say it: I want a trigger to work only when another trigger is in the PROBLEM state.
Ex.
- Enable trigger firing on Broker APIs if AND ONLY if Server is up (PROBLEM)
- inhibbit trigger firing on Broker APIs when Server is down (OK)
I have attached a screenshot of what I have tried to accomplish (two machines in the middle). The fired trigger "dsts service is {ITEM.LASTVALUE} ...", ITEM.LASTVALUE is "up (0)", but, as you can see, because of the dependencies, I don't see the other triggers. For the other machine, of course, it works as expected.
Thanks for any help you could provide
(traders) <-> [(Server) <-> (Brokers APIs)] <-> (Brokers on DMZs)
We have a couple of machines like that for production, backup, developement, test, etc...
The Server and and Brokers APIs are on the same machine. Only one machine may have the Brokers APIs talking to the Brokers on the DMZs and that's the production server. Of course, we want to be able to test changes so other server may connect to the brokers on the DMZs but we want alerts to tiggers when this happens.
There are 7 Brokers APIs permiting giving the server the ability to talk to the brokers. If the server is stopped, the Brokers APIs stops also. We seek to be alerted when something is not in a "normal state" (server running on production machine and server stopped on anything else). We defined a user macro {$SERVER_NORMAL_STATE} assigned to 0 in the template, and assigned to 1 in the production server. This works like a charm using a trigger like this:
{Template_server:net.tcp.service[tcp,{IPADDRESS},1234].last(0)}#{$DSTS_NORMAL_STATE}
With dependencies, we prevent being notified for Brokers APIs going down when the production server goes down.
HERE IS THE SNAG:
On the other machines though, when the server is up (not normal state so trigger fires) we would still like to get notifications on the states of the Brokers APIs, but this is prevented since there are dependencies defined in the template. In reverse, if the server is down (normal state so trigger is off), of course all the Brokers APIs are also down and so it fires all the triggers on them (which we don't care since we know the server is down).
What I wish to emulate is to reverse the dependency, that is, to inhibite triggers when another trigger is fired and vice verse. Another way to say it: I want a trigger to work only when another trigger is in the PROBLEM state.
Ex.
- Enable trigger firing on Broker APIs if AND ONLY if Server is up (PROBLEM)
- inhibbit trigger firing on Broker APIs when Server is down (OK)
I have attached a screenshot of what I have tried to accomplish (two machines in the middle). The fired trigger "dsts service is {ITEM.LASTVALUE} ...", ITEM.LASTVALUE is "up (0)", but, as you can see, because of the dependencies, I don't see the other triggers. For the other machine, of course, it works as expected.
Thanks for any help you could provide