Ad Widget

Collapse

Zabbix agent иногда возвращает пустое значение

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Connected
    Member
    • Mar 2015
    • 39

    #1

    Zabbix agent иногда возвращает пустое значение

    Приветствую !

    Столкнулся с проблемой: Zabbix agent , иногда , возвращает пустое значение для UserParameter.

    Например в конфиге есть такие параметры:

    UserParameter = sensor.ambient1, sudo hplog -t | grep -v "\---" | grep Ambient | awk '{print $7}' | cut -c 1-2
    UserParameter = sensor.cpu1, sudo hplog -t | grep -v "\---" | grep CPU | awk '{print $8}' | cut -c 1-2
    UserParameter = sensor.SCSI1, sudo hplog -t | grep -v "\---" | grep SCSI | awk '{print $8}' | cut -c 1-2
    UserParameter = raid.contrller.status,sudo hpacucli ctrl all show status | grep Status | awk '{print $3}'
    UserParameter = raid.hdd1.health, sudo hpacucli ctrl slot=5 pd all show | grep "bay 1" | awk '{print $10}' | cut -c1-2
    UserParameter = raid.hdd2.health, sudo hpacucli ctrl slot=5 pd all show | grep "bay 2" | awk '{print $10}' | cut -c1-2

    Периодически UserParameter = raid.hdd2.health возвращает пустое значение :



    При этом никаких ошибок в логах Zabbix агента или сервера не наблюдаю.
    Подскажите куда копать?
    Такая история с несколькими устройствами, устройства находятся в разных сетях. Есть устройтсва на которых используются такие же параметры, но проблема не наблюдается.
    Last edited by Connected; 09-09-2015, 10:41.
  • Mihail
    Junior Member
    • Jul 2015
    • 20

    #2
    У тя какие Timeout в агенте и на сервере выставлены?
    попробуй поставить 30

    Comment

    • Connected
      Member
      • Mar 2015
      • 39

      #3
      Originally posted by mihail
      У тя какие timeout в агенте и на сервере выставлены?
      попробуй поставить 30
      На сервере стоит дефолтное значение .
      На агенте 6 секунд.

      Сейчас выставил 30 на агенте - наблюдаю.
      Должны ли таймеры на сервере и агенте совпадать?

      Comment

      • Mihail
        Junior Member
        • Jul 2015
        • 20

        #4
        Originally posted by connected
        Должны ли таймеры на сервере и агенте совпадать?
        Не обязательно

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #5
          Originally posted by mihail
          Не обязательно
          На агенте должны быть меньше чем на сервере, в случае если используется не "пассивный" агент.

          Comment

          • Connected
            Member
            • Mar 2015
            • 39

            #6
            Проблема сохраняется.
            Так же периодически не возвращает значения.

            В принципе можно переделать триггер.
            Например сейчас стоит вывод аварии при получении значения отличного от слова "ОК" , как добавить пустое значение в такой триггер?

            Comment

            • molody
              Junior Member
              • Aug 2015
              • 22

              #7
              Originally posted by connected
              Проблема сохраняется.
              Так же периодически не возвращает значения.

              В принципе можно переделать триггер.
              Например сейчас стоит вывод аварии при получении значения отличного от слова "ОК" , как добавить пустое значение в такой триггер?
              Попробуйте посмотреть в сторону версий Агента и Сервера
              У меня была такая проблемма когда Серзвер версии 1.8 а клиент версии >2.0

              Comment

              • yukra
                Senior Member
                • Apr 2013
                • 1359

                #8
                Originally posted by connected
                Проблема сохраняется.
                Так же периодически не возвращает значения.

                В принципе можно переделать триггер.
                Например сейчас стоит вывод аварии при получении значения отличного от слова "ОК" , как добавить пустое значение в такой триггер?
                Добавить в скрипт вывод всех действий в лог, посмотреть это косячит заббикс-агент, заббикс-сервер или ваш скрипт

                Comment

                • viper4u
                  Junior Member
                  • Aug 2015
                  • 1

                  #9
                  Originally posted by Connected
                  как добавить пустое значение в такой триггер?
                  аналогичная проблема существует, выкрутился функцией regexp.

                  Comment

                  • Connected
                    Member
                    • Mar 2015
                    • 39

                    #10
                    Originally posted by molody
                    Попробуйте посмотреть в сторону версий Агента и Сервера
                    У меня была такая проблемма когда Серзвер версии 1.8 а клиент версии >2.0
                    Да , действительно были разные версии. Обновил агента. Но проблема осталась.



                    Originally posted by yukra
                    Добавить в скрипт вывод всех действий в лог, посмотреть это косячит заббикс-агент, заббикс-сервер или ваш скрипт
                    Попробую.

                    Comment

                    • molody
                      Junior Member
                      • Aug 2015
                      • 22

                      #11
                      Originally posted by Connected
                      На сервере стоит дефолтное значение .
                      На агенте 6 секунд.

                      Сейчас выставил 30 на агенте - наблюдаю.
                      Должны ли таймеры на сервере и агенте совпадать?
                      По итогу-то сколько на сервере стоит Timeout ?
                      поставьте максимум и на сервере и на агенте
                      если проблемма сохранится, смотрите сколько по времени выполняются данные команды, возможно возникают проблеммы когда отработка команды будет занимать более 30сек

                      Comment

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

                        #12
                        Меня немного смущает использование вот этих вот HP-шных утилит (hplog и, особенно, hpacucli). Например, у меня немного другой сервер, но аналогичная команда
                        Code:
                        hpssacli ctrl slot=0 pd all show
                        отрабатывает в среднем за 280 миллисекунд. И я боюсь, что если таких команд запустить несколько одновременно, то они могут друг другу мешать (например, одна вернёт адекватный результат, а другая - сообщение об ошибке или просто "пусто"). Если у Вас для hdd1 и hdd2 соответствующие команды запускаются одновременно, то может быть как раз такой случай.

                        И ещё замечание (непосредственно к теме не относится, но тем не менее): выражения можно соптимизировать. Если уж Вы вызываете awk, то нет смысла отдельно в конвейере вызывать ещё и grep, и cut: все эти задачи умеет делать сам awk. Например, вместо
                        Code:
                        sudo hpacucli ctrl slot=5 pd all show | grep "bay 1" | awk '{print $10}' | cut -c1-2
                        можно написать:
                        Code:
                        sudo hpacucli ctrl slot=5 pd all show | awk '/bay 1/ {print substr($10,1,length($10)-1)}'
                        и сэкономить на вызове двух утилит и конвейеров.

                        Comment

                        • Connected
                          Member
                          • Mar 2015
                          • 39

                          #13
                          Originally posted by kos
                          Меня немного смущает использование вот этих вот hp-шных утилит (hplog и, особенно, hpacucli). Например, у меня немного другой сервер, но аналогичная команда
                          Code:
                          hpssacli ctrl slot=0 pd all show
                          отрабатывает в среднем за 280 миллисекунд. И я боюсь, что если таких команд запустить несколько одновременно, то они могут друг другу мешать (например, одна вернёт адекватный результат, а другая - сообщение об ошибке или просто "пусто"). Если у Вас для hdd1 и hdd2 соответствующие команды запускаются одновременно, то может быть как раз такой случай.

                          И ещё замечание (непосредственно к теме не относится, но тем не менее): выражения можно соптимизировать. Если уж Вы вызываете awk, то нет смысла отдельно в конвейере вызывать ещё и grep, и cut: все эти задачи умеет делать сам awk. Например, вместо
                          Code:
                          sudo hpacucli ctrl slot=5 pd all show | grep "bay 1" | awk '{print $10}' | cut -c1-2
                          можно написать:
                          Code:
                          sudo hpacucli ctrl slot=5 pd all show | awk '/bay 1/ {print substr($10,1,length($10)-1)}'
                          и сэкономить на вызове двух утилит и конвейеров.

                          Спасибо за подсказку . выражения изменил.
                          Наблюдаю.
                          Отпишусь дня через 3

                          Comment

                          • Connected
                            Member
                            • Mar 2015
                            • 39

                            #14
                            6 дней - полет нормальный , после изменения скрипта пустых значений нет. Спасибо.

                            Comment

                            Working...