Ad Widget

Collapse

Макрос в имени триггера

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MetrS
    Member
    • Mar 2016
    • 38

    #1

    Макрос в имени триггера

    Всем привет!

    Получаю уведомления о l2tp подключении через микротик-сислогсервер(с забикс агентом).

    Строка вида:
    22 17:49:03 192.168.1.1 l2tp,ppp,info,account n.v.ivanov logged in, 10.0.1.99

    В заголовке почты хочется увидеть некоторую информацию: логин, ip.
    Попробовал через пользовательские макросы:
    {$MACRO}=([a-zA-Z]\.){2}[a-zA-Z]{2,}
    Затем в теме подставляю макрос, а не работает.

    Можно ли это вообще делать? В имя триггера впихивать распарсенную строку?
  • aib
    Senior Member
    • Jan 2014
    • 1615

    #2
    увы, нет
    Единственная возможность использовать макрос - это {item.value1}-{item.value9}
    Sincerely yours,
    Aleksey

    Comment

    • glebs.ivanovskis
      Senior Member
      • Jul 2015
      • 237

      #3
      В 3.2 есть возможность вытаскивать из {item.value} регулярным выражением всё, что душе угодно.

      Comment

      • Grape
        Junior Member
        • Nov 2016
        • 3

        #4
        Приведите, пожалуйста, пример вытаскивания нужной информации из {ITEM.VALUE} для последующей вставки в имя триггера?
        Вывод {ITEM.VALUE} представляет собой строку из SNMP-лога:
        Code:
        29.11.2016 09:47:26 .1.3.6.1.4.x.x.x.x Normal "Status Events" 10.x.x.x - 10.x.x.x Port 105 PortDown
        Триггер срабатывает при появлении в строке лога текста "PortDown", и в его имя необходимо вставить изменяющийся номер порта, в данном конкретном случае - 105. Было бы неплохо, например, задать правило, вставляющее в имя триггера текст после "Port " и перед " PortDown".

        Comment

        • glebs.ivanovskis
          Senior Member
          • Jul 2015
          • 237

          #5
          Ну, если мои регулярные выражения мне не изменяют, то как-то так:
          Code:
          {{ITEM.VALUE}.regsub("Port ([0-9]+) PortDown", "\1")}
          Подробнее тут.

          Comment

          • MetrS
            Member
            • Mar 2016
            • 38

            #6
            Originally posted by glebs.ivanovskis
            Ну, если мои регулярные выражения мне не изменяют, то как-то так:
            Code:
            {{ITEM.VALUE}.regsub("Port ([0-9]+) PortDown", "\1")}
            Подробнее тут.
            Не изменяет https://regex101.com/r/TaYvB4/1

            Спасибо, будем обновляться.

            Comment

            • glebs.ivanovskis
              Senior Member
              • Jul 2015
              • 237

              #7
              Кстати, имейте в виду, что PCRE в Zabbix'е только на стороне фронтенда, сервер использует POSIX ERE. Так что аккуратнее со всякими \d

              Comment

              • Grape
                Junior Member
                • Nov 2016
                • 3

                #8
                Я правильно понимаю, что мне нужно в поле имени триггера вставить?:
                Code:
                {{ITEM.VALUE}.regsub("Port ([0-9]+) PortDown", "\1")}
                UPD: Понимаю правильно, всё заработало. Спасибо за помощь!
                Last edited by Grape; 29-11-2016, 16:51.

                Comment

                • MetrS
                  Member
                  • Mar 2016
                  • 38

                  #9
                  Originally posted by Grape
                  Я правильно понимаю, что мне нужно в поле имени триггера вставить?:
                  Code:
                  {{ITEM.VALUE}.regsub("Port ([0-9]+) PortDown", "\1")}
                  UPD: Понимаю правильно, всё заработало. Спасибо за помощь!
                  Я протестирую только завтра, но, возможно, вам стоит добавить в Узле сети макрос http://prntscr.com/dd8clf
                  Затем, указать $TEST в имени триггера.

                  Comment

                  • glebs.ivanovskis
                    Senior Member
                    • Jul 2015
                    • 237

                    #10
                    Originally posted by MetrS
                    Я протестирую только завтра, но, возможно, вам стоит добавить в Узле сети макрос http://prntscr.com/dd8clf
                    Затем, указать $TEST в имени триггера.
                    Это не будет работать. Макросы не раскрываются рекурсивно. В очень редких случаях работают макросы, вложенные в другие макросы. (Типа {{HOST.HOST}:{ITEM.KEY}.last()})

                    Comment

                    • Viewer
                      Senior Member
                      • Oct 2012
                      • 131

                      #11
                      У кого нибудь получилось выудить значение {{Item.Value}.regsub(...)} в имя триггера в письме-уведомлении ?

                      В веб-интерфейсе вижу, что макрос в имени тригера раскрывается(на закладке Мониторинг - тригеры Имя отображается как надо ), а в уведомлении на почту в Subject:{Triger.Name} в имени тригера макрос не раскрывается, в этом месте пусто.

                      Comment

                      • glebs.ivanovskis
                        Senior Member
                        • Jul 2015
                        • 237

                        #12
                        Фронтенд и сервер пользуются разными регулярными выражениями - pcre и posix ere, соответственно. Возможно, с точки зрения сервера Ваше выражение просто ничего не матчит.

                        Comment

                        • Viewer
                          Senior Member
                          • Oct 2012
                          • 131

                          #13
                          Originally posted by glebs.ivanovskis
                          Фронтенд и сервер пользуются разными регулярными выражениями - pcre и posix ere, соответственно. Возможно, с точки зрения сервера Ваше выражение просто ничего не матчит.
                          Интересная информация)

                          Я из лога Security виндовых серверов выуживаю неудачные попытки логина. regsub-ом извлекаю ip адрес.

                          Ссылка на выражение - https://regex101.com/r/TaYvB4/5

                          Она работает на стороне фронтенда (отображается в вебинетфейсе), но не работает в письме.
                          Как проверить posix ere ? Не нахожу способа, очень редко их касаюсь.

                          Comment

                          • glebs.ivanovskis
                            Senior Member
                            • Jul 2015
                            • 237

                            #14
                            Ну да, \s и \S - это PCRE-шные штучки. Первую точно можно заменить на универсальную конструкцию [[:space:]], вместо второй возможно сработает [^[:space:]]. Для проверки можно использовать grep с опцией -E.

                            Comment

                            • Viewer
                              Senior Member
                              • Oct 2012
                              • 131

                              #15
                              Спасибо за подсказки, сейчас поразбираюсь.

                              Кстати, есть вот такая информация про заббикс 3.4. Нашёл сейчас.

                              5.6 PCRE library for regular expressions

                              Regular expression support in Zabbix has been switched from POSIX extended regular expressions to Perl Compatible Regular Expressions (PCRE) for enhanced regular expressions and consistency with the frontend.

                              Comment

                              Working...