Ad Widget

Collapse

Как создать тригер

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • eldqs
    Junior Member
    • Feb 2014
    • 20

    #1

    Как создать тригер

    Всем привет
    подскажите пожалуйста как можно сделать чтобы заббикс запускал определенный скрипт на unix сервере и получал ответ.
    у меня совсем не получается сделать тригер, может ли кто нибудь скинуть инструкцию.
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2


    >запускал определенный скрипт


    >не получается сделать тригер

    Comment

    • eldqs
      Junior Member
      • Feb 2014
      • 20

      #3
      Спасибо я понял что надо создавать элемент данных а не тригер,
      только я не понял как этот элемент данных создавать, создаю по обычному пишу в ключ адрес скрипта, пишет не правильный ключ.
      подскажите где мне это указывать.
      спасибо

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Originally posted by eldqs
        Спасибо я понял что надо создавать элемент данных а не тригер,
        только я не понял как этот элемент данных создавать, создаю по обычному пишу в ключ адрес скрипта, пишет не правильный ключ.
        подскажите где мне это указывать.
        спасибо
        Тип проверки: внешняя проверка, скрипт положить в ту директорию, которая в конфиге "ExternalScripts". Указывать в виде script_name.

        Например:
        Code:
        root@ks361932~# cat /etc/zabbix/zabbix_server.conf | grep "^ExternalScripts"
        ExternalScripts=/usr/lib/zabbix/externalscripts
        root@ks361932~# cd /usr/lib/zabbix/externalscripts
        root@ks361932externalscripts# ls
        domain  srv1
        root@ks361932externalscripts# cat domain
        whois $1 | grep paid | perl -e 'use Time::Local;$_ = <>; /paid-till:\s*(\d+)\.(\d+)\.(\d+)/; print timelocal(0,0,0,$3,$2-1,$1) - time() . "\n";'
        root@ks361932externalscripts#
        Я ведь правильно понял что скрипт вы хотите выполнять на заббикс-сервере?
        Attached Files

        Comment

        • eldqs
          Junior Member
          • Feb 2014
          • 20

          #5
          Спасибо
          но нет скрипт надо выполнять на проверяемом сервере.

          Comment

          • yukra
            Senior Member
            • Apr 2013
            • 1359

            #6
            Originally posted by eldqs
            Спасибо
            но нет скрипт надо выполнять на проверяемом сервере.
            Тогда используем пользовательские параметры

            Comment

            • aib
              Senior Member
              • Jan 2014
              • 1615

              #7
              Т.е. почти так-же, как со скриптами, только:
              1) Скрипт кладем на проверяемый сервер
              2) в конфигурационный файл на проверяемом сервере добавляем строку с UserParameter={именем_ключа},{именем_скрипта}
              3) рестартуем агента
              4) проверяем, что скрипт выполняется с сервера
              zabbix_get -s {ip_проверяемого_сервера} -k {имя_ключа}

              5) на Zabbix сервере создаем Элемент с ключом, как в описании UserParameter

              6) на основании этого Элемента строим триггеры/графики.
              Sincerely yours,
              Aleksey

              Comment

              • eldqs
                Junior Member
                • Feb 2014
                • 20

                #8
                Очень благодарен!
                сейчас буду пытаться!

                Comment

                • eldqs
                  Junior Member
                  • Feb 2014
                  • 20

                  #9
                  Да сейчас у меня получилось
                  спасибо

                  Comment

                  • eldqs
                    Junior Member
                    • Feb 2014
                    • 20

                    #10
                    тут еще одна загвоздка
                    создал несколько запросов один из них не хочет работать
                    UserParameter=debuglog,tail -f /albis/bis/websphere/bq/work/debuglog\[26\].txt | awk ' {print $10} '
                    писал и без tail
                    UserParameter=debuglog,/albis/bis/websphere/bq/work/debuglog\[26\].txt | awk ' {print $10} '
                    но данные не поступают.
                    где ошибка

                    Comment

                    • yukra
                      Senior Member
                      • Apr 2013
                      • 1359

                      #11
                      Originally posted by eldqs
                      UserParameter=debuglog,tail -f /albis/bis/websphere/bq/work/debuglog\[26\].txt | awk ' {print $10} '
                      "tail -f" открывает файл и читает его, когда данные кончаются он продолжает его читать в ожидании новых данных. То есть выполнение этой команды не закончится само. Поэтому данные и не возвращаются.
                      Originally posted by eldqs
                      UserParameter=debuglog,/albis/bis/websphere/bq/work/debuglog\[26\].txt | awk ' {print $10} '
                      но данные не поступают.
                      где ошибка
                      Я сомневаюсь что файл /albis/bis/websphere/bq/work/debuglog\[26\].txt является исполняемым. То есть получается что команды нет.

                      Объясните пожалуйста что именно Вам нужно получить на выходе.

                      Comment

                      • eldqs
                        Junior Member
                        • Feb 2014
                        • 20

                        #12
                        Теперь понятно почему не работает с tail,

                        постараюсь объяснить, есть файл /albis/bis/websphere/bq/work/debuglog[26].txt
                        число 26 каждый день меняется на дату сегодняшенго дня.
                        в этом файле каждую секунду появляются данные где то в 10 столбцах, там данные типа номер, код, айди, и вот на 10 столбце находится время выполнения запроса в секундах,
                        эти данные каждую секунду добавляются.
                        вот мне нужно только 10 столбец.
                        и график на него.
                        как это можно реализовать целый день голову ломал.
                        в секунду может появляться сразу несколько строк.

                        Comment

                        • aib
                          Senior Member
                          • Jan 2014
                          • 1615

                          #13
                          Как вы будете обрабатывать ситуацию, когда появилось несколько сообщений за секунду?
                          Скрипт должен сохранить их как текстовый массив или создать "несколько" значений Элемента?

                          И в вашей ситуации простого решения не предвидится.
                          Осложняющие факторы?
                          - разное имя лог-файла каждый день.
                          - динамическое обновление файла
                          - многократные обновления файла каждую секунду

                          Возможно, стоит посмотреть в сторону zabbix_sender для принудительной отсылки данных на сервер.
                          Sincerely yours,
                          Aleksey

                          Comment

                          • yukra
                            Senior Member
                            • Apr 2013
                            • 1359

                            #14
                            Originally posted by eldqs
                            Теперь понятно почему не работает с tail,

                            постараюсь объяснить, есть файл /albis/bis/websphere/bq/work/debuglog[26].txt
                            число 26 каждый день меняется на дату сегодняшенго дня.
                            в этом файле каждую секунду появляются данные где то в 10 столбцах, там данные типа номер, код, айди, и вот на 10 столбце находится время выполнения запроса в секундах,
                            эти данные каждую секунду добавляются.
                            вот мне нужно только 10 столбец.
                            и график на него.
                            как это можно реализовать целый день голову ломал.
                            в секунду может появляться сразу несколько строк.
                            Если данные в 10том столбце примерно одинаковые (условно говоря с утра запрос выполняется за 1 секунду, а вечером за 10 секунд) и вы хотите график что бы "видеть тенденцию", то можно обойтись командой
                            Code:
                            tail -n 1 /albis/bis/websphere/bq/work/debuglog[26].txt | awk '{print $10}'
                            Которая будет каждый раз смотреть только в последнюю имеющуюся строчку (вероянее всего часть данных мы потеряем, но график будет "приближен к реальности" если нагрузка растет и падает "плавно").

                            Если же в один и тот же запрос в один и тот же период времени может выполняться как 1 секунду так и 10, и нам нужно "ничего не потерять" то действительно лучше писать свой скрипт на перле\питоне\баше который будет читать нужный файл и пулять данные через zabbix_sender.

                            то, что день постоянно меняется - не проблема совершенно.
                            Code:
                            yukra@yukra-ThinkPad ~/123 $ ls
                            test_26.txt  test_27.txt  test_28.txt
                            yukra@yukra-ThinkPad ~/123 $ cat test_26.txt 
                            26
                            yukra@yukra-ThinkPad ~/123 $ cat test_27.txt 
                            27
                            yukra@yukra-ThinkPad ~/123 $ cat test_28.txt 
                            28
                            yukra@yukra-ThinkPad ~/123 $ cat test_`date +%d`.txt
                            27
                            yukra@yukra-ThinkPad ~/123 $ date
                            Чт. февр. 27 10:44:53 MSK 2014
                            yukra@yukra-ThinkPad ~/123 $

                            Comment

                            • eldqs
                              Junior Member
                              • Feb 2014
                              • 20

                              #15
                              большое спасибо
                              да надо бы попробовать с ежесекундной обработкой
                              никогда не писал его для unix
                              имеете ввиду написать такой скрипт
                              Code:
                              -bash-4.2$
                              tail -n 1 /albis/bis/websphere/bq/work/debuglog[`date +%d`].txt | awk '{print $10}'
                              думаю что правильно получилось,
                              не могу сейчас это проверить.
                              а еще кстати будет ли он принимать цифры если после цифры будет стоять запятая,
                              то есть в этом логе в 10 столбце число и сразу запятая(1,)

                              Comment

                              Working...