Ad Widget

Collapse

Настройка Zabbix SNMP traps

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vvlad
    Member
    • Apr 2011
    • 83

    #31
    Вы будете смеяться, но это:

    (({Test Node:Trap.regexp(60.*ERROR)})#0)

    переводит тригер в состояние ПРОБЛЕМА, а

    (({TRIGGER.VALUE}=1) & ({Test Node:Trap.regexp(60.*OK)}=0))

    возвращает его обратно. Почему так, не спрашивайте. Но тут все по Пруткову: "не верь глазам своим"...

    Comment

    • Jimson
      Senior Member
      • Jan 2008
      • 1327

      #32
      Похоже вы правы, "любая строка не содержащяя 60.*ok" дает истину, т.е. оставит проблему, видимо я не о том чем то подумал.
      Last edited by Jimson; 31-10-2013, 12:02.

      Comment

      • vvlad
        Member
        • Apr 2011
        • 83

        #33
        Originally posted by Jimson
        P.P.S. что касается производительности, то строить какие то правила "правильно/неправильно" можно только на основе документации или тестам, не стоит полагать, что "один regexp лучше двух", самый простой пример удаление пробельных символов в начале и конце строки в перловых регекспах s/^\s*(.+?)\s*$/$1/s будет намного медленне чем два последовательных регекспа s/^\s+//s; s/\s+$//s;
        Не спорю. Но ремарка моя - к конкретному случаю, достаточно плоскому поиску по шаблону. Нагромождение regexp() тут вряд ли дает заметный выигрыш в производительности, но однозначно делает выражение менее прозрачным, более сложным для понимания.

        Comment

        • vvlad
          Member
          • Apr 2011
          • 83

          #34
          Так, думаю, более читаемо:

          ({Test Node:Trap.regexp(60.*ERROR)}=1)
          |
          ({TRIGGER.VALUE}=1 & {Test Node:Trap.regexp(60.*OK)}#1)

          Читать:

          Тригер в состоянии проблема, если

          последнее значение Test Node:Trap соответствует 60.*ERROR,

          ИЛИ

          он уже в состоянии проблема И последнее значение Test Node:Trap не соответствует 60.*OK

          Comment

          • natalia
            Senior Member
            • Apr 2013
            • 159

            #35
            Originally posted by vvlad
            Так, думаю, более читаемо:

            ({test node:trap.regexp(60.*error)}=1)
            |
            ({trigger.value}=1 & {test node:trap.regexp(60.*ok)}#1)

            Читать:

            Тригер в состоянии проблема, если

            последнее значение test node:trap соответствует 60.*error,

            ИЛИ

            он уже в состоянии проблема И последнее значение test node:trap не соответствует 60.*ok
            Супер ! у меня на простом примере тоже работает
            спасибо !

            Comment

            • natalia
              Senior Member
              • Apr 2013
              • 159

              #36
              Нужна еще помощь !

              трап приходит и пересылается :

              zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k zabbixTrapKey -o 'params=[1]:"click.serviceStatus.ComponentStatusEvent", [2]:"host10", [3]:"NA", [4]:"Component: EventFileWrit", [5]:"EventFileWriter", [6]:"there is a problem with", [7]:"click.logging.ContextLog", [8]:"EventFileWriter", [9]:"OK", [10]:"public", [11]:.1.3.6.1.4.1.12345.60'

              тригер :
              ({Template SNMP:zabbixTrapKey.regexp(\[9\]:"ERROR".*60)}=1)|({TRIGGER.VALUE} = 1 & {Template SNMP:zabbixTrapKey.regexp(\[9\]:"OK".*60)}#1)

              мне нужно что бы алерт (триггер name) был param [6] + [8] + on {HOST.NAME} : "there is a problem with EventFileWriter on host10"

              это возможно ?

              Спасибо !

              Comment

              • natalia
                Senior Member
                • Apr 2013
                • 159

                #37
                Originally posted by natalia
                Нужна еще помощь !

                трап приходит и пересылается :

                zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k zabbixTrapKey -o 'params=[1]:"click.serviceStatus.ComponentStatusEvent", [2]:"host10", [3]:"NA", [4]:"Component: EventFileWrit", [5]:"EventFileWriter", [6]:"there is a problem with", [7]:"click.logging.ContextLog", [8]:"EventFileWriter", [9]:"OK", [10]:"public", [11]:.1.3.6.1.4.1.12345.60'

                тригер :
                ({Template SNMP:zabbixTrapKey.regexp(\[9\]:"ERROR".*60)}=1)|({TRIGGER.VALUE} = 1 & {Template SNMP:zabbixTrapKey.regexp(\[9\]:"OK".*60)}#1)

                мне нужно что бы алерт (триггер name) был param [6] + [8] + on {HOST.NAME} : "there is a problem with EventFileWriter on host10"

                это возможно ?

                Спасибо !
                если кому то интересно ...
                нет возможности использовать только часть "key value" (string ) в trigger name, я заполнила FEATURE REQUEST :

                Comment

                • Jimson
                  Senior Member
                  • Jan 2008
                  • 1327

                  #38
                  Не понятно.
                  Имя триггера это просто имя, от того что у него будут разные имена в разный момент времени не значит что события возникнут разные.

                  Допустим у вас приходит трап
                  "there is a problem with EventFileWriter on host10",
                  у вас срабатывает триггер, а спустя какое то время приходит трап
                  "there is a problem with EventOtherComponent on host10"
                  и что произойдет?

                  Если же вам нужны алармы раздельные по "компонентам", то вы должны создать отдельно триггер для "EventFileWriter" и отдельно для "EventOtherComponent" и в этом случае вы можете задать им имена явно.

                  Comment

                  • natalia
                    Senior Member
                    • Apr 2013
                    • 159

                    #39
                    Originally posted by jimson
                    Не понятно.
                    Имя триггера это просто имя, от того что у него будут разные имена в разный момент времени не значит что события возникнут разные.

                    Допустим у вас приходит трап
                    "there is a problem with eventfilewriter on host10",
                    у вас срабатывает триггер, а спустя какое то время приходит трап
                    "there is a problem with eventothercomponent on host10"
                    и что произойдет?

                    Если же вам нужны алармы раздельные по "компонентам", то вы должны создать отдельно триггер для "eventfilewriter" и отдельно для "eventothercomponent" и в этом случае вы можете задать им имена явно.
                    вы правы, мне нужны алармы раздельные по "компонентам" , но я не знаю все возможные компоненты заранее : они меняются,добавляются новые и тд. - все что мне надо это взять название компоненты из трапа (и это значит разделить "key value" на переменние )
                    Last edited by natalia; 20-11-2013, 09:54.

                    Comment

                    • Jimson
                      Senior Member
                      • Jan 2008
                      • 1327

                      #40
                      Originally posted by natalia
                      вы правы, мне нужны алармы раздельные по "компонентам" , но я не знаю все возможные компоненты заранее : они меняются,добавляются новые и тд. - все что мне надо это взять название компоненты из трапа (и это значит разделить "key value" на переменние )
                      Вы сами себе противоречите, так вам нужны алармы раздельные по компонентам или достаточно одного триггера с рандомным названием зависящим от того что было в первом трапе вызвавшем его срабатывание?

                      Comment

                      • natalia
                        Senior Member
                        • Apr 2013
                        • 159

                        #41
                        Originally posted by Jimson
                        Вы сами себе противоречите, так вам нужны алармы раздельные по компонентам или достаточно одного триггера с рандомным названием зависящим от того что было в первом трапе вызвавшем его срабатывание?
                        Тригер будет один для трапа "60":
                        ({Template SNMP:zabbixTrapKey.regexp("problem".*60)}=1)|({TRI GGER.VALUE} = 1 & {Template SNMP:zabbixTrapKey.regexp("OK".*60)}#1)

                        Трап :
                        [1]...[5]:"EventFileWriter", [6]:"there is a problem with", ... [9]:.1.3.6.1.4.1.12345.60'

                        А алерт будет :
                        "there is a problem with EventFileWriter on host10"

                        другой трап "60" с "EventOtherComponent" поменяет алерт на :
                        "there is a problem with EventOtherComponent on host10"
                        Last edited by natalia; 20-11-2013, 10:25.

                        Comment

                        • Jimson
                          Senior Member
                          • Jan 2008
                          • 1327

                          #42
                          Originally posted by natalia
                          другой трап "60" с "EventOtherComponent" поменяет алерт на :
                          "there is a problem with EventOtherComponent on host10"
                          Меняется только название EVENT, никаких "алертов" вообще в забиксе нету, при этом это название формируется в фронтэнде, а данные берутся из history, как следствие если данные из history почистятся то в эвентах в названиях вы увидите не раскрытые макросы.

                          Если вас устраивает то что вы написали выше, то формируйте строку вашу из трапа, например "[E60] there is a problem with EventOtherComponent on host10" вместо той портянки "params=...", маркер "[E60]" позволит вам сформировать условие триггера, а в названии просто укажете "{ITEM.VALUE}".

                          P.S. Хотя все это чушь, ведь когда вам прийдет "OK" трап для компонента EventFileWriter вы переведете триггер в состояние "OK", но при этом у вас фактически проблема на "EventOtherComponent" никуда не делать и триггер должен был остаться в состоянии ПРОБЛЕМА. Вообщем или я туплю или вам стоит вернуться в начало вашего треда и внимательно перечитать все что тут писали и вы и вам.

                          Comment

                          Working...