Користувальницькькі налаштування

Налаштування сайту


switchpoller

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
Наступна ревізія По сторонах наступні версії
switchpoller [2017/07/26 14:44]
switchpoller [2023/06/16 19:01]
skybetik
Рядок 1: Рядок 1:
 +====== Опитування свічів за допомогою SNMP ======
 +В Ubilling починаючи з релізу 0.4.1 з'явилася можливість опитування активного мережевого обладнання за допомогою SNMP (вимагає встановленого net-snmp). Механіка опитування шаблонізована і дає змогу опитувати обладнання за будь-якими OID-ами. Також модуль "Опитування свічів" використовує у своїй роботі кешування результатів, що дає змогу зробити відображення результатів прийнятним за часом.
 +
 +====== Підтримуване з коробки обладнання ======
 +  * ZyXEL GS-4012F
 +  * ZyXEL GS-3012F
 +  * ZyXEL ES-2108
 +  * ZyXEL ES-2108G
 +  * Zyxel GS-2200-24
 +  * Cisco Catalyst 3500
 +  * Cisco Catalyst WS-C3548-XL-EN
 +  * Cisco-2940-8TT-S
 +  * Cisco Catalyst 3750G-24TS-S
 +  * Cisco Catalyst 3750-24TS-S
 +  * Cisco Catalyst 3560-24TS-S
 +  * Cisco SF300-24
 +  * Cisco Catalyst 2960-24TC-L
 +  * Cisco Catalyst C2960-48TC-L
 +  * Foxgate S6248-S4 
 +  * Foxgate S6224-S4 
 +  * Foxgate S6208-S1
 +  * Foxgate S6424-S2C2
 +  * Foxgate-S6224-S2
 +  * Foxgate-S-6008-S1L2 
 +  * D-Link DES-3200-10
 +  * D-Link DES-3200-18
 +  * D-Link DES-3200-26
 +  * D-Link DES-3200-28
 +  * D-Link DES-3526
 +  * D-Link DES-1228/ME
 +  * D-Link DGS-1100-6/ME
 +  * D-Link DGS-3120-24sc
 +  * D-Link DES-3200-28F
 +  * D-Link DGS-1510-52
 +  * D-Link DGS-1210-20
 +  * D-Link DES-2108
 +  * D-Link DES-3010G
 +  * D-Link DES-3026
 +  * D-Link DES-3226S
 +  * D-Link DGS-3100-24TG
 +  * D-Link DGS-1500-20
 +  * D-Link DGS-3000-10TC
 +  * D-Link DGS-3024
 +  * D-Link DGS-3200-10
 +  * D-Link DES-3028
 +  * D-Link DES-1210-26
 +  * D-Link DES-1210-28
 +  * D-Link DGS-1210-10
 +  * D-Link DGS-1210-12TS
 +  * D-Link DGS-3000-28SC
 +  * D-Link DGS-3627G
 +  * HP ProCurve Switch 2626
 +  * HP ProCurve Switch 2650
 +  * HP ProCurve Switch 2524
 +  * HP ProCurve Switch 2824
 +  * Dell PowerConnect  5324
 +  * Dell EMC Networking N1148T-ON
 +  * Alcatel LS-5224
 +  * Huawei S2326TP
 +  * Extreme Networks Summit 200-24
 +  * ZIZITRA
 +  * TP-LINK TL-SG5412F
 +  * TP-LINK TL-SL5428E v2
 +  * Edge-Core ECS3510-28T 
 +  * Huawei s232tp_c05
 +  * Eltex MES1124MB
 +  * Eltex MES2124MB
 +  * Eltex MES2124F
 +  * Eltex MES3108F
 +  * 3COM-3250
 +  * Mikrotik-CSS326-24G-2S
 +
 +
 +І багато-багато інших, про які ми вже задовбалися писати. Давайте ви самі подивитеся що буде працювати з коробки заглянувши в директорію **config/snmptemplates**?
 +
 +
 +
 +====== Налаштування ======
 +
 +У загальному випадку налаштування зводитися до додавання моделі свіча з правильним шаблоном SNMP
 +
 +{{ :swmodeladdsnmp.png? |}}
 +
 +
 +Після чого слід додати пристрій із потрібною моделькою і зазначеним SNMP ком'юніті, а також підрядком SWPOLL в описі, який сигналізує Ubilling про те, що для цього пристрою слід застосувати стандартні механізми опитування щодо обраного шаблону.
 +
 +{{ :switchsnmpadd.png? |}}
 +
 +
 +Якщо все додано правильно - у свіча в колонці дії має з'явитися іконка "Опитування за допомогою SNMP"
 +
 +{{ :switchsnmpactions.png? |}}
 +
 +Набір параметрів, що запитуються з пристрою, повністю залежить від обраного шаблону і може бути практично довільним. Також можливе відображення FDB з пристрою.
 +
 +{{:swpolln0.png?200 |}}
 +{{:swithcsnmpdatadisplay.png?200 |}}
 +{{:foxgatesnmpmonitored.png?200 |}}
 +
 +
 +Враховуючи, що опитування пристрою відбувається не надто швидко, для прискорення відображення результатів використовується механіка кешування. Для періодичного опитування всіх пристроїв, з метою заповнення кешу сирих даних слід використовувати виклик **swpoll** з [[remoteapi|API віддаленого виклику процедур]].\\
 +
 +
 +====== Формат шаблону для опитування пристрою ======
 +Шаблони всіх пристроїв лежать у **/config/snmptemplates/** і мають, наприклад, якийсь такий вигляд:
 +
 +<file ini megaswitch9000>
 +[define]
 +DEVICE="ZIZITRA MegaSwitch-9000 2ports"
 +FDB=true
 +FDB_MODE=default
 +
 +[PORTSTATE]
 +NAME="Port states"
 +OIDS=".1.3.6.1.2.1.2.2.1.8.1,.1.3.6.1.2.1.2.2.1.8.2"
 +PARSER=sp_parse_zyportstates
 +
 +[UPTIME]
 +NAME="Uptime"
 +OIDS=".1.3.6.1.2.1.1.3.0"
 +PARSER=sp_parse_raw
 +</file>
 +
 +або такий для OLT:
 +
 +<file ini BDCOM_GP3608>
 +[define]
 +DEVICE="BDCOM OLT GP3600-8"
 +PON_ONU_PORT_MAX=128
 +
 +[signal]
 +SIGNALMODE="GPBDCOM"
 +SIGINDEX=".1.3.6.1.4.1.3320.10.3.4.1.2"
 +MACINDEX=".1.3.6.1.4.1.3320.10.3.3.1.2"
 +SIGVALUE="INTEGER:"
 +MACVALUE="STRING:"
 +OFFSET="10"
 +OFFSETMODE="div"
 +DOWNVALUE="2147483648"
 +
 +[misc]
 +ONUINDEX=".1.3.6.1.4.1.3320.10.3.3.1.2"
 +ONUVALUE="STRING:"
 +FDBINDEX=".1.3.6.1.2.1.17.7.1.2.2.1.1"
 +FDBVALUE="Hex-STRING:"
 +FDBDEVINDEX=".1.3.6.1.2.1.17.7.1.2.2.1.2"
 +FDBDEVVALUE="INTEGER:"
 +DISTINDEX=".1.3.6.1.4.1.3320.10.3.1.1.33"
 +DISTVALUE="INTEGER:"
 +INTERFACEINDEX=".1.3.6.1.2.1.2.2.1.2"
 +INTERFACEVALUE="STRING:"
 +RTTINDEX=".1.3.6.1.4.1.3320.101.11.1.1.8"
 +
 +[system]
 +CPULOAD=".1.3.6.1.2.1.25.3.3.1.2"
 +
 +</file>
 +
 +Як бачимо файл складається із секцій.\\
 +Секція **[define]** є обов'язковою. У ній описуються такі характеристики пристрою як **DEVICE** (повне найменування моделі) і булевий параметр FDB, який означає, що для пристрою слід спробувати дістати FDB, а також необов'язковий параметр **FDB_MODE**, який вказує на метод опитування FDB таблиць. Він може приймати значення default (за замовчуванням) або dlp (для деяких моделей світчів Dlink) і tlp5428ev2 для відповідного tp-link. У разі, якщо параметр FDB_MODE не вказано, за замовчуванням вважатиметься, що він встановлений у значення default. \\
 +Також існують необов'язкові параметри:
 +  * **FDB_ALLOW_ONLY_PORTS** - вказує, що виключно ті MAC-адреси, які знаходяться за цими портами, будуть враховані під час парсингу FDB.
 +  * **FDB_IGNORE_PORTS** - вказує порти, MAC-адреси, що знаходяться за якими, будуть виключені під час парсингу FDB.
 +Слід зазначити, що параметр //FDB_ALLOW_ONLY_PORTS// має перевагу і, якщо номер порту буде зазначено одночасно в обох цих опціях, - перевага буде за //FDB_ALLOW_ONLY_PORTS// і МАСи з цього порту таки потраплять до FDB-кешу.
 +  
 +Далі кожна із секцій описує унікальний набір параметрів, за яким буде опитуватися пристрій. Ім'я секції особливого значення не має і просто має бути унікальним. Кожна секція складається з щонайменше трьох обов'язкових змінних. Це **NAME** - відображувана назва опитуваної характеристики (буде локалізовано), **OIDS** - список OID-ів через кому, які буде опитано для конкретної моделі, і PARSER - парсер даних, через який буде пропущено дані, отримані від кожного OID-а в поточній секції. З вищенаведеного прикладу можна зробити висновок, що цей шаблон відображатиме стан двох перших портів свіча і його аптайм, а також намагатиметься показувати таблицю відповідності MAC-ів за портами.\\
 +Починаючи з релізу Ubilling 0.8.5 також можна зберігати ваші шаблони в **content/documents/mysnmptemplates/**. Вони матимуть пріоритет перед базовими і будуть нормально переживати оновлення білінгу. Також, якщо вам потрібно змінити поведінку якогось наявного шаблону (наприклад, порти FDB, які ігноруються), потрудіться перед модифікацією, скопіювати його в **content/documents/mysnmptemplates/** і редагувати його вже там.
 +\\
 +
 +Наразі доступні такі парсери отриманих з OID даних:
 +
 +  * **sp_parse_raw** - дані показуються як є без особливої обробки
 +  * **sp_parse_raw_sanitized** - дані будуть показані як є, просто з викушеним типом.
 +  * **sp_parse_zyportbytes** - лічильники байт/пакетів на портах
 +  * **sp_parse_zyportdesc** - строкові описи портів
 +  * **sp_parse_zyportstates** - стан портів
 +  * **sp_parse_ciscocpu** - навантаження на CPU в %
 +  * **sp_parse_ciscomemory** - кількість зайнятої пам'яті у Мб
 +  * **sp_parse_eltex_acpower** - напруга AC живлення світчів Eltex
 +  * **sp_parse_eltex_dcpower** - напруга DC живлення світчів Eltex
 +  * **sp_parse_eltex_battery** - рівень заряду АКБ світчів Eltex
 +  * **sp_parse_fxportstates** - стан портів для деяких Foxgate 60xx
 +  * **sp_parse_fxportbytes** - лічильники байт/пакетів на портах для деяких Foxgate 60xx
 +  * **sp_parse_cable_tester** - парсер кабельного тестера для світчів Dlink
 +  * **sp_parse_time_seconds** - парсер часу із секунд у людино-читабельний вигляд
 +  * **sp_parse_power** - парсер наявності електроенергії (1/0).
 +  * **sp_parse_eping_temp** - парсер температури з Equicom ping3 (так, вона тупо ділитися на 10)
 +  * **sp_parse_eping_temp_gauge** - нормальний такій градусник для Equicom ping3
 +  * **sp_parse_division_temperature** - універсальний градусник з розподілом значень на DIV і форматом шкали у вигляді UNITS="min|max|yellow|red"
 +
 +Також доступні наступні режими FDB:
 +  * default
 +  * dlp
 +  * tlp5428ev2
 +  * tlp2428
 +  * tlp2210
 +  * flp
 +  * ciscoebobo
 +
 +====== Формат "кумулятивного" шаблону для опитування пристрою ======
 +Повністю базується на базовому форматі шаблонів, але має свої особливості, про які буде розказано нижче. Власне вся "кумулятивність" полягає в тому, що нам не потрібно вказувати конкретний порт для кожної секції наприкінці OID'а - ми вказуємо тільки OID необхідної нам таблиці, чи то //dot1dFdb//, //dot1qFdb//, банальний //ifDescr//  або трохи менш банальний //ifAlias//. А далі наш модуль уже самостійно перебере всі наявні порти і за їхніми індексами постарається дістати все, що зможе (ну, з того, що ми вкажемо в шаблоні, звісно). \\
 +
 +__Отже, нові параметри секції **[define]**__:
 +
 +  * **POLLMODE** має бути завжди **cumulative**, якщо ми хочемо саме "кумулятивно обробляти шаблон"
 +  * **FDB_MODE** має бути завжди **sw_cumulative**, якщо ми хочемо спробувати дістати описи інтерфейсів і номери VLAN 
 +  * **SFPSTARTPORT**, **SFPENDPORT** - корисні для пристроїв, що мають на борту як мідні, так і SFP-порти, для яких ви збираєтеся в шаблоні використовувати секції **[SFP....]**, такі як //[SFPTXPOWER]//, //[SFPRXPOWER]//, //[SFPWAVELENGTH]// та інші. Потрібні вони головним чином для того, щоб уникнути візуалізації порожніх значень для мідних портів.
 +  * **POESTARTPORT**, **POEENDPORT** - використовуються зовсім для тих самих цілей, що і попередні два параметри, тільки цього разу з їхньою допомогою ми визначаємо PoE порти пристрою. Тобто порти, з яких опитуваний девайс може живити інші девайси. Для коректного опитування таких портів нам знадобляться секції **[POE....]**
 +    * //Приклади секцій **[SFP....]** і **[POE....]** ви знайдете нижче, в шаблоні для прикладу// \\
 +
 +__Далі трохи про "особливі" секції:__ \\
 +
 +**PORTIFACE** - в этой секции указываются OID'ы для получения индексов портов, дескрипшинов и алиасов портов. На закономерный вопрос: "А зачем и дескрипшины, и алиасы?" - даем не менее закономерный ответ: "А зачем они вообще существуют по отдельности?". Но, если серьезно - логика здесь весьма проста: некоторые девайсы хранят наименования интерфейсов в //ifDescr//, а некоторые - в //ifAlias//. Потому наш модуль сначала пытается найти описание порта в //ifDescr//, а если не находит - тогда уже в //ifAlias//. И нам абсолютно не нужно над этим заморачиваться. Удобно, не правда ли?
 +<code ini>
 +[PORTIFACE]
 +PORTINDEX=".1.3.6.1.2.1.2.2.1.1"
 +PORTDESCR=".1.3.6.1.2.1.2.2.1.2"
 +PORTALIAS=".1.3.6.1.2.1.31.1.1.1.18"
 +</code>
 +
 +**PORTDESC** - как и следует из комментария к этой секции, в кумулятивных шаблонах - это просто заглушка. Когда кумулятивный обработчик "встречает" в шаблоне эту секцию - он просто запускает специальный парсер для обработки описаний/наименований портов устройства. 
 +<code ini>
 +[PORTDESC]
 +; just a placeholder
 +NAME="Desc"
 +</code>
 +
 +**PORT.1D_FDB**, **PORT.1Q_FDB** - еще две секции, характерные только для кумулятивного режима обработки и не предполагающие использования какого-либо парсера. Предназначены для получения FDB-таблицы девайса. Таблица //PORT.1Q_FDB//, как более подробная и детальная, используется для получения номеров VLAN для МАС адресов с опрашиваемых портов.
 +<code ini>
 +[PORT.1D_FDB]
 +PORTTABLE=".1.3.6.1.2.1.17.4.3.1.2"
 +PORTSTATUS=".1.3.6.1.2.1.17.4.3.1.3"
 +
 +[PORT.1Q_FDB]
 +PORTTABLE=".1.3.6.1.2.1.17.7.1.2.2.1.2"
 +PORTSTATUS=".1.3.6.1.2.1.17.7.1.2.2.1.3"
 +</code>
 +
 +А ещё мы теперь можем указывать в секциях единицы измерения и величину, на которую нужно поделить возвращённое OID'ом значение, используя параметры **DIV** и **UNITS**. Эти параметры могут жить абсолютно раздельно, то есть: для любой секции мы можем указать только один из них. Например, если OID нам возвращает сразу корректное значение, которое не нужно ни на что делить и нам нужно только прицепить к нему единицы измерения, то для секции достаточно указать только один лишь параметр **UNITS**. Так же стоит отметить, что для корректной обработки этого всего нужно использовать новые //парсеры//. Выглядит это как-то так: \\
 +<code ini>
 +[SFPTXPOWER]
 +NAME="SFP TX power"
 +OIDS=".1.3.6.1.4.1.14988.1.1.19.1.1.9"
 +DIV=1000
 +UNITS="dBm"
 +PARSER=sp_parse_division_units
 +
 +[CPU TEMP]
 +NAME="CPU temperature"
 +SECTPOLLMODE="noncumulative"
 +OIDS=".1.3.6.1.4.1.14988.1.1.3.11.0"
 +DIV=10
 +UNITS="C"
 +PARSER=sp_parse_division_units_noport
 +</code>
 +
 +__Новые парсеры__:
 +  * **sp_parse_raw_trim_tab** - то же, что и sp_parse_raw, только возвращает одно лишь значение OID'а, обкусывая всё лишнее и в ячейке таблицы. 
 +  * **sp_parse_division_units** - обрабатывает параметры **DIV** и **UNITS**, если таковые есть в секции и производит соответствующие операции деления и "приклеивания" единиц измерения к распарсенному значению. Делает этого для каждого найденного порта, согласно индексу портов и возвращает значение в виде: \\ //номер порта => значение_OID + единицы измерения //
 +  * **sp_parse_division_units_noport** - то же, что и sp_parse_division_units, но ничего не знает о портах и их индексах, обрабатывает одиночное значение. Полезен для вывода информации о таких штуках, как заргузка/температура CPU, температура девайса, скорость оборотов вентилятора и прочей информации о "здоровье" девайса.
 +  * **sp_parse_mikrotik_poe** - как несложно догадаться из названия - предназначен для шаблонов устройств Mikrotik с поддержкой питания других устройств по PoE.
 +  * **sp_parse_sw_port_idx** - собственно - сердце кумулятивного опроса, задача которого - "построить" индекс портов девайса. Мало полезен для отдельностоящего обособленного использования.
 +  * **sp_parse_sw_port_descr** - как и предыдущий парсер - предназначен больше для "служебных" целей. Строит массив описаний/наименований портов, "добывая" их из //ifDescr// или //ifAlias//.
 +
 +
 +Так как же в итоге будет выглядеть кумулятивный шаблон для устройства? Покажем на примере довольно известного девайса ** Mikrotik RB260GSP / CSS106-1G-4P-1S**:
 +<code ini>
 +[define]
 +DEVICE=Mikrotik-CSS106_RB260GSP_SW_SFP
 +POLLMODE=cumulative
 +SFPSTARTPORT=5
 +SFPENDPORT=5
 +POESTARTPORT=2
 +POEENDPORT=5
 +FDB=true
 +FDB_MODE=sw_cumulative
 +FDB_ALLOW_ONLY_PORTS=
 +FDB_IGNORE_PORTS=
 +
 +[PORTIFACE]
 +PORTINDEX=".1.3.6.1.2.1.2.2.1.1"
 +PORTDESCR=".1.3.6.1.2.1.2.2.1.2"
 +PORTALIAS=".1.3.6.1.2.1.31.1.1.1.18"
 +
 +[PORT.1D_FDB]
 +PORTTABLE=".1.3.6.1.2.1.17.4.3.1.2"
 +PORTSTATUS=".1.3.6.1.2.1.17.4.3.1.3"
 +
 +[PORT.1Q_FDB]
 +PORTTABLE=".1.3.6.1.2.1.17.7.1.2.2.1.2"
 +PORTSTATUS=".1.3.6.1.2.1.17.7.1.2.2.1.3"
 +
 +[PORTSTATE]
 +NAME="Port states"
 +OIDS=".1.3.6.1.2.1.2.2.1.8"
 +PARSER=sp_parse_zyportstates
 +
 +[PORTDESC]
 +; just a placeholder
 +NAME="Desc"
 +
 +[PORTTX]
 +NAME="Bytes transmitted"
 +OIDS=".1.3.6.1.2.1.2.2.1.16"
 +PARSER=sp_parse_zyportbytes
 +
 +[PORTRX]
 +NAME="Bytes received"
 +OIDS=".1.3.6.1.2.1.2.2.1.10"
 +PARSER=sp_parse_zyportbytes
 +
 +[PORTERRTX]
 +NAME="TX errors"
 +OIDS=".1.3.6.1.2.1.2.2.1.20"
 +PARSER=sp_parse_zyportbytes
 +
 +[PORTERRRX]
 +NAME="RX errors"
 +OIDS=".1.3.6.1.2.1.2.2.1.14"
 +PARSER=sp_parse_zyportbytes
 +
 +[PORTMULTTX]
 +NAME="Multicast TX"
 +OIDS=".1.3.6.1.2.1.31.1.1.1.12"
 +PARSER=sp_parse_zyportbytes
 +
 +[PORTMULTRX]
 +NAME="Multicast RX"
 +OIDS=".1.3.6.1.2.1.31.1.1.1.8"
 +PARSER=sp_parse_zyportbytes
 +
 +[PORTBRODTX]
 +NAME="Broadcast TX"
 +OIDS=".1.3.6.1.2.1.31.1.1.1.13"
 +PARSER=sp_parse_zyportbytes
 +
 +[PORTBRODRX]
 +NAME="Broadcast RX"
 +OIDS=".1.3.6.1.2.1.31.1.1.1.9"
 +PARSER=sp_parse_zyportbytes
 +
 +[SFPWAVELENGTH]
 +NAME="SFP wave length"
 +OIDS=".1.3.6.1.4.1.14988.1.1.19.1.1.5"
 +DIV=100
 +UNITS="nm"
 +PARSER=sp_parse_division_units
 +
 +[SFPTEMP]
 +NAME="SFP temperature"
 +OIDS=".1.3.6.1.4.1.14988.1.1.19.1.1.6"
 +UNITS="C"
 +PARSER=sp_parse_division_units
 +
 +[SFPVOLTAGE]
 +NAME="SFP voltage"
 +OIDS=".1.3.6.1.4.1.14988.1.1.19.1.1.7"
 +DIV=1000
 +UNITS="V"
 +PARSER=sp_parse_division_units
 +
 +[SFPCURRENT]
 +NAME="SFP current"
 +OIDS=".1.3.6.1.4.1.14988.1.1.19.1.1.8"
 +UNITS="mA"
 +PARSER=sp_parse_division_units
 +
 +[POESTATUS]
 +NAME="POE status"
 +OIDS=".1.3.6.1.4.1.14988.1.1.15.1.1.3"
 +PARSER=sp_parse_mikrotik_poe
 +
 +[POECURRENT]
 +NAME="POE current"
 +OIDS=".1.3.6.1.4.1.14988.1.1.15.1.1.5"
 +UNITS="mA"
 +PARSER=sp_parse_division_units
 +
 +[POEPOWER]
 +NAME="POE power"
 +OIDS=".1.3.6.1.4.1.14988.1.1.15.1.1.6"
 +DIV=10
 +UNITS="W"
 +PARSER=sp_parse_division_units
 +
 +[UPTIME]
 +NAME="Uptime"
 +SECTPOLLMODE="noncumulative"
 +OIDS=".1.3.6.1.2.1.1.3.0"
 +PARSER=sp_parse_raw_trim_tab
 +
 +[SYSTEM VOLTAGE]
 +NAME="System voltage"
 +SECTPOLLMODE="noncumulative"
 +OIDS=".1.3.6.1.4.1.14988.1.1.3.8.0"
 +DIV=10
 +UNITS="V"
 +PARSER=sp_parse_division_units_noport
 +
 +[SYSTEM TEMP]
 +NAME="System temperature"
 +SECTPOLLMODE="noncumulative"
 +OIDS=".1.3.6.1.4.1.14988.1.1.3.10.0"
 +DIV=10
 +UNITS="C"
 +PARSER=sp_parse_division_units_noport
 +
 +[SYSTEM VERSION]
 +NAME="System version"
 +SECTPOLLMODE="noncumulative"
 +OIDS=".1.3.6.1.2.1.1.1.0"
 +PARSER=sp_parse_raw_trim_tab
 +</code>
 +====== А если требуется делать еще и snmpset? ======
 +
 +Начиная с релиза 0.8.4 появилась возможность в процессе опроса, делать устройствам snmp set. Для этого в каждой секции за исключением "define" добавлена возможность указать опцию SETOIDS в формате:
 +
 +<code ini>
 +SETOIDS="oid|type|value,oid|type|value"
 +</code>
 +
 +Где oid является собственно oid-ом, value является значением которое будет установлено, а type указывает на тип и может принимать следующие значения:
 +
 +  * i INTEGER
 +  * u INTEGER UNSIGNED
 +  * s STRING
 +  * x HEX STRING
 +  * d DECIMAL STRING
 +  * n NULLOBJ
 +  * o OBJID
 +  * t TIMETICKS
 +  * a IPADDRESS
 +  * b BITS
 +
 +Следует также заметить, что секция с SETOIDS может быть самодостаточной и не требует указания других опций, таких как NAME, OIDS или скажем PARSER. В таком случае, она просто проведет по очереди все write операции и завершит свою работу. Вот пример указания port description для двух портов:
 +<code ini>
 +[portnames]
 +SETOIDS=".1.3.6.1.2.1.31.1.1.1.18.4|s|testport1,.1.3.6.1.2.1.31.1.1.1.18.5|s|testport2"
 +</code>
 +Хотя да, никто не запрещает быть ей при этом обычной интерактивной секцией и показывать в процессе своей работы какие-то результаты. Например как-то так: 
 +
 +<code ini>
 +[portnames]
 +SETOIDS=".1.3.6.1.2.1.31.1.1.1.18.4|s|testport1,.1.3.6.1.2.1.31.1.1.1.18.5|s|testport2"
 +NAME="Ports"
 +OIDS=".1.3.6.1.2.1.31.1.1.1.18.4,.1.3.6.1.2.1.31.1.1.1.18.5"
 +PARSER=sp_parse_raw
 +</code>
 +В таком случае, следует всегда помнить о том, что сначала всегда выполняются все snmp set операции, а потом уже производиться опрос и рендер указанных в опции OIDS данных.
 +
 +<code ini>
 +[define]
 +PON_ONU_PORT_MAX=128
 +</code>
 +Если вы используете две технологии ПОН у себя в сети и вам нужно перекрыть глобальный обязательный параметр [[alteriniconf|alter.ini]] PON_ONU_PORT_MAX - то добавьте этот параметр в SNMP шаблоны для OLT и у вас будет нормально отображаться статистика и другие параметры.
 +====== Генератор шаблонов ======
 +Также камрадом [[http://local.com.ua/forum/user/16245-demonidze/|DemonidZe]] был запилен [[http://swgen.ubilling.net.ua/|генератор шаблонов опроса оборудования]], для тех кому лень самому разбираться.
  
switchpoller.txt · Востаннє змінено: 2023/06/19 09:29 повз borisov