Ad Widget

Collapse

Zabbix poller processes more than 75% busy После увел. знач. poller - error database

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • svyaznoy
    Member
    • Nov 2014
    • 87

    #1

    Zabbix poller processes more than 75% busy После увел. знач. poller - error database

    Коллеги, куда копать?
    Висит триггер Zabbix poller processes more than 75% busy. ПОсле того, как я увеличиваю значение poller в конфиге заббикс с 30 на любое большее число - сразу получаю ошибку соединения в базе данных. ЧТо не так?
    Zabbix 3.0.1
    POstgresql
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by svyaznoy
    Коллеги, куда копать?
    Висит триггер Zabbix poller processes more than 75% busy. ПОсле того, как я увеличиваю значение poller в конфиге заббикс с 30 на любое большее число - сразу получаю ошибку соединения в базе данных. ЧТо не так?
    Zabbix 3.0.1
    POstgresql
    max_connections в psql?

    Comment

    • svyaznoy
      Member
      • Nov 2014
      • 87

      #3
      100 по дефолту.

      Comment

      • svyaznoy
        Member
        • Nov 2014
        • 87

        #4
        Увеличил в постгресе до 200 подключений и поллер до 60. Заработало.

        Comment

        • Evgenym
          Junior Member
          • Oct 2016
          • 29

          #5
          Тоже задам похожий вопрос, чтобы не плодить лишних тем. У меня Zabbix 3.2, разворачивал согласно руководству на базе MariaDB. Сейчас настроил поиск и автоматическое добавление хостов в трех сетях c маской 255.255.255.0. На всех хостах стоят агенты в пассивном режиме.

          Сегодня на сервер добавилось около 20 хостов с Centos 7. И после этого добавления начались странные вещи (см. график). Значение "Zabbix busy poller processes" взлетело с примерно 45% до 100%.

          В файле конфига сервера стояло значение StartPollers=20. Сразу после подскока графика стала образовываться очередь из параметров. Я отключил LLD для создания элемента данных для каждой службы Windows, в результате чего количество элементов данных упало примерно в два раза. Но загрузка не снизилась. Потом я поставил параметр StartPollers=30 и все нормализовалось.

          Вопрос, корректно ли это? Надо ли копать в сторону оптимизации настроек MySQL (его не настраивал, все стоит по дефолту)?
          Last edited by Evgenym; 21-11-2016, 13:21.

          Comment

          • Evgenym
            Junior Member
            • Oct 2016
            • 29

            #6
            Похоже, скачок в нагрузке был обусловлен не количеством хостов в мониторинге, а тем, что ряд хостов, которые были добавлены, находятся в другой сети, изолированной от сети, в которой находится сервер мониторинга. На файрволле настроены правила, чтобы пропускать пакеты на порты 10050 и 10051, пакеты доходят до сервера и до агентов, но в логах сервера регулярно пишется следующее:

            Code:
            25807:20161019:151224.400 resuming Zabbix agent checks on host "******": connection restored
             25813:20161019:151225.061 resuming Zabbix agent checks on host "********": connection restored
             25814:20161019:151226.860 Zabbix agent item "net.if.in[Microsoft ISATAP Adapter #2]" on host "**********" failed: first network error, wait for 30 seconds
             25809:20161019:151228.801 Zabbix agent item "net.if.out[WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000]" on host "***********" failed: first network error, wait for 30 seconds
            И подобные сбои по каждому хосту из той сети. Когда деактивировал хосты, загрузка упала. Буду включать только один хост и пытаться разобраться, что за потери имееют место.

            Comment

            • Evgenym
              Junior Member
              • Oct 2016
              • 29

              #7
              Итак, проблему, похоже решил. Что нашел:

              1) Часть пакетов при мониторинге из другой сети действительно терялась. Были созданы правила вида

              Code:
              Any port--------->10050, 10051
              10050,10051---> Any port
              Any port<---------10050, 10051
              10050,10051<---Any port
              После этого данные пошли, однако, на сервере была очередь из элементов, которые не приходили в срок (одна из гипотез - вероятно, на файрволле слишком много правил, но точно сказать не могу, т.к. сеть обслуживается другими людьми). Для решения этой проблемы пришлось увеличить таймаут до 30 секунд.

              2) В другой сети был поднят Zabbix-прокси, который собирал данные с хостов. Задержка данных и очередь при обмене имеется, но она небольшая, жить можно.

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

              В итоге загрузка процессов значительно упала, что позволило уменьшить количество поллеров в конфигах сервера и прокси.

              Comment

              • Konstantin Tokar
                Junior Member
                • Oct 2008
                • 17

                #8
                Есть ещё одна причина для нехватки пулеров. Если указать в настройках агента не ip адрес сервера, а его DNS имя, то агент будет каждый раз его запрашивать у DNS сервера. Если DNS отвечает быстро, то проблем нет. А если как у меня, то пулеры на сервере заканчиваются - агенты медленно отдают данные.

                Вариантов решения два. 1) агент должен кэшировать DNS , хотя бы в пределах установленных TTL; 2) можно установить кэширующий сервер, вот только на всех клиентах его не установить. Поэтому надо поработать команде заббикса и выполнить пункт 1.

                Comment

                • Evgenym
                  Junior Member
                  • Oct 2016
                  • 29

                  #9
                  Originally posted by konstantin tokar
                  Есть ещё одна причина для нехватки пулеров. Если указать в настройках агента не ip адрес сервера, а его dns имя, то агент будет каждый раз его запрашивать у dns сервера. Если dns отвечает быстро, то проблем нет. А если как у меня, то пулеры на сервере заканчиваются - агенты медленно отдают данные.

                  Вариантов решения два. 1) агент должен кэшировать dns , хотя бы в пределах установленных ttl; 2) можно установить кэширующий сервер, вот только на всех клиентах его не установить. Поэтому надо поработать команде заббикса и выполнить пункт 1.
                  Попробовал поменять конфиг на агентах в другой сети, откуда данные образовывали очередь. В списке серверов, с которых разрешено подключаться, оставил только ip-адреса. После этого очередь рассосалась! Огромное спасибо за подсказку! Сам бы додумался бы нескоро в этом направлении копнуть.
                  Last edited by Evgenym; 20-01-2017, 08:47.

                  Comment

                  Working...