Ad Widget

Collapse

Непонятное мигание ошибки 'Zabbix agent is not available (for 3m)'

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • a.l.r.e
    Member
    • May 2021
    • 45

    #16
    Спасибо за предупреждение.

    Добавил в item в поле description Вашу ссылку.

    Но насчёт никогда, непонятно. Вот я тесты гонял. У меня fuzzytime не в триггере, а прямо в item, так что видно что она работает.

    Click image for larger version

Name:	zbx_agent_available.jpg
Views:	253
Size:	99.3 KB
ID:	436487

    Почитал я ZBX-15624. Проблему понял, только не понял, а когда это происходит ?

    Например, всё что там про Windows можно смело убрать. В Windows служба времени до некоторых пор не являлась службой точного времени. Было приемлемо расхождение времени вплоть до 5 минут.
    https://docs.microsoft.com/en-us/win...pport-boundary
    "...Более ранние версии Windows (предшествующие Windows 10 версии 1607 или Windows Server 2016 версии 1607) не гарантируют высокую точность времени..."

    Даже если в редких случаях я увижу, что item 'PostgreSQL: Agent available' ошибочно генерит 0, то для меня это более предпочтительно, чем неработающий триггер 'PostgreSQL: Service is down'

    Понаблюдаем...

    Comment

    • a.l.r.e
      Member
      • May 2021
      • 45

      #17
      Столкнулся на одном из серверов zabbix с дрифтом обновления поля 'PostgreSQL: Agent available'

      Имеет смысл добавить в шаблон 'PostgreSQL Agent 2' макрос: {$PG.AGENT.TIMER} = 66

      и изменить в item формулу так: fuzzytime(system.localtime[utc],{$PG.AGENT.TIMER})

      Comment

      • a.l.r.e
        Member
        • May 2021
        • 45

        #18
        Если всё же с fuzzytime встретятся неприятности, то можно изменить формулу

        формулу
        Code:
        fuzzytime(system.localtime[utc],{$PG.AGENT.TIMER})
        заменить на
        Code:
        count(system.localtime[utc],{$PG.AGENT.TIMER})

        Нужно только поправить во всех триггерах

        вместо
        Code:
        {PostgreSQL Agent 2:pgsql.agent.available.min({$PG.AGENT.TIMEOUT})}=1
        использовать
        Code:
        {PostgreSQL Agent 2:pgsql.agent.available.min({$PG.AGENT.TIMEOUT})}>=1

        Comment

        Working...