Ad Widget

Collapse

Триггер на некорректное значение item

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • IgorB
    Member
    • Apr 2016
    • 58

    #1

    Триггер на некорректное значение item

    Коллеги,

    у меня вопрос вроде бы тривиальный, но решения что-то не нахожу. Вот создаю я пользовательский item с целочисленным типом. Значение получается через Userparameter, допустим, просто через 'cat /какой-то-файл'. Если все хорошо, то приходит целое значение. Если происходит какая-то ошибка (допустим, нет файла), то прилетает текстовое сообщение об ошибке.

    Как написать триггер, который сработает на появление ошибки? Функции nodata и count не срабатывают (наверное, они считают, что кривое значение - тоже значение), функция regexp с проверкой на "только цифры" тоже - она не принимает целый тип.
  • Nagainos
    Member
    • Oct 2016
    • 46

    #2
    Напишите маленький скрипт, который при любой неудачной попытке чтения файла будет возвращать значение -1, а при удачном чтении - содержимое файла. На значение -1 повесьте триггер что ваш скрипт поломался. Как-то так.

    Comment

    • IgorB
      Member
      • Apr 2016
      • 58

      #3
      Originally posted by Nagainos
      Напишите маленький скрипт, который при любой неудачной попытке чтения файла будет возвращать значение -1, а при удачном чтении - содержимое файла. На значение -1 повесьте триггер что ваш скрипт поломался. Как-то так.
      Спасибо, я выиграл с Вашей помощью бутылку пива у сотрудников. Спор был на предмет того, что первый пост будет не как решить вопрос, а как его обойти.

      Все-таки хотелось бы решить вопрос.

      Comment

      • Nagainos
        Member
        • Oct 2016
        • 46

        #4
        При использовании целочисленного типа и использовании cat /some/file при отсутствии файла айтем будет переходить в состояние unsupported т.к. в него прилетит текст. По-этому Вам лучше использовать скрипт и вернуть пиво второму участнику спора.
        Решение со скриптом вполне нормально для данной системы мониторинга, но если оно вас не устраивает - можете использовать в качестве типа текст и разбирать его. Тогда айтем не сможет стать некорректным и у вас получится разобрать его результат.

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #5
          Можно сделать почтовое оповещение о том, что item стал unsupported. Правда, триггера не будет.

          Comment

          • IgorB
            Member
            • Apr 2016
            • 58

            #6
            Originally posted by nagainos
            Решение со скриптом вполне нормально для данной системы мониторинга, но если оно вас не устраивает - можете использовать в качестве типа текст и разбирать его. Тогда айтем не сможет стать некорректным и у вас получится разобрать его результат.
            Текст проблематично суммировать и сравнивать с порогами.

            Comment

            • IgorB
              Member
              • Apr 2016
              • 58

              #7
              Originally posted by Semiadmin
              Можно сделать почтовое оповещение о том, что item стал unsupported. Правда, триггера не будет.
              Нельзя ли чуть подробнее? Я в Action в условиях не нашел ничего похожего.

              Comment

              • Nagainos
                Member
                • Oct 2016
                • 46

                #8
                Тогда писать скрипт. И верните пиво владельцу! :d :d :d

                Comment

                • Semiadmin
                  Senior Member
                  • Oct 2014
                  • 1625

                  #9
                  Originally posted by IgorB
                  Нельзя ли чуть подробнее? Я в Action в условиях не нашел ничего похожего.
                  Actions - Event source Internal

                  Comment

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

                    #10
                    Блин, пока писал ответ, тут уже всё "разложили по полочкам" без меня
                    Присоединяюсь к пожеланиям вернуть пиво, т.к. правильный ответ для данной ситуации был дан в первой же реплике.

                    Единственное, что могу добавить к мнению Nagainos-а: элемент данных целочисленного типа перейдёт в состояние unsupported и при отсылке в него отрицательного значения. Для того, чтобы воспользоваться его советом, надо тип изменить на float.

                    Semiadmin, эти оповещения, действительно, можно получать; но только есть ли там возможность их получать лишь для отдельного конкретного айтема?
                    Last edited by Kos; 15-02-2017, 11:07. Reason: стилистика

                    Comment

                    • IgorB
                      Member
                      • Apr 2016
                      • 58

                      #11
                      Originally posted by Semiadmin
                      Actions - Event source Internal
                      Это в Condition? У меня там такого нет. Версия сервера 3.0.7

                      Comment

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

                        #12
                        Configuration -> Actions, после чего в правом верхнем углу в пункте "Event source" выбираем не "Triggers", а "Internal".

                        Comment

                        • Semiadmin
                          Senior Member
                          • Oct 2014
                          • 1625

                          #13
                          Originally posted by Kos
                          Semiadmin, эти оповещения, действительно, можно получать; но только есть ли там возможность их получать лишь для отдельного конкретного айтема?
                          Для конкретного item - нет, есть для Application. Думаю, сойдет. В оповещении ведь будет конкретный item упомянут.

                          Comment

                          • IgorB
                            Member
                            • Apr 2016
                            • 58

                            #14
                            Originally posted by Kos
                            Присоединяюсь к пожеланиям вернуть пиво, т.к. правильный ответ для данной ситуации был дан в первой же реплике.
                            Вопрос был "как написать триггер". Можно его расширить - "как получить оповещение о поступлении некорректных данных". А не "как обеспечить обработку ошибок вне Zabbix".

                            Кстати, а отловить ситуацию, когда получение item выходит за рамки timeout - можно? Хоть это функцией nodata ловится? Я, естественно, описал в вопросе весьма упрощенный пример, на практике все немного сложнее.

                            Comment

                            • IgorB
                              Member
                              • Apr 2016
                              • 58

                              #15
                              Originally posted by semiadmin
                              Для конкретного item - нет, есть для application. Думаю, сойдет. В оповещении ведь будет конкретный item упомянут.
                              Ага, увидел, спасибо. Буду пробовать.

                              Comment

                              Working...