Is it correct that it is necessary to always add a nodata() clause to triggers so they actually fire when something is wrong?
For example a log[].count(120)=0 doesn't fire when the agent stops sending data (which it apparently does when the log doesn't change). Without a nodata() if the log isn't modified then this trigger will silently fail to do what it is supposed to do.
Also triggers don't seem to support a NOT operator so the above cannot be expressed as "NOT log[].count(120)>=1" which should also fire in the case of the agent sending no data.
Apparently Zabbix uses a "if in doubt don't fire a trigger" policy which isn't really what you want for a monitoring system.
Any ideas how I can create triggers like this without littering my trigger with nodata() calls?
For example a log[].count(120)=0 doesn't fire when the agent stops sending data (which it apparently does when the log doesn't change). Without a nodata() if the log isn't modified then this trigger will silently fail to do what it is supposed to do.
Also triggers don't seem to support a NOT operator so the above cannot be expressed as "NOT log[].count(120)>=1" which should also fire in the case of the agent sending no data.
Apparently Zabbix uses a "if in doubt don't fire a trigger" policy which isn't really what you want for a monitoring system.
Any ideas how I can create triggers like this without littering my trigger with nodata() calls?