Ad Widget

Collapse

Zabbix Dependent Item регулярные выражения

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • psx1Reboot
    Junior Member
    • May 2023
    • 3

    #1

    Zabbix Dependent Item регулярные выражения

    Добрый день.

    Изучаю сейчас Zabbix, дошел до Zabbix Dependent Item.

    Создал простой Item который возвращает значение uptime типа Text, например "12:25:16 up 3:30, 2 users, load average: 0.00, 0.00, 0.00"
    Создал зависимый итем, и препроцесинг с регулярным выражением ([0-9]+) users
    При тесте все проходит нормально, и я получаю 2 в результате.
    Но в последних данных ошибка:

    Preprocessing failed for: 12776
    1. Failed: cannot perform regular expression "([0-9]+) users" match for value of type "none": pattern does not match​


    Подскажите что не так?
  • Answer selected by Kos at 16-05-2023, 11:42.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Проверьте, что в мастер-айтем поступает именно то значение, которое вы ожидаете. Похоже, что это не так.

    Comment

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

      #2
      Проверьте, что в мастер-айтем поступает именно то значение, которое вы ожидаете. Похоже, что это не так.

      Comment

      • psx1Reboot
        Junior Member
        • May 2023
        • 3

        #3
        Точно. Вчера часа 2 разбирался. И только после вашего комента заметил, что вместо созданного мной uptime у меня в мастере System uptime. Спасибо.

        Comment

        • Whols
          Senior Member
          • Jul 2018
          • 133

          #4
          Вопрос по зависимым элементам - а как получить в триггере исходное значение мастер-элемента? Пробовал {ITEM.VALUE1-2}, но оно не содержит данных.​

          Comment

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

            #5
            Originally posted by Whols
            Вопрос по зависимым элементам - а как получить в триггере исходное значение мастер-элемента? Пробовал {ITEM.VALUE1-2}, но оно не содержит данных.​
            Распишите подробнее вашу ситуацию. Не очень понятно, что именно Вы хотите делать в триггере с этим исходным значением.

            Comment

            • Whols
              Senior Member
              • Jul 2018
              • 133

              #6
              Originally posted by Kos
              Распишите подробнее вашу ситуацию. Не очень понятно, что именно Вы хотите делать в триггере с этим исходным значением.
              Есть мастер-элемент "VPN_conn" типа Text. Он собирает лог подключений и через два шага препроцессинга приводит его к нужному виду . Зависимый элемент получает кол-во строк методом JS, триггер отслеживает изменение кол-ва строк в этом элементе. В сообщении триггера нужно развернуть значение мастер-элемента (обработанный лог подключений).

              Comment

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

                #7
                Originally posted by Whols
                Есть мастер-элемент "VPN_conn" типа Text. Он собирает лог подключений и через два шага препроцессинга приводит его к нужному виду . Зависимый элемент получает кол-во строк методом JS, триггер отслеживает изменение кол-ва строк в этом элементе. В сообщении триггера нужно развернуть значение мастер-элемента (обработанный лог подключений).
                Т.е. по факту вам нужно в текст уведомления о проблеме вставить значение элемента данных, которого нет в формуле триггера (просто для наглядности, в качестве комментария к проблеме).

                В современных версиях Zabbix это можно сделать при помощи макроса {?EXPRESSION} (ссылка), позволяющем сослаться на текущее значение любого элемента данных (даже относящегося к другому хосту). Стандартная практика: у конкретного триггера в поле комментария ("Description") прописываем нужный текст, включая необходимые макросы, а в настройках оповещений о проблеме (в шаблонах уведомлений) используем макрос {TRIGGER.DESCRIPTION}. Видимо, аналогичного эффекта можно добиться, используя не Description, а поле "Operational data" (и соответствующий ему макрос {EVENT.OPDATA}).

                Comment

                • Whols
                  Senior Member
                  • Jul 2018
                  • 133

                  #8
                  Originally posted by Kos
                  вставить значение элемента данных, которого нет в формуле триггера (просто для наглядности, в качестве комментария к проблеме).
                  Совершенно верно. Причем, зная эту особенность. я включил в выражение триггера мастер-элемент через логическую операцию, но теперь не понимаю, как извлечь содержимое. Раньше это работало через "Oprational data" в макросах {ITEM.VALUE1-2}. Сейчас в оповещении соответствующие поля пустые.
                  Если я правильно понял логику работы макроса, то, начиная с версии 6.09 макрос "{?last(/HOST/TEM.KEY)}" в поле "Operational data" раскроется в нужное значение элемента.​

                  Comment

                  • Whols
                    Senior Member
                    • Jul 2018
                    • 133

                    #9
                    {?last(/HOST/TEM.KEY)} не раскрывается в значение. В шаблон оповещений добавлен {TRIGGER.DESCRIPTION}. В описание триггера вставлен макрос, в сообщении, под стандартными {ITEM.VALUE} (раскрытыми в значение ессно) приходит строка с макросом.

                    Comment

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

                      #10
                      Прошу прощения, что ввёл в заблуждение: макрос {?EXPRESSION} в поле "Description" в свойствах триггера не раскрывается , только в имени триггера.

                      Comment

                      • Whols
                        Senior Member
                        • Jul 2018
                        • 133

                        #11
                        В общем, сделал по старинке, с добавлением второго элемента в выражение триггера и вызовом {ITEM.VALUE2} в шаблоне, как описано в этом посте. (напомню для читающих путь к шаблонам оповещений, Configuration - Action - Trigger Action).

                        Comment

                        Working...