Ad Widget

Collapse

Имя триггера, макрос и regsub

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nullemotion
    Junior Member
    • Jul 2017
    • 14

    #1

    Имя триггера, макрос и regsub

    Есть журнал событий сервера, с которого заббикс забирает события с определенным кодом.
    Есть триггеры, срабатывающие на определенные коды. Имена триггеров должны выглядеть информативно, формируясь на основе содержимого события.
    Триггер срабатывает, в телеграм уходит имя триггера - {TRIGGER.NAME}.
    На главной странице заббикса в последних 20 событиях (или в списке сработавших триггеров) должно отображать оно же. Но не отображается. Вернее, отображается с ошибкой.

    Пример.
    Текст события:
    [не интересующий нас текст]
    Имя учетной записи: i.i.ivanov
    [не интересующий нас текст]
    Имя учетной записи: s.s.sidorov
    [не интересующий нас текст]


    Имя триггера:
    Включена учетная запись: {{ITEM.VALUE}.iregsub("Имя учетной записи:\s*([a-z.]*).*Имя учетной записи:\s*([a-z.]*)", "\1 включил \2")}


    В телеграм уходит сообщение:
    Включена учетная запись: i.i.ivanov включил s.s.sidorov

    В веб-интерфейсе заббикса триггер выглядит так:
    Включена учетная запись: включил

    Выглядит, как будто макрос пытается примениться к пустой строке или к строке, которая не удовлетворяет регулярному выражению. Как побороть?
  • nullemotion
    Junior Member
    • Jul 2017
    • 14

    #2
    В итоге всё заработало вот в таком виде:
    Включена учетная запись: {{ITEM.VALUE}.iregsub("Имя учетной записи:\s*([a-z.]*)", "\1")} -> {{ITEM.VALUE}.iregsub("\s([a-z.]*)\s*Домен учетной записи:\s*MYDOMEN$", "\1")}
    Пришлось разбить на две регулярки.

    Грешу на квантификацию, которая для оповещений ленивая, а для веб-интерфейса жадная.

    Comment

    • ya.asoloviev
      Junior Member
      • May 2015
      • 25

      #3
      Добрый день.

      Почему то в имени триггера отображается последнее значение метрики (срабатывает макрос {ITEM.VALUE}), при этом все это вместе с параметрами iregsub заключено в фигурные скобки. Т.е. не распознается, что это все макрос содержащий функцию с параметрами.
      Значение макроса который я задал: {{ITEM.VALUE}.iregsub("ta-name type=4\s*value=STRING:\s*"(.*)"", "\1")}
      Пример трапа откуда берется значение:
      Code:
      15:06:06 2021/03/10 PDU INFO:
      errorstatus 0
      version 1
      VARBINDS:
      DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (113501014) 13 days, 3:16:50.14
      SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: SYN-NOTIFICATION-MIB::syn-notification-attack-up-standard
      SYN-NOTIFICATION-MIB::syn-attack-ta-id type=2 value=INTEGER: 0
      [B]SYN-NOTIFICATION-MIB::syn-attack-ta-name type=4 value=STRING: "[COLOR=#e74c3c]Leader[/COLOR]"[/B]
      SYN-NOTIFICATION-MIB::syn-attack-id type=2 value=INTEGER: 549329
      SYN-NOTIFICATION-MIB::syn-attack-prefix type=4 value=STRING: "ip"
      SYN-NOTIFICATION-MIB::syn-attack-object-id type=2 value=INTEGER: 1544
      SYN-NOTIFICATION-MIB::syn-attack-object-name type=4 value=STRING: "-"
      SYN-NOTIFICATION-MIB::syn-attack-url type=4 value=STRING: ""
      SYN-NOTIFICATION-MIB::syn-attack-info type=4 value=STRING: "IP Fragment (IN): 4.37 Gbps"
      Версия Zabbix 5.0.4

      Click image for larger version  Name:	iregsub_4.jpg Views:	1 Size:	275.0 KB ID:	420399
      Прикладываю пример триггера, его настройки и значение элемента данных (данные приходят по трапам):
      1.
      Click image for larger version  Name:	iregsub_1.jpg Views:	1 Size:	103.2 KB ID:	420400
      2.
      Click image for larger version  Name:	iregsub_2.jpg Views:	0 Size:	72.8 KB ID:	420396
      3.
      Click image for larger version  Name:	iregsub_3.jpg Views:	1 Size:	94.1 KB ID:	420401
      Last edited by ya.asoloviev; 10-03-2021, 16:44.

      Comment

      • ya.asoloviev
        Junior Member
        • May 2015
        • 25

        #4
        Может быть кто то скинет свой пример? Такое ощущение, что у меня просто где то ошибка. Но я уже копировал другие примеры, результат тот же.
        Может быть я не в том месте применяю, но указано в документации, что в названии триггера можно.

        Comment

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

          #5
          Значение макроса который я задал:
          Code:
          {{ITEM.VALUE}.iregsub("ta-name type=4\s*value=STRING:\s*"(.*)"", "\1")}
          Подозреваю, что ошибка здесь, поскольку незаэкранированная кавычка закрывает первый аргумент макрофункции:
          Code:
          {{ITEM.VALUE}.iregsub("ta-name type=4\s*value=STRING:\s*"(.*)"", "\1")}
                                ^_________________________________^
                                                                  ^
          Ну и чуть дальше - вторая незаэкранированная кавычка.
          Кстати, подозреваю, что при правильной работе "жадной" квантификации в группу "(.*)" может попасть всё до последней кавычки в последней строке (но это уже надо смотреть по факту, как будет работать).

          Comment

          • ya.asoloviev
            Junior Member
            • May 2015
            • 25

            #6
            Спасибо! Одновременно с Вами пришел к такому же выводу, протестировал, вывел правильное выражение (отметил красным цветом):

            {{ITEM.VALUE}.iregsub("ta-name type=4\s*value=STRING:\s*\"(.*)\"", "\1")}

            Comment

            Working...