Ad Widget

Collapse

Расширяем snmp lld скриптами

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PacMan
    Junior Member
    • Sep 2014
    • 14

    #151
    Originally posted by jimson
    А смысл в v3 для сбора readonly данных? Только нагрузка на агента выше раза в два.
    Для безопасности.

    Comment

    • Berserkr
      Junior Member
      • Mar 2015
      • 2

      #152
      В чём ошибка я кажется нашел, но так как с перлом у меня проблемы решения жду от автора.
      json не проходит проверку на валидацию
      JSONLint is the free online validator, json formatter, and json beautifier tool for JSON, a lightweight data-interchange format.

      Ругается на запятую в конце
      Code:
      },
      Т.е. вывод скрипта такой:

      Code:
      {
          "data": [
              {
                  "{#IFINDEX}": "48",
                  "{#IFTAGS}": ",FastEthernet0/48,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/48",
                  "{#IFALIAS}": ""
              },
              {
                  "{#IFINDEX}": "22",
                  "{#IFTAGS}": ",FastEthernet0/22,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "#708_Camera",
                  "{#IFDESCR}": "FastEthernet0/22"
              },
              {
                  "{#IFINDEX}": "42",
                  "{#IFTAGS}": ",FastEthernet0/42,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/42"
              },
              {
                  "{#IFINDEX}": "53",
                  "{#IFALIAS}": "Management",
                  "{#IFDESCR}": "Vlan60",
                  "{#IFTAGS}": ",Vlan60,Type:53,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "10",
                  "{#IFALIAS}": "#739_Anna_K.+Irina_P.",
                  "{#IFDESCR}": "FastEthernet0/10",
                  "{#IFTAGS}": ",FastEthernet0/10,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "27",
                  "{#IFDESCR}": "FastEthernet0/27",
                  "{#IFALIAS}": "#775_Eugeniy_O.",
                  "{#IFTAGS}": ",FastEthernet0/27,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "45",
                  "{#IFTAGS}": ",FastEthernet0/45,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/45"
              },
              {
                  "{#IFINDEX}": "12",
                  "{#IFTAGS}": ",FastEthernet0/12,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/12",
                  "{#IFALIAS}": "#771_Andrey_K.+Ivan_S.+Vladislav_D."
              },
              {
                  "{#IFINDEX}": "25",
                  "{#IFDESCR}": "FastEthernet0/25",
                  "{#IFALIAS}": "#751_Mihail_K.+Sergey_K.",
                  "{#IFTAGS}": ",FastEthernet0/25,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "7",
                  "{#IFTAGS}": ",FastEthernet0/7,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "Andenir",
                  "{#IFDESCR}": "FastEthernet0/7"
              },
              {
                  "{#IFINDEX}": "16",
                  "{#IFTAGS}": ",FastEthernet0/16,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/16",
                  "{#IFALIAS}": "#755_Konstantin_V."
              },
              {
                  "{#IFINDEX}": "24",
                  "{#IFDESCR}": "FastEthernet0/24",
                  "{#IFALIAS}": "pbr_mngmnt",
                  "{#IFTAGS}": ",FastEthernet0/24,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "31",
                  "{#IFTAGS}": ",FastEthernet0/31,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "#776_Nikolay_O.+Yuriy_Sh.",
                  "{#IFDESCR}": "FastEthernet0/31"
              },
              {
                  "{#IFINDEX}": "35",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/35",
                  "{#IFTAGS}": ",FastEthernet0/35,Type:6,AdminStatus:down,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "11",
                  "{#IFDESCR}": "FastEthernet0/11",
                  "{#IFALIAS}": "#740_Ul'yana_B.",
                  "{#IFTAGS}": ",FastEthernet0/11,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "47",
                  "{#IFTAGS}": ",FastEthernet0/47,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/47"
              },
              {
                  "{#IFINDEX}": "19",
                  "{#IFDESCR}": "FastEthernet0/19",
                  "{#IFALIAS}": "#750_Anton_Z.+Andrey_Y.",
                  "{#IFTAGS}": ",FastEthernet0/19,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "29",
                  "{#IFTAGS}": ",FastEthernet0/29,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "#745_UniFi",
                  "{#IFDESCR}": "FastEthernet0/29"
              },
              {
                  "{#IFINDEX}": "8",
                  "{#IFDESCR}": "FastEthernet0/8",
                  "{#IFALIAS}": "#756.1_Camera",
                  "{#IFTAGS}": ",FastEthernet0/8,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "14",
                  "{#IFALIAS}": "#766_Vladislav_L.",
                  "{#IFDESCR}": "FastEthernet0/14",
                  "{#IFTAGS}": ",FastEthernet0/14,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "1",
                  "{#IFALIAS}": "vpn_mngmnt",
                  "{#IFDESCR}": "FastEthernet0/1",
                  "{#IFTAGS}": ",FastEthernet0/1,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "13",
                  "{#IFTAGS}": ",FastEthernet0/13,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/13",
                  "{#IFALIAS}": "#767_Alexander_P.+Elena_N."
              },
              {
                  "{#IFINDEX}": "32",
                  "{#IFTAGS}": ",FastEthernet0/32,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "camera703kab",
                  "{#IFDESCR}": "FastEthernet0/32"
              },
              {
                  "{#IFINDEX}": "26",
                  "{#IFTAGS}": ",FastEthernet0/26,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/26",
                  "{#IFALIAS}": ""
              },
              {
                  "{#IFINDEX}": "17",
                  "{#IFTAGS}": ",FastEthernet0/17,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/17",
                  "{#IFALIAS}": "#748_Alexander_G."
              },
              {
                  "{#IFINDEX}": "23",
                  "{#IFALIAS}": "#794_Ol'ga_A.",
                  "{#IFDESCR}": "FastEthernet0/23",
                  "{#IFTAGS}": ",FastEthernet0/23,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "52",
                  "{#IFTAGS}": ",Vlan1,Type:53,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "Vlan1",
                  "{#IFALIAS}": ""
              },
              {
                  "{#IFINDEX}": "50",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "GigabitEthernet0/2",
                  "{#IFTAGS}": ",GigabitEthernet0/2,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "36",
                  "{#IFDESCR}": "FastEthernet0/36",
                  "{#IFALIAS}": "",
                  "{#IFTAGS}": ",FastEthernet0/36,Type:6,AdminStatus:down,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "43",
                  "{#IFTAGS}": ",FastEthernet0/43,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/43"
              },
              {
                  "{#IFINDEX}": "5",
                  "{#IFTAGS}": ",FastEthernet0/5,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "#711_Camera",
                  "{#IFDESCR}": "FastEthernet0/5"
              },
              {
                  "{#IFINDEX}": "38",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/38",
                  "{#IFTAGS}": ",FastEthernet0/38,Type:6,AdminStatus:down,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "21",
                  "{#IFDESCR}": "FastEthernet0/21",
                  "{#IFALIAS}": "ipmi_Nyarlathotep",
                  "{#IFTAGS}": ",FastEthernet0/21,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "41",
                  "{#IFTAGS}": ",FastEthernet0/41,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/41"
              },
              {
                  "{#IFINDEX}": "34",
                  "{#IFDESCR}": "FastEthernet0/34",
                  "{#IFALIAS}": "",
                  "{#IFTAGS}": ",FastEthernet0/34,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "3",
                  "{#IFTAGS}": ",FastEthernet0/3,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/3"
              },
              {
                  "{#IFINDEX}": "28",
                  "{#IFALIAS}": "camera_cars",
                  "{#IFDESCR}": "FastEthernet0/28",
                  "{#IFTAGS}": ",FastEthernet0/28,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "37",
                  "{#IFDESCR}": "FastEthernet0/37",
                  "{#IFALIAS}": "",
                  "{#IFTAGS}": ",FastEthernet0/37,Type:6,AdminStatus:down,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "40",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/40",
                  "{#IFTAGS}": ",FastEthernet0/40,Type:6,AdminStatus:down,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "46",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/46",
                  "{#IFTAGS}": ",FastEthernet0/46,Type:6,AdminStatus:down,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "18",
                  "{#IFTAGS}": ",FastEthernet0/18,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "#749_Yuriy_H.",
                  "{#IFDESCR}": "FastEthernet0/18"
              },
              {
                  "{#IFINDEX}": "33",
                  "{#IFALIAS}": "Farteks [D]",
                  "{#IFDESCR}": "FastEthernet0/33",
                  "{#IFTAGS}": ",FastEthernet0/33,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "6",
                  "{#IFTAGS}": ",FastEthernet0/6,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/6",
                  "{#IFALIAS}": "Camera '[D]'"
              },
              {
                  "{#IFINDEX}": "4",
                  "{#IFALIAS}": "#711_ERD",
                  "{#IFDESCR}": "FastEthernet0/4",
                  "{#IFTAGS}": ",FastEthernet0/4,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "2",
                  "{#IFALIAS}": "radiusd_mngmnt",
                  "{#IFDESCR}": "FastEthernet0/2",
                  "{#IFTAGS}": ",FastEthernet0/2,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "9",
                  "{#IFALIAS}": "#738_Irina_G.",
                  "{#IFDESCR}": "FastEthernet0/9",
                  "{#IFTAGS}": ",FastEthernet0/9,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "44",
                  "{#IFTAGS}": ",FastEthernet0/44,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/44"
              },
              {
                  "{#IFINDEX}": "49",
                  "{#IFTAGS}": ",GigabitEthernet0/1,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "GigabitEthernet0/1",
                  "{#IFALIAS}": "Trunk_from_SNR_60.6"
              },
              {
                  "{#IFINDEX}": "15",
                  "{#IFTAGS}": ",FastEthernet0/15,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/15"
              },
              {
                  "{#IFINDEX}": "30",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/30",
                  "{#IFTAGS}": ",FastEthernet0/30,Type:6,AdminStatus:up,Physical,Counter64,FLAG,"
              },
              {
                  "{#IFINDEX}": "51",
                  "{#IFDESCR}": "Null0",
                  "{#IFALIAS}": "",
                  "{#IFTAGS}": ",Null0,Type:1,AdminStatus:up,Physical,FLAG,"
              },
              {
                  "{#IFINDEX}": "39",
                  "{#IFTAGS}": ",FastEthernet0/39,Type:6,AdminStatus:down,Physical,Counter64,FLAG,",
                  "{#IFALIAS}": "",
                  "{#IFDESCR}": "FastEthernet0/39"
              },
              {
                  "{#IFINDEX}": "20",
                  "{#IFTAGS}": ",FastEthernet0/20,Type:6,AdminStatus:up,Physical,Counter64,FLAG,",
                  "{#IFDESCR}": "FastEthernet0/20",
                  "{#IFALIAS}": "pbr_ipmi"
              },
              
          ]
      }
      на 280 строке ругается на запятую

      Comment

      • Jimson
        Senior Member
        • Jan 2008
        • 1327

        #153
        Originally posted by Berserkr
        решения жду от автора

        Comment

        • sadman
          Senior Member
          • Dec 2010
          • 1611

          #154
          Потеребим старушку.

          Я тоже накидал своего франкенштейна для SNMP LLD.
          Требуется bash v4, snmpwalk, sed. В общем то, что и так уже стоит у нормального человека.

          Что умеет: умеет собрать из нескольких subtree JSON.
          Например: необходимо получить ifType для отбора ethernet интерфейсов, ifDescr для красивых названий триггеров и графиков и ifSpeed просто так.

          Нужно:
          1) Положить DiscoverySNMPTrees.sh в ExternalScripts, произвести соответствующую настройку - дать права на выполнение zabbix-ом, задать таймаут.
          2) Сделать Discovery rule c ключом:
          Code:
          DiscoverySNMPTrees.sh["-c", "{$SNMP_COMMUNITY}", "-s", "{HOST.CONN}", "IFTYPE:.1.3.6.1.2.1.2.2.1.3", "IFDESCR:.1.3.6.1.2.1.2.2.1.2", ".1.3.6.1.2.1.2.2.1.5"]
          3) Получить в Zabbix JSON вида:
          {
          "data":[

          { "{#SNMPINDEX}":"1", "{#IFTYPE}":"6", "{#IFDESCR}":"gi0/1", "{#SNMPVALUE2}":"100000000" },
          { "{#SNMPINDEX}":"2", "{#IFTYPE}":"6", "{#IFDESCR}":"gi0/2", "{#SNMPVALUE2}":"0" },
          ...
          { "{#SNMPINDEX}":"20", "{#IFTYPE}":"135", "{#IFDESCR}":"VLAN_23", "{#SNMPVALUE2}":"0" },
          { "{#SNMPINDEX}":"21", "{#IFTYPE}":"209", "{#IFDESCR}":"br_23", "{#SNMPVALUE2}":"100000000" }

          ]
          }
          4) Настроить фильтр: A {#IFTYPE} matches ^6$
          5) Создавать прототипы с {#IFDESCR}, {#SNMPVALUE2}

          Как можно понять из примера, subtree OIDs для выборок задаются после всех именованных параметров и допускают наличие префикса, который становится именем макроса в JSON. Если префикс не задан, то его имя будет сгенерированно в виде SNMPVALUEN, где N - порядковый номер аргумента, не принадлежащего какому-либо ключу, в командной строке. Первый OID - SNMPVALUE0, второй - SNMPVALUE1 и т.д.

          {#SNMPINDEX} берется из первого в списке аргументов дерева. Если в нем отсутствуют какие-либо индексы, то элементы с эквивалентными индексами из других деревьев в JSON не попадут.

          На устойчивость обработки деревьев с over 9000 элементов скрипт не претендует. На количество OID-ов ограничений не установлено, но их избыточное количество наврядли будет полезно для работы. Как, впрочем, и излишнее увлечение ExternalScript-ами.
          Attached Files
          Last edited by sadman; 07-04-2015, 11:48.

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #155
            Подправил логическую ошибку в скрипте и добавил два параметра: -r regexp и -k anystring

            -r применяется для фильтра на стороне скрипта, regexp, в целом, такой же, какой применяется для фильтра в zabbix. Например ^71$

            -k необходим, если скрипт используют несколько discovery rules и исследуют одинаковые subtree. В этом случае ключ правила (равный набору параметров скрипта) выходит одним и тем же и, как следствие, нет возможности создать более одного такого правила. В этом случае остается менять параметры местами или написать в -k любую уникальную чушь.

            Актуализированный скрипт в предыдущем посте.

            Comment

            • Jimson
              Senior Member
              • Jan 2008
              • 1327

              #156
              А почему sh захотелось? External checks считаются дорогим удовольствием из-за форка, а sh скрипт это сотни форков: grep, snmp*, sed, etc.

              Comment

              • sadman
                Senior Member
                • Dec 2010
                • 1611

                #157
                Так-то да, но запуск перла с подсасыванием репозитория может оказаться ненамного дешевле.

                Для меня перловка проигрывает по переносимости - пока все эти либы со спана вспомнишь, накатишь, поймешь почему не работают - уже и вечер наступит. С шеллом же просто все - скрипт положил, темплейт импортировал и готово дело. Впрочем, дело вкуса и упорства - можно для развертывания написать скрипт, который развертывать ещё одним скриптом ))

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

                На крупных же системах сидят специальнооплачиваемые люди и пишут высокопроизводительные модули, наверное. И у них уже все есть.

                Comment

                • Jimson
                  Senior Member
                  • Jan 2008
                  • 1327

                  #158
                  Originally posted by sadman
                  запуск перла с подсасыванием репозитория
                  Это что такое?

                  На счет модулей, NetSNMP это кусок netsnmp проекта, в нормальных юниксах оно C библиотека, perl и phyton модули ставятся вместе. Это только в линуксах во всех дистрибутивах она подроблена на несколько пакетов. А JSON я изначально не хотел использовать как раз по причине чтобы не нужно было лишние библиотеки ставить, хотя мне как раз проще JSON доставить чем рисовать на 10 строк генерацию валидного json.

                  В треде так же можно найти ссылку на python версию дискаверинга интерфейсов. В любом случае нормальный скриптовый язык на порядки быстрее шеловского скрипта и при этом в дистрибутиве в любом случае стоит либо perl либо phyton.

                  Comment

                  • sadman
                    Senior Member
                    • Dec 2010
                    • 1611

                    #159
                    Originally posted by Jimson
                    Это что такое?
                    Может выразился ненаучно, конечно. Перл же складывает свои .pm-ки куда-то, как я понимаю. Потом нужные подгружает. Вроде как-то так же он действует?
                    Originally posted by Jimson
                    В треде так же можно найти ссылку на python версию дискаверинга интерфейсов.
                    Пусть будет и на баше - жалко что ли? ))

                    Originally posted by Jimson
                    В любом случае нормальный скриптовый язык на порядки быстрее шеловского скрипта и при этом в дистрибутиве в любом случае стоит либо perl либо phyton.
                    Боюсь, что ответ на вопрос о выгоде тут неочевиден.
                    Помнится мне, что под спектрумы на ассемблере писали и под 64к оптимизировали, а сейчас уже кому это надо? Хаускипер систему задушит сильнее сорока экземпляров одновременно выполняемых скриптов - к чему тут выгадывание 0.5сек?

                    В конце концов точку может поставить только исследование - 500 тыщ запусков, усредненное затрачиваемое на выполнение время... 500 тыщ человеков-инсталляторов того, другого и третьего варианта, усредненное затрачиваемое на настройку время.
                    Last edited by sadman; 07-04-2015, 17:20.

                    Comment

                    • Jimson
                      Senior Member
                      • Jan 2008
                      • 1327

                      #160
                      Originally posted by sadman
                      Пусть будет и на баше - жалко что ли? ))
                      Да нет, конечно, пусть будет

                      Comment

                      • PacMan
                        Junior Member
                        • Sep 2014
                        • 14

                        #161
                        sadman, Скиньте, пожалуйста, какой-нибудь шаблон для примера.
                        Для SNMPV3 с authPriv, AES + SHA, надо вместо community передавать security group, authentication pasm privacy pass, user и все?
                        Last edited by PacMan; 08-04-2015, 12:07.

                        Comment

                        • sadman
                          Senior Member
                          • Dec 2010
                          • 1611

                          #162
                          Originally posted by PacMan
                          sadman, Скиньте, пожалуйста, какой-нибудь шаблон для примера.
                          Для SNMPV3 с authPriv, AES + SHA, надо вместо community передавать security group, authentication pasm privacy pass, user и все?
                          У меня только v2 к вашему сожалению. В принципе - добавить несколько параметров для работы с v3 недолго, но проверить корректность выполнения скрипта я не смогу. Шаблон для примера прикладываю.
                          Attached Files

                          Comment

                          • PacMan
                            Junior Member
                            • Sep 2014
                            • 14

                            #163
                            Originally posted by sadman
                            У меня только v2 к вашему сожалению. В принципе - добавить несколько параметров для работы с v3 недолго, но проверить корректность выполнения скрипта я не смогу. Шаблон для примера прикладываю.
                            Что-то скрипт не очень работает со многими Alias.
                            Допустим есть интерфейс
                            interface GigabitEthernet0/18
                            description --- Blabla ---
                            После использования скрипта из консоли: ./DiscoverySNMPTrees.sh -c public -s 1.1.1.1 IFDESCR:.1.3.6.1.2.1.31.1.1.1.18
                            Пишет: ./DiscoverySNMPTrees.sh: line 133: arrIndexes: bad array subscript, но отображение идет:
                            { "{#SNMPINDEX}":"10119", "{#IFDESCR}":"---""{#Blabla}":"---" },
                            В самом zabbix пишет следующие "Value should be a JSON object".

                            Comment

                            • sadman
                              Senior Member
                              • Dec 2010
                              • 1611

                              #164
                              Спасибо за тестирование.
                              Попался в стандартную ловушку с кавычками и пробелами, на этот раз в printf:

                              Code:
                              #!/bin/bash
                              str="--- vlan ---"
                              echo "[1]" $str
                              printf "[2] %s\n" "$str"
                              printf "[3] %s\n" $str
                              Code:
                              [1] --- vlan ---
                              [2] --- vlan ---
                              [3] ---
                              [3] vlan
                              [3] ---
                              Ну ничего, заодно отловил ещё пару моментов, связанных с пустыми значениями SNMP OID-ов.
                              Подправленный скрипт в аттаче.
                              Attached Files

                              Comment

                              • tuban
                                Senior Member
                                Zabbix Certified Specialist
                                • Sep 2012
                                • 286

                                #165
                                Доброго времени суток. К сожалению очень плохо знаю perl, может найдется кто-то, кто сможет подправить скрипт? Суть вот в чём, - нужно выводить ip адрес интерфейса.

                                Индекс интерфейса мы знаем. В cisco есть oid .1.3.6.1.2.1.4.20.1.2, который выдает, что-то вроде .1.3.6.1.2.1.4.20.1.2.192.168.0.1= INTEGER: 5, где INTEGER :5 - совпадает с индексом интерфейса, нужно отрезать от OID четыре последних октета, которые и будут ip адресом и передать в вывод JSON.

                                Возможно, есть способ и проще?.. Если кто-то сможет подправить скрипт, буду очень благодарен.

                                Comment

                                Working...