Ad Widget

Collapse

Непонятное поведение Zabbix. У кого-либо было такое?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Victor Vislobokov
    Senior Member
    • Aug 2018
    • 298

    #1

    Непонятное поведение Zabbix. У кого-либо было такое?

    Суть в следующем. Есть у меня проверки доступности веб-сайтов, которые запускаются через автообнаружение. Т.е. есть некий скрипт на агенте, который пинается с ключём dicovery и выдаёт JSON список вебсайтов и их IP. Проверка осуществляется также скриптом, который запускается агентом и для работы которого в ключе задано два важных параметра IP адрес и имя сайта. Всё работало как часы не один месяц и вдруг вчера случился капец.

    Два сайта (а их 7 штук) перестали отвечать (сервер сдох где они были как потом выяснилось), но получилось так, что как только этом случилось, Заббикс стал мне слать сообщения о том, что и с остальными сайтами проблема (нет данных). Я включил логгирование и увидел странную картину - из 7-ми сайтов, которые должны были проверяться, регулярно вызывалось только 3 проверки! Остальные просто молча игнорировались, как будто их и нет тут. Далее я перезапустил заббикс-сервер и тогда (о чудо) итерация получения данных прошла по всем прописанным серверам. Вот только через несколько минут всё повторилось снова - проверки перестали запускаться! Вручную проверил всё - сайты работали (кроме тех двух).

    И всё это продолжалось до тех пор, пока те две записи, которые касались умершего сервера не заработали! Как только заработали они, сразу проблем нигде не стало. Вопрос - что это было? Логи агента и сервера смотрел - ничего.
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    А что возвращает скрипт проверки, если сайт недоступен? Что-то осмысленное, или айтем просто становится неподдерживаемым?

    Comment

    • Victor Vislobokov
      Senior Member
      • Aug 2018
      • 298

      #3
      Скрипт проверки не мог ничего возвращать осмысленного, потому что кончался таймаут выставленный на агенте и сервере. Т.е. ситуация "нет данных" как я писал выше. На эту ситуацию у меня настроен триггер, который и матерно орал. Проблема только в том, что орал он и на те сайты, которые (я проверял вручную) доступны и вполне себе работают. Потому что для них тоже нет данных, потому что в свою очередь проверка для них просто не запускается.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Originally posted by Victor Vislobokov
        Скрипт проверки не мог ничего возвращать осмысленного, потому что кончался таймаут выставленный на агенте и сервере.
        В том и проблема. Похоже, в результате Zabbix стал считать хост недоступным.

        Я бы посоветовал завершать проверку в этом случае не по таймауту агента или сервера, а по собственному, меньшему таймауту (например, ключ -m у curl), и не доводить до nonsupported. А триггер делать не на nodata, а, например, на http status code (при таймауте curl возвращает 0).

        Comment

        • Victor Vislobokov
          Senior Member
          • Aug 2018
          • 298

          #5
          Вы не поняли. Те сайты которые работали возвращали результаты и быстро. Ручной запуск zabbix_get всё отрабатывал на ура. Конкретные проверки конкретных сайтов не возвращали данных, но я считаю эту ситуацию вполне нормальной, ибо действительно веб-страницы могут и сильно подтуплять иногда. Для меня загадка почему те проверки которые проходили нормально вдруг перестали запускаться? Причём не все! Как я уже писал, из 7-ми проверок продолжали работать 3 на ЭТОМ ЖЕ хосте. Заббикс их запускал, а остальные 2 почему-то нет.

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            Я так понимаю, дело может зависеть еще и от того, какому именно инстансу агента (по умолчанию их запускается 3) достались эти проверки. Возможно, не работали те, которые оказались вместе с проблемными.
            В любом случае, я бы посоветовал разобраться с таймаутами. Самый большой - у сервера, поменьше - у агента, еще меньше - в самом скрипте.

            Comment

            • Victor Vislobokov
              Senior Member
              • Aug 2018
              • 298

              #7
              Спасибо, попробую. Ещё бы как-то отлоггировать это или задебажить.

              Comment

              • Semiadmin
                Senior Member
                • Oct 2014
                • 1625

                #8
                Собственно, latest data - ваш лог. Есть все значения подряд, без пропусков, даже если ресурс был недоступен - все работает нормально. Еще можно сделать почтовое оповещение на то, что айтем стал недоступен - Actions - Event source Internal

                Comment

                • Victor Vislobokov
                  Senior Member
                  • Aug 2018
                  • 298

                  #9
                  Если проверка не запускалась, то естественно, что в latest data ничего не будет. Вопрос в тому ПОЧЕМУ она не запускалась, хотя должна каждую минуту. Вот где бы это ПОЧЕМУ найти в логах?
                  А уведомление, что нет данных у меня сделано, собственно так я на эту проблему и наступил. Пишет, что данных нет, а они должны быть. А нет их потому что проверка ЧАСТИ обнаруженых элементов не запускается.

                  Comment

                  • Semiadmin
                    Senior Member
                    • Oct 2014
                    • 1625

                    #10
                    Можно, конечно, повысить уровень логирования агента и что-нибудь искать в логах.. Но, на мой взгляд, это неверный подход. Вы пытаетесь понять, как связка сервер-агент разруливает проблемы, связанные с завершением проверок по таймауту агента, и почему это происходит не совсем так, как вы ожидаете. Я же предлагаю попытаться исключить их возникновение.

                    Comment

                    • Victor Vislobokov
                      Senior Member
                      • Aug 2018
                      • 298

                      #11
                      Да я вчера посмотрел. Вроде как не должно быть таймаута агента. На самой проверке есть таймаут в 10 сек и если он случится то проверка вернёт НЕПУСТОЙ результат с указанием ошибки соединения. Так что для меня попрежнему загадка как вообще возникла данная ситуация. К сожалению я пофиксил её как мог и теперь детали уже не понять. Но если будет ещё раз такое, постараюсь подробней компнуть

                      Comment

                      Working...