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

    #1

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

    Проблема.

    В контейнере установлен агент zabbix/zabbix-agent2:ubuntu-5.2-latest. К нему привязаны template 'Zabbix agent', 'PostgreSQL Agent 2'

    Всё работает, и всё мониторится.

    Но если остановить PostgreSQL, то через некоторое время появляется ошибка 'Zabbix agent is not available (for 3m)', а потом через некоторое время она исчезает.

    Click image for larger version

Name:	z1.jpg
Views:	2332
Size:	26.7 KB
ID:	435697

    Click image for larger version

Name:	z2.jpg
Views:	2184
Size:	17.6 KB
ID:	435698

    Это мигание непонятно. Агент работает, выключен-то только PostgreSQL.
  • a.l.r.e
    Member
    • May 2021
    • 45

    #2
    Zabbix agent is not available
    Click image for larger version

Name:	z3.jpg
Views:	2168
Size:	59.9 KB
ID:	435709

    При этом он как-бы работает
    Click image for larger version

Name:	z4.jpg
Views:	2186
Size:	26.6 KB
ID:	435710

    А через некоторое время
    Click image for larger version

Name:	z5.jpg
Views:	2162
Size:	58.7 KB
ID:	435711

    Comment

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

      #3
      В базе текст ошибки
      Click image for larger version

Name:	z6.jpg
Views:	2162
Size:	67.6 KB
ID:	435714

      Comment

      • Alex_UUU
        Senior Member
        • Dec 2018
        • 541

        #4
        Посмтри, как вычисляется данный тригер и посмотри что выдет итем этого триггера. Може действительно пинги до агента не идут.

        Comment

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

          #5
          ping и Zabbix agent is not available - это разные вещи

          zabbix_get работает же при этом


          Если вместо шаблона 'Zabbix agent' установить шаблон 'Linux by Zabbix agent' в котором есть linked шаблон 'Zabbix agent', то ошибки 'Zabbix agent is not available (for 3m)' не происходит.

          Похоже на баг.

          В рамках шаблона 'PostgreSQL Agent 2' генерится событие интерпретируемое как недоступность Zabbix agent.
          И, если стоит шаблон 'Zabbix agent', то это событие висит достаточно долго, чтобы сработал триггер.
          А, если стоит шаблон 'Linux by Zabbix agent', то это событие сбрасывается/затирается каким-то событием из большого потока событий.

          Comment

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

            #6
            Какой-то странный шаблон 'PostgreSQL Agent 2'

            ping из шаблона работает когда хочет, а не раз в минуту

            Click image for larger version

Name:	z7.jpg
Views:	2159
Size:	91.7 KB
ID:	435844

            а uptime раз в минуту

            Click image for larger version

Name:	z8.jpg
Views:	2155
Size:	114.6 KB
ID:	435845

            Comment

            • wins
              Senior Member
              • Sep 2014
              • 307

              #7
              какая версия сервера?

              Comment

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

                #8
                Всё в контейнерах

                zabbix : zabbix/zabbix-server-pgsql:ubuntu-5.2-latest : https://hub.docker.com/r/zabbix/zabbix-server-pgsql
                postgres: postgres:10 : https://hub.docker.com/_/postgres

                Comment

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

                  #9
                  Потратил кучу времени на тестирование.
                  Заметил следующее.

                  Для начала добавил в шаблон 2 item
                  Click image for larger version

Name:	zbx1.jpg
Views:	2153
Size:	92.5 KB
ID:	436331Click image for larger version

Name:	zbx2.jpg
Views:	2136
Size:	99.8 KB
ID:	436332

                  В результате оказалось следующее

                  {$AGENT.TIMEOUT} = 3m - это из шаблона Zabbix agent. Отсюда непонятный триггер из заголовка топика, хотя для host стоит другое значение.

                  {$AGENT.TIMEOUT} = 15m - установлено для host

                  При остановке PostgreSQL прекращается обновление item типа Zabbix agent из шаблона PostgreSQL Agent 2.

                  А самое интересное, что обновление 2-х item (те которые добавлены в шаблон) оживает через 15min, т.е. $AGENT.TIMEOUT установленный для host.

                  Остальные так и не обновляются.

                  Comment

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

                    #10
                    system.localtime - не помогает. Ничем не лучше zabbix[host,agent,available],
                    у которого может наблюдаться пауза в работе (11:50-12:01) при остановке PostgreSQL(а не агента), потом пила в работе (ну это ладно), непонятные паузы в процессе (12:50-12:56)...


                    Click image for larger version

