Ad Widget

Collapse

разные триггеры по одному шаблону

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sgaponen
    Junior Member
    • Dec 2014
    • 5

    #1

    разные триггеры по одному шаблону

    Имеются в наблюдении PDH мультиплексоры Olencom FM-16M. Данные устройства шлют SNMP трапы на сервер с установленным snmptrapd (Net-SNMP 5.3.2.2), который с свою очередь передает их в самописный bash скрипт (просто убираются лишние поля и OID-ы). Этот скрипт пересылает с использованием zabbix_sender с определённым ключем (snmptraps). На этом сервере установлен zabbix 2.2.8. Трапы в zabbix попадают в виде строки (тип данных zabbix траппер, описанных в шаблоне(FM-16M)). Строка содержит следующий текст:
    Code:
    E1-N : LOS, Line------------------------------ 23:59:59 12/31/2014
    E1-N : LOS, Lineclear------------------------ 23:59:59 12/31/2014
    N - номер порта, первая строка соответствует аварии, вторая очистке.
    Для каждого отдельного порта сформирован триггер (благо их не больше 16) вида:
    для 1
    Code:
    ({TRIGGER.VALUE}=0)&({FM-16M:snmptraps.str("E1-1 : LOS, Line")}=1)|({TRIGGER.VALUE}=1)&({FM-16M:snmptraps.str("E1-1 : LOS, Lineclear")}=0)
    для 2
    Code:
    ({TRIGGER.VALUE}=0)&({FM-16M:snmptraps.str("E1-2 : LOS, Line")}=1)|({TRIGGER.VALUE}=1)&({FM-16M:snmptraps.str("E1-2 : LOS, Lineclear")}=0)
    и т.д.

    Вопрос следующий: можно ли как-то описать один триггер на все порты через regexp?
  • pavelikus
    Junior Member
    • Jan 2015
    • 4

    #2
    изучи бибилиотеку regexp там ничего сложного

    Только имей ввиду, здесь же на форуме очень давно кто то уже задавал вопросы о неработоспособности некоторых шаблонов regexp

    Вот ответ:

    Code:
    В zabbix используется extended regexp, в отличии от perl regexp ни POSIX, ни extended не поддерживают нотацию классов через обратный слеш (\d, \w, etc). Валидация в "морде" же работает потому, что валидатор написан на PHP, т.е. валидатор и сервер zabbix это разные реализации regexp.
    Короче, замените \d на [0-9] или [[:digit:]] и должно заработать.

    Comment

    • pzabortsev
      Senior Member
      • Dec 2012
      • 338

      #3
      Originally posted by sgaponen
      Code:
      ({TRIGGER.VALUE}=0)&({FM-16M:snmptraps.str("E1-1 : LOS, Line")}=1)|({TRIGGER.VALUE}=1)&({FM-16M:snmptraps.str("E1-1 : LOS, Lineclear")}=0)
      На мой взгляд в выражение триггера закралась небольшая ошибка: функция str("E1-1 : LOS, Line")}=1 будет верна и для аварии, и для очистки.

      Лучше заменить это выражение на такое:
      str("E1-1 : LOS, Line-")}=1

      Ну а про regexp Вам уже ответили. Проверяте... Хотя я не вижу в этом смысла. Лучше настройте LLD на эти порты, и триггеры будут добавляться сами.

      Comment

      Working...