Ad Widget

Collapse

Работа с внешней проверкой.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Andrey_79
    Senior Member
    • Sep 2008
    • 173

    #1

    Работа с внешней проверкой.

    Добрый день. Нужна ваша помощь в следующем.
    Есть DSLAM (коммутатор с множеством портов), DSLAM имеет IP адрес.
    К DSLAM подключено множество клиентов. По SNMP необходимо опросить 5 параметров порта клиента и если какой то из параметров изменился сообщить об этом. Завожу абонентов следующим образом:
    Host: DSLAM1_192.168.1.1 к нему прикрепляю Items с абонентами.
    Items: Абонент1, Абонент2, Абонент3...
    Все абоненты уже заведены и по snmp опрашиваются, но только по одному параметру. Я написал скрипт который выполняет все необходимые действия и выдает результат. Скрипту передаются параметры через элемент данных, внешнюю проверку script.php [IP port etalon_snr etalon_att].
    Теперь проблема в следующем. Я хочу создать шаблон с этим скриптом, и прикрепить к оборудованию но никак не могу придумать как передать ему параметры (хотя бы номер порта). Помогите, пожалуйста.
  • Andrey_79
    Senior Member
    • Sep 2008
    • 173

    #2
    Подскажите, что не правильно делаю уже устал бороться.
    В zabbix_agentd.conf указываю
    UserParameter=hw_port,/usr/local/zabbix/php/scripts/externalcheks/hw.php $1 $2 $3 $4 $5 $6 $7

    В элементе данных выбираю Zabbix agent и ключ прописываю
    hw_port[192.168.1.2 201441472 35.4 32.5 20 9.4 N160/320gdmt]

    в логах получаю
    31068:20091210:170408.017 Item [hw-v1-56s1 _ 192.168.1.2:hw.port[192.168.1.2 201441472 35.4 32.5 20 9.4 N160/320gdmt]] error:
    Get value from agent failed: Cannot connect to [192.168.1.2:0] [Can't assign requested address]

    Comment

    • dotneft
      Senior Member
      • Nov 2008
      • 699

      #3
      Originally posted by andrey_79
      ïîäñêàæèòå, ÷òî íå ïðàâèëüíî äåëàþ óæå óñòàë áîðîòüñÿ.
      â zabbix_agentd.conf óêàçûâàþ
      userparameter=hw_port,/usr/local/zabbix/php/scripts/externalcheks/hw.php $1 $2 $3 $4 $5 $6 $7

      â ýëåìåíòå äàííûõ âûáèðàþ zabbix agent è êëþ÷ ïðîïèñûâàþ
      hw_port[192.168.1.2 201441472 35.4 32.5 20 9.4 n160/320gdmt]

      â ëîãàõ ïîëó÷àþ
      31068:20091210:170408.017 item [hw-v1-56s1 _ 192.168.1.2:hw.port[192.168.1.2 201441472 35.4 32.5 20 9.4 n160/320gdmt]] error:
      Get value from agent failed: Cannot connect to [192.168.1.2:0] [can't assign requested address]
      ïîõîæå ïîðò ó õîñòà êðèâîé 0, ïîìåíÿéòå íà 10050 (ñòàíäàðòíûé) â âåá èíòåðôåéñå

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Можно попробовать использовать конструкцию
        UserParameter=key[*],command
        http://www.zabbix.com/documentation/...r_parameters?s[]=userparameter
        В данном случае
        UserParameter=hw_port[*],/usr/local/zabbix/php/scripts/externalcheks/hw.php $1 $2 $3 $4 $5 $6 $7
        Last edited by dima_dm; 10-12-2009, 19:21.

        Comment

        • Andrey_79
          Senior Member
          • Sep 2008
          • 173

          #5
          Originally posted by dima_dm
          Можно попробовать использовать конструкцию
          UserParameter=key[*],command
          http://www.zabbix.com/documentation/...r_parameters?s[]=userparameter
          В данном случае
          UserParameter=hw_port[*],/usr/local/zabbix/php/scripts/externalcheks/hw.php $1 $2 $3 $4 $5 $6 $7
          Подскажите, я правильно понимаю, что параметры заданные в элементе данных передадутся скрипту указанному в UserParameter. т.е. должно получиться следующее:
          UserParameter=hw_port,/usr/local/zabbix/php/scripts/externalcheks/hw.php 192.168.1.2 201441472 35.4 32.5 20 9.4 n160/320gdmt
          и этот запрос должен уйти с сервера на 192.168.1.2.

          Comment

          • dima_dm
            Senior Member
            • Dec 2009
            • 2697

            #6
            т.е. должно получиться следующее:
            UserParameter=hw_port,/usr/local/zabbix/php/scripts/externalcheks/hw.php 192.168.1.2 201441472 35.4 32.5 20 9.4 n160/320gdmt
            и этот запрос должен уйти с сервера на 192.168.1.2.
            Опять квадратные скобки со звёздочкой забыли[*]
            UserParameter=hw_port[*],/usr/local/zabbix/php/scripts/externalcheks/hw.php 192.168.1.2 201441472 35.4 32.5 20 9.4 n160/320gdmt
            Куда уйдёт запрос, это уже в скрипте hw.php написано, как он входные параметры будет обрабатывать.

            Comment

            • Andrey_79
              Senior Member
              • Sep 2008
              • 173

              #7
              Кажется понял, почему не работает. При тех настройках которые сейчас, сервер пытается найти клиента на удаленной машине и передать ему все параметры, а у меня агент на сервере и передать параметры нужно ему. Как это сделать?
              Элемент данных есть для
              192.168.1.2
              ключ hw_port[192.168.1.2 201441472 35.4 32.5 20 9.4 N160/320gdmt]
              192.168.1.3
              ключ hw_port[192.168.1.3 2111 38.4 31.5 25 8.4 N161/320gdmt]
              192.168.1.4
              ключ hw_port[192.168.1.4 105441472 38.4 22.5 27 9.8 N160/320gdmt]
              на устройствах 192.168.1.хх агентов нет, они опрашиваются по snmp скриптом hw.php.
              Все эти запросы должны идти к агенту установленному на сервере, а он запускать в свою очередь скрипт с переданными из элемента данных.

              Comment

              • dima_dm
                Senior Member
                • Dec 2009
                • 2697

                #8
                Originally posted by Andrey_79
                Кажется понял, почему не работает. При тех настройках которые сейчас, сервер пытается найти клиента на удаленной машине и передать ему все параметры, а у меня агент на сервере и передать параметры нужно ему. Как это сделать?
                Элементарно. Нужно настраивать Узел сети, и указать IP машины, где установлен Zabbix Agent. А дальше создать много элементов данных с разными параметрами. В Zаbbix агент реализован удобный механизм тестирования параметров
                /usr/local/sbin/zabbix_agentd -t key
                Чтобы проверить, что всё настроено правильно, хватает прав на исполнение скрипта и т.д.

                Полезный совет:
                Я, обычно, такие задачи по регистрации однотипных элементов данных автоматизирую. Т.е. создаю один элемент, экспортирую его в XML (Через Настройка->Импорт/Экспорт). Далее изучаю конфигурации XML, и пишу скрипт для создания XML файла для всех необходимых элементов, а дальше загружаю конфигурацию Настройка->Импорт/Экспорт). Быстро и удобно.
                Last edited by dima_dm; 11-12-2009, 08:16.

                Comment

                • Andrey_79
                  Senior Member
                  • Sep 2008
                  • 173

                  #9
                  Спасибо за подсказку, никак не мог сообразить как заставить агента на сервере запускать нужный мне скрипт. В результате создал еще один хост с IP сервера и уже к нему подключаю нужные Item и triggers.

                  Пытался до этого через внешнюю проверку сделать тоже самое, не получилось, скорее всего из-за того, что через внешнюю проверку можно передать только один параметр.

                  Comment

                  • Andrey_79
                    Senior Member
                    • Sep 2008
                    • 173

                    #10
                    Подскажите, а можно как-то сделать шаблон, только так, что бы поле ключа можно было редактировать. Например, тот же скрипт в поле ключа
                    hw.php [$port], триггеры одни и те же, а номер порта для каждого элемента данных можно было изменять (соответственно номер порта должен автоматически изменится и в триггере).

                    Comment

                    • dima_dm
                      Senior Member
                      • Dec 2009
                      • 2697

                      #11
                      В Zabbix 1.8 появились macros, подробности в документации.
                      http://www.zabbix.com/documentation/...onfig/macros?s[]=macros
                      Но мне кажется, что Импорт/Экспорт, как я написал выше, будет идеальным решением в данном случае.

                      Comment

                      • Andrey_79
                        Senior Member
                        • Sep 2008
                        • 173

                        #12
                        Originally posted by dima_dm
                        В Zabbix 1.8 появились macros, подробности в документации.
                        http://www.zabbix.com/documentation/...onfig/macros?s[]=macros
                        Но мне кажется, что Импорт/Экспорт, как я написал выше, будет идеальным решением в данном случае.
                        Вы не подскажите, можно ли скрипту передать значение поля itemsid из таблицы items и насчет {ITEM.NAME<1-9>}, что означает <1..9>?

                        Comment

                        • dotneft
                          Senior Member
                          • Nov 2008
                          • 699

                          #13
                          Âñå âûõîäíûå ïåðåâîäèë ìàíóàë http://www.zabbix.com/documentation/.../config/macros

                          Ïî ïîâîäó {ITEM.NAME<1-9>}, ÷òî îçíà÷àåò <1..9>?
                          1..9 îçíà÷àåò ïîðÿäêîâûé íîìåð ýëåìåíòà äàííûõ â âûðàæåíèè òðèããåðà. Âî êàê)

                          Comment

                          • Andrey_79
                            Senior Member
                            • Sep 2008
                            • 173

                            #14
                            Originally posted by dotneft
                            âñå âûõîäíûå ïåðåâîäèë ìàíóàë http://www.zabbix.com/documentation/.../config/macros

                            ïî ïîâîäó {item.name<1-9>}, ÷òî îçíà÷àåò <1..9>?
                            1..9 îçíà÷àåò ïîðÿäêîâûé íîìåð ýëåìåíòà äàííûõ â âûðàæåíèè òðèããåðà. âî êàê)
                            Перевести, я тоже перевел, вот только как пользоваться не понял.

                            Comment

                            • Andrey_79
                              Senior Member
                              • Sep 2008
                              • 173

                              #15
                              Подскажите, а можно ли в элементе данных передать скрипту имя это элемента данных. Например, при выборе агента в поле ключа указать script[ITEM.NAME]. Лучше бы мне конечно передавать значение script[itemid], но вот как пока для меня остается загадкой.

                              Comment

                              Working...