Name:	zbx.jpg
Views:	2114
Size:	179.2 KB
ID:	436424

                    Похоже, реально нужно попробовать fping https://www.zabbix.com/documentation.../simple_checks

                    И image zabbix/zabbix-server-pgsql:ubuntu-5.2-latest https://hub.docker.com/r/zabbix/zabbix-server-pgsql дополнить

                    Dockerfile:
                    Code:
                    FROM zabbix/zabbix-server-pgsql:ubuntu-5.2-latest
                    
                    ENV DEBIAN_FRONTEND noninteractive
                    
                    USER root
                    RUN apt-get update
                    RUN apt-get -y install iputils-ping fping dnsutils telnet
                    RUN cd /usr/sbin; ln -s /usr/bin/fping
                    RUN chown root:zabbix /usr/bin/fping
                    RUN chmod u+s /usr/bin/fping
                    RUN apt-get clean all
                    
                    USER zabbix
                    Attached Files

                    Comment

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

                      #11
                      В Kubernetes несколько zabbix agent могут висеть на одном IP, только порты разные.
                      так что fping не поможет.

                      Comment

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

                        #12
                        остаётся только workarroud.

                        добавить к набору шаблонов 'Zabbix agent' и 'PostgreSQL Agent 2', какой-нибудь для active agent, например, 'Linux CPU by Zabbix agent active' как не очень большой...
                        возможно это уберёт паузы в работе zabbix[host,agent,available]

                        А созданные item 'PostgreSQL: Agent localtime' и 'PostgreSQL: Agent tImeout' позволяют создать работающий триггер 'PostgreSQL: Service is down'

                        что-то типа
                        Code:
                        Problem expression: {PostgreSQL Agent 2:pgsql.uptime["{$PG.URI}","{$PG.USER}","{$PG.PASSWORD}"].nodata({$AGENT.TIMEOUT})}=1 and {PostgreSQL Agent 2:pgsql.agent.timeout.max({$PG.AGENT.TIMEOUT})}=1 and {PostgreSQL Agent 2:pgsql.agent.timeout.last(60)}=1
                        Recovery expression: {PostgreSQL Agent 2:pgsql.uptime["{$PG.URI}","{$PG.USER}","{$PG.PASSWORD}"].nodata({$AGENT.TIMEOUT})}=0 and {PostgreSQL Agent 2:pgsql.agent.timeout.max({$PG.AGENT.TIMEOUT})}=1 and {PostgreSQL Agent 2:pgsql.agent.timeout.last(60)}=1

                        Comment

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

                          #13
                          Всё заработало, как требовалось.
                          Нужно было лишь для system.localtime использовать type 'Zabbix agent (active)'

                          В шаблон 'PostgreSQL Agent 2' нужно добавить macro

                          Click image for larger version

Name:	zbx_macro.jpg
Views:	2147
Size:	34.9 KB
ID:	436461

                          В шаблон 'PostgreSQL Agent 2' нужно добавить items

                          Click image for larger version

Name:	zbx_item_active.jpg
Views:	2125
Size:	90.9 KB
ID:	436462 Click image for larger version

Name:	zbx_item_calc.jpg
Views:	2123
Size:	91.0 KB
ID:	436463

                          Шаблон 'Zabbix agent' не используется, т.к ложные срабатывания при остановке PostgreSQL (не агента).

                          В шаблон 'PostgreSQL Agent 2' добавлен триггер

                          Click image for larger version

Name:	zbx_trigger_agent.jpg
Views:	2118
Size:	94.1 KB
ID:	436464

                          Ну и исправлен триггер

                          Click image for larger version

Name:	zbx_trigger_down.jpg
Views:	2137
Size:	113.1 KB
ID:	436465

                          Comment

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

                            #14
                            Использовались контейнеры
                            zabbix/zabbix-server-pgsql:ubuntu-5.2-latest
                            zabbix/zabbix-agent2:ubuntu-5.2-latest

                            Для контейнера агента настройки


                            В Zabbix для него настройки


                            Comment

                            • Kos
                              Senior Member
                              Zabbix Certified SpecialistZabbix Certified Professional
                              • Aug 2015
                              • 3404

                              #15
                              Нужно было лишь для system.localtime использовать type 'Zabbix agent (active)'
                              Я надеюсь, Вы в курсе, что значение, возвращаемое метрикой system.localtime при работе агента в активном режиме, нельзя проверять при помощи триггерной функции fuzzytime()?
                              Такой триггер не сработает никогда.
                              Если не верите мне, то внимательно смотрите описание триггерной функции в документации, где это явно упомянуто (правда, без подробностей, за подробностями - сюда).

                              Comment

                              Working...