Ad Widget

Collapse

Agent.ping + nodata() trigger seems to not work as intended

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • stever
    Member
    • Jun 2006
    • 36

    #1

    Agent.ping + nodata() trigger seems to not work as intended

    First off, we've been using zabbix for internal monitoring now since about 2006 so we love the tool and have a good bit of experience with it.

    It seems like we are having an issue with our trigger for the agent.ping item we are monitoring. We have several hosts that have very large databases on them, and periodically, there is are queries generated from our application and/or ad-hoc queries from the customer for reporting that consume all kinds of resources on the machine, causing it to grind to a halt for a minute or so. After these situations, I've often seen the load average of the system in the area of 100. While we are trying to get our devs + customers to get rid of these bad queries, in the meantime I'd like to not get alerted every time the system "goes out to lunch" for a minute or two.

    Setup in question is:
    Item: agent.ping, fetch value every 60s
    Trigger: {Template App Zabbix Agent:agent.ping.nodata(180)}=1
    Action: Send email immediately, escalate to pagers 3 minutes later

    From the documentaiton, nodata() returns: "1 - if no data received during period of time in seconds. The period should not be less than 30 seconds.
    0 - otherwise"

    Every time this trigger fires, our action fires a problem and then recovery email message almost immediately, I can't remember the last time I saw those two messages come in at different times (i.e. down for a period of time, then after a matter of minutes a recovery message). Our actions/etc. are working great for all other cases, except this agent.ping trigger. What we would want to happen is if we haven't received a bit of data for the whole previous 3 minutes, send us an alert. But it <seems> like it is firing when we haven't received data at some point in the previous 3 minutes.

    Has anyone else had this same sort of problem with nodata() and/or agent.ping?

    Thanks.
  • drumspirit
    Junior Member
    • Mar 2014
    • 13

    #2
    Originally posted by stever
    First off, we've been using zabbix for internal monitoring now since about 2006 so we love the tool and have a good bit of experience with it.

    It seems like we are having an issue with our trigger for the agent.ping item we are monitoring. We have several hosts that have very large databases on them, and periodically, there is are queries generated from our application and/or ad-hoc queries from the customer for reporting that consume all kinds of resources on the machine, causing it to grind to a halt for a minute or so. After these situations, I've often seen the load average of the system in the area of 100. While we are trying to get our devs + customers to get rid of these bad queries, in the meantime I'd like to not get alerted every time the system "goes out to lunch" for a minute or two.

    Setup in question is:
    Item: agent.ping, fetch value every 60s
    Trigger: {Template App Zabbix Agent:agent.ping.nodata(180)}=1
    Action: Send email immediately, escalate to pagers 3 minutes later

    From the documentaiton, nodata() returns: "1 - if no data received during period of time in seconds. The period should not be less than 30 seconds.
    0 - otherwise"

    Every time this trigger fires, our action fires a problem and then recovery email message almost immediately, I can't remember the last time I saw those two messages come in at different times (i.e. down for a period of time, then after a matter of minutes a recovery message). Our actions/etc. are working great for all other cases, except this agent.ping trigger. What we would want to happen is if we haven't received a bit of data for the whole previous 3 minutes, send us an alert. But it <seems> like it is firing when we haven't received data at some point in the previous 3 minutes.

    Has anyone else had this same sort of problem with nodata() and/or agent.ping?

    Thanks.

    Hi,

    I'am working on nodata() triggers for 5 days WITHOUT any solution !!
    My trigger fires instantly despite the time I set. I can define nodata(300) or nodata(231231321231) it is THE SAME !
    The trigger fires.
    I still don't understand.

    Comment

    • issak
      Junior Member
      • Jul 2014
      • 8

      #3
      This is still an issue in 2.4.2 version, I have reconfigured nodata trigger to 10 checks, 10 minutes, 5 minutes, increased agent.ping interval, decreased it, nothing seems to help. Sometimes of course the host is actually unreachable, but most of the time, agent.ping nodata trigger just floods. Problem and OK messages arrive at the same time, one after another.

      Please Zabbix team, how do we approach this, I've been researching this since the beginning and it's still unclear to me how to properly and reliably set the agent.ping and no data trigger.

      Thank you

      Comment

      • drumspirit
        Junior Member
        • Mar 2014
        • 13

        #4
        Originally posted by issak
        This is still an issue in 2.4.2 version, I have reconfigured nodata trigger to 10 checks, 10 minutes, 5 minutes, increased agent.ping interval, decreased it, nothing seems to help. Sometimes of course the host is actually unreachable, but most of the time, agent.ping nodata trigger just floods. Problem and OK messages arrive at the same time, one after another.

        Please Zabbix team, how do we approach this, I've been researching this since the beginning and it's still unclear to me how to properly and reliably set the agent.ping and no data trigger.

        Thank you
        Hello there,

        What I figured out about the nodata() trigger, is that the poller must not retrive data at all. That means, no zero, no number. Just a little " - ".
        According to me, even a zero or any number is considered as a "data". So this trigger won't work with boolean for instance.
        Well... May be I'm wrong, but in the case of provisionning or a switch/routeur/etc., the nodata() trigger cannot be used.

        There is probably a bug also in treating the parameters into brackets. I figured out that the laps time defined into brackets isn't respected the same way. I tried to define 5m, 10m, 1h, the triggered fired after the default time set for the poller (30 seconds) in the zabbix.conf file.

        I hope that the 2.4 version fixes that.

        Comment

        • issak
          Junior Member
          • Jul 2014
          • 8

          #5
          Originally posted by drumspirit
          Hello there,

          What I figured out about the nodata() trigger, is that the poller must not retrive data at all. That means, no zero, no number. Just a little " - ".
          According to me, even a zero or any number is considered as a "data". So this trigger won't work with boolean for instance.
          Well... May be I'm wrong, but in the case of provisionning or a switch/routeur/etc., the nodata() trigger cannot be used.

          There is probably a bug also in treating the parameters into brackets. I figured out that the laps time defined into brackets isn't respected the same way. I tried to define 5m, 10m, 1h, the triggered fired after the default time set for the poller (30 seconds) in the zabbix.conf file.

          I hope that the 2.4 version fixes that.
          I'm using 2.4.2, and it still causes false notifications.
          Agent.ping checks if process zabbix_agent answers a request, and zabbix_agent must be installed on the computer, so of course it won't work for switches/routers - I use ICMP ping and SNMP checking there.

          Comment

          • abdalaziz.janem
            Junior Member
            • Feb 2020
            • 6

            #6
            The problem still till now with Zabbix, any help ?

            Comment

            Working...