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

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


switchpoller

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
switchpoller [2023/06/16 19:01]
skybetik
switchpoller [2023/06/19 09:29] (поточний)
borisov
Рядок 1: Рядок 1:
-====== Опитування свічів за допомогою SNMP ====== +====== Опитування світчів за допомогою SNMP ====== 
-В Ubilling починаючи з релізу 0.4.1 з'явилася можливість опитування активного мережевого обладнання за допомогою SNMP (вимагає встановленого net-snmp). Механіка опитування шаблонізована і дає змогу опитувати обладнання за будь-якими OID-ами. Також модуль "Опитування свічів" використовує у своїй роботі кешування результатів, що дає змогу зробити відображення результатів прийнятним за часом.+В Ubilling починаючи з релізу 0.4.1 з'явилася можливість опитування активного мережевого обладнання за допомогою SNMP (вимагає встановленого net-snmp). Механіка опитування шаблонізована і дає змогу опитувати обладнання за будь-якими OID-ами. Також модуль "Опитування світчів" використовує у своїй роботі кешування результатів, що дає змогу зробити відображення результатів прийнятним за часом.
  
 ====== Підтримуване з коробки обладнання ====== ====== Підтримуване з коробки обладнання ======
Рядок 78: Рядок 78:
 ====== Налаштування ====== ====== Налаштування ======
  
-У загальному випадку налаштування зводитися до додавання моделі свіча з правильним шаблоном SNMP+У загальному випадку налаштування зводитися до додавання моделі світча з правильним шаблоном SNMP
  
 {{ :swmodeladdsnmp.png? |}} {{ :swmodeladdsnmp.png? |}}
Рядок 88: Рядок 88:
  
  
-Якщо все додано правильно - у свіча в колонці дії має з'явитися іконка "Опитування за допомогою SNMP"+Якщо все додано правильно - у світча в колонці дії має з'явитися іконка "Опитування за допомогою SNMP"
  
 {{ :switchsnmpactions.png? |}} {{ :switchsnmpactions.png? |}}
Рядок 164: Рядок 164:
 Слід зазначити, що параметр //FDB_ALLOW_ONLY_PORTS// має перевагу і, якщо номер порту буде зазначено одночасно в обох цих опціях, - перевага буде за //FDB_ALLOW_ONLY_PORTS// і МАСи з цього порту таки потраплять до FDB-кешу. Слід зазначити, що параметр //FDB_ALLOW_ONLY_PORTS// має перевагу і, якщо номер порту буде зазначено одночасно в обох цих опціях, - перевага буде за //FDB_ALLOW_ONLY_PORTS// і МАСи з цього порту таки потраплять до FDB-кешу.
      
-Далі кожна із секцій описує унікальний набір параметрів, за яким буде опитуватися пристрій. Ім'я секції особливого значення не має і просто має бути унікальним. Кожна секція складається з щонайменше трьох обов'язкових змінних. Це **NAME** - відображувана назва опитуваної характеристики (буде локалізовано), **OIDS** - список OID-ів через кому, які буде опитано для конкретної моделі, і PARSER - парсер даних, через який буде пропущено дані, отримані від кожного OID-а в поточній секції. З вищенаведеного прикладу можна зробити висновок, що цей шаблон відображатиме стан двох перших портів свіча і його аптайм, а також намагатиметься показувати таблицю відповідності MAC-ів за портами.\\+Далі кожна із секцій описує унікальний набір параметрів, за яким буде опитуватися пристрій. Ім'я секції особливого значення не має і просто має бути унікальним. Кожна секція складається з щонайменше трьох обов'язкових змінних. Це **NAME** - відображувана назва опитуваної характеристики (буде локалізовано), **OIDS** - список OID-ів через кому, які буде опитано для конкретної моделі, і PARSER - парсер даних, через який буде пропущено дані, отримані від кожного OID-а в поточній секції. З вищенаведеного прикладу можна зробити висновок, що цей шаблон відображатиме стан двох перших портів світча і його аптайм, а також намагатиметься показувати таблицю відповідності MAC-ів за портами.\\
 Починаючи з релізу Ubilling 0.8.5 також можна зберігати ваші шаблони в **content/documents/mysnmptemplates/**. Вони матимуть пріоритет перед базовими і будуть нормально переживати оновлення білінгу. Також, якщо вам потрібно змінити поведінку якогось наявного шаблону (наприклад, порти FDB, які ігноруються), потрудіться перед модифікацією, скопіювати його в **content/documents/mysnmptemplates/** і редагувати його вже там. Починаючи з релізу Ubilling 0.8.5 також можна зберігати ваші шаблони в **content/documents/mysnmptemplates/**. Вони матимуть пріоритет перед базовими і будуть нормально переживати оновлення білінгу. Також, якщо вам потрібно змінити поведінку якогось наявного шаблону (наприклад, порти FDB, які ігноруються), потрудіться перед модифікацією, скопіювати його в **content/documents/mysnmptemplates/** і редагувати його вже там.
 \\ \\
Рядок 211: Рядок 211:
 __Далі трохи про "особливі" секції:__ \\ __Далі трохи про "особливі" секції:__ \\
  
-**PORTIFACE** - в этой секции указываются OID'ы для получения индексов портов, дескрипшинов и алиасов портов. На закономерный вопрос: "А зачем и дескрипшиныи алиасы?" - даем не менее закономерный ответ: "А зачем они вообще существуют по отдельности?"Но, если серьезно - логика здесь весьма проста: некоторые девайсы хранят наименования интерфейсов в //ifDescr//, а некоторые - в //ifAlias//Потому наш модуль сначала пытается найти описание порта в //ifDescr//, а если не находит - тогда уже в //ifAlias//И нам абсолютно не нужно над этим заморачиваться. Удобно, не правда ли?+**PORTIFACE** - у цій секції вказуються OID'и для отримання індексів портів, дескрипшинів і аліасів портів. На закономірне запитання: "А навіщо і дескрипшиниі аліаси?" - даємо не менш закономірну відповідь: "А навіщо вони взагалі існують окремо?"Але, якщо серйозно - логіка тут вельми проста: деякі девайси зберігають найменування інтерфейсів в //ifDescr//, а деякі - в //ifAlias//Тому наш модуль спочатку намагається знайти опис порту в //ifDescr//, а якщо не знаходить - тоді вже в //ifAlias//І нам абсолютно не потрібно над цим морочитися. Зручно, чи не так?
 <code ini> <code ini>
 [PORTIFACE] [PORTIFACE]
Рядок 219: Рядок 219:
 </code> </code>
  
-**PORTDESC** - как и следует из комментария к этой секциив кумулятивных шаблонах - это просто заглушка. Когда кумулятивный обработчик "встречает" в шаблоне эту секцию - он просто запускает специальный парсер для обработки описаний/наименований портов устройства+**PORTDESC** - як і випливає з коментаря до цієї секціїу кумулятивних шаблонах - це просто заглушка. Коли кумулятивний обробник "зустрічає" в шаблоні цю секцію - він просто запускає спеціальний парсер для обробки описів/найменувань портів пристрою
 <code ini> <code ini>
 [PORTDESC] [PORTDESC]
Рядок 226: Рядок 226:
 </code> </code>
  
-**PORT.1D_FDB**, **PORT.1Q_FDB** - еще две секции, характерные только для кумулятивного режима обработки и не предполагающие использования какого-либо парсера. Предназначены для получения FDB-таблицы девайса. Таблица //PORT.1Q_FDB//, как более подробная и детальная, используется для получения номеров VLAN для МАС адресов с опрашиваемых портов.+**PORT.1D_FDB**, **PORT.1Q_FDB** - ще дві секції, характерні тільки для кумулятивного режиму обробки, які не передбачають використання будь-якого парсера. Призначені для отримання FDB-таблиці девайса. Таблиця //PORT.1Q_FDB//, як докладніша і детальніша, використовується для отримання номерів VLAN для МАС-адрес з опитуваних портів.
 <code ini> <code ini>
 [PORT.1D_FDB] [PORT.1D_FDB]
Рядок 237: Рядок 237:
 </code> </code>
  
-А ещё мы теперь можем указывать в секциях единицы измерения и величину, на которую нужно поделить возвращённое OID'ом значение, используя параметры **DIV** и **UNITS**. Эти параметры могут жить абсолютно раздельно, то есть: для любой секции мы можем указать только один из них. Напримересли OID нам возвращает сразу корректное значение, которое не нужно ни на что делить и нам нужно только прицепить к нему единицы измерения, то для секции достаточно указать только один лишь параметр **UNITS**. Так же стоит отметитьчто для корректной обработки этого всего нужно использовать новые //парсеры//. Выглядит это како так: \\+А ще ми тепер можемо вказувати в секціях одиниці виміру і величину, на яку потрібно поділити повернуте OID'ом значеннявикористовуючи параметри **DIV** і **UNITS**. Ці параметри можуть жити абсолютно окремо, тобто: для будь-якої секції ми можемо вказати тільки один із них. Наприкладякщо OID нам повертає одразу коректне значенняяке не потрібно ні на що ділити і нам потрібно тільки причепити до нього одиниці виміру, то для секції достатньо вказати тільки один лише параметр **UNITS**. Так само варто зазначитищо для коректної обробки цього всього потрібно використовувати нові //парсери//. Виглядає це якось так: \\
 <code ini> <code ini>
 [SFPTXPOWER] [SFPTXPOWER]
Рядок 255: Рядок 255:
 </code> </code>
  
-__Новые парсеры__: +__Нові парсери__: 
-  * **sp_parse_raw_trim_tab** - то же, что и sp_parse_raw, только возвращает одно лишь значение OID'а, обкусывая всё лишнее и в ячейке таблицы.  +  * **sp_parse_raw_trim_tab** - те саме, що і sp_parse_raw, тільки повертає одне лише значення OID'а, обкушуючи все зайве і в комірці таблиці.  
-  * **sp_parse_division_units** - обрабатывает параметры **DIV** и **UNITS**, если таковые есть в секции и производит соответствующие операции деления и "приклеивания" единиц измерения к распарсенному значениюДелает этого для каждого найденного портасогласно индексу портов и возвращает значение в виде: \\ //номер порта => значение_OID + единицы измерения // +  * **sp_parse_division_units** - обробляє параметри **DIV** і **UNITS**, якщо такі є в секції, та виконує відповідні операції ділення і "приклеювання" одиниць виміру до розпарсованого значенняРобить цього для кожного знайденого портузгідно з індексом портів і повертає значення у вигляді: \\ //номер порту => значення_OID + одиниці виміру // 
-  * **sp_parse_division_units_noport** - то же, что и sp_parse_division_units, но ничего не знает о портах и их индексах, обрабатывает одиночное значениеПолезен для вывода информации о таких штукахкак заргузка/температура CPU, температура девайса, скорость оборотов вентилятора и прочей информации о "здоровье" девайса. +  * **sp_parse_division_units_noport** - те саме, що і sp_parse_division_units, але нічого не знає про порти та їхні індекси, обробляє одиночне значенняКорисний для виведення інформації про такі штукияк заргузка/температура CPU, температура девайса, швидкість обертів вентилятора та іншо інформації про "здоров" девайса. 
-  * **sp_parse_mikrotik_poe** - как несложно догадаться из названия - предназначен для шаблонов устройств Mikrotik с поддержкой питания других устройств по PoE. +  * **sp_parse_mikrotik_poe** - як нескладно здогадатися з назви - призначений для шаблонів пристроїв Mikrotik з підтримкою живлення інших пристроїв по PoE. 
-  * **sp_parse_sw_port_idx** - собственно - сердце кумулятивного опроса, задача которого - "построитьиндекс портов девайса. Мало полезен для отдельностоящего обособленного использования. +  * **sp_parse_sw_port_idx** - власне - серце кумулятивного опитування, завдання якого - "побудувати" індекс портів девайса. Мало корисний для окремого відокремленого використання. 
-  * **sp_parse_sw_port_descr** - как и предыдущий парсер - предназначен больше для "служебных" целей. Строит массив описаний/наименований портов, "добываяих из //ifDescr// или //ifAlias//.+  * **sp_parse_sw_port_descr** - як і попередній парсер - призначений більше для "службових" цілей. Будує масив описів/найменувань портів, "добуваючиїх з //ifDescr// або //ifAlias//.
  
  
-Так как же в итоге будет выглядеть кумулятивный шаблон для устройства? Покажем на примере довольно известного девайса ** Mikrotik RB260GSP / CSS106-1G-4P-1S**:+То як же в підсумку матиме вигляд кумулятивний шаблон для пристрою? Покажемо на прикладі досить відомого девайса ** Mikrotik RB260GSP / CSS106-1G-4P-1S**:
 <code ini> <code ini>
 [define] [define]
Рядок 412: Рядок 412:
 PARSER=sp_parse_raw_trim_tab PARSER=sp_parse_raw_trim_tab
 </code> </code>
-====== А если требуется делать еще и snmpset? ======+====== А якщо потрібно робити ще й snmpset? ======
  
-Начиная с релиза 0.8.4 появилась возможность в процессе опроса, делать устройствам snmp set. Для этого в каждой секции за исключением "define" добавлена возможность указать опцию SETOIDS в формате:+Починаючи з релізу 0.8.4 з'явилася можливість у процесі опитування робити пристроям snmp set. Для цього в кожній секції за винятком "define" додано можливість вказати опцію SETOIDS у форматі:
  
 <code ini> <code ini>
Рядок 420: Рядок 420:
 </code> </code>
  
-Где oid является собственно oid-ом, value является значением которое будет установлено, а type указывает на тип и может принимать следующие значения:+Де oid є власне oid-ом, value є значенням, яке буде встановлено, а type вказує на тип і може набувати таких значень:
  
   * i INTEGER   * i INTEGER
Рядок 433: Рядок 433:
   * b BITS   * b BITS
  
-Следует также заметитьчто секция с SETOIDS может быть самодостаточной и не требует указания других опций, таких как NAME, OIDS или скажем PARSER. В таком случае, она просто проведет по очереди все write операции и завершит свою работу. Вот пример указания port description для двух портов:+Слід також зауважити, що секція з SETOIDS може бути самодостатньою і не потребує вказівки інших опцій, як-от NAME, OIDS чи скажімо PARSER. У такому разівона просто проведе по черзі всі write операції і завершить свою роботу. Ось приклад зазначення port description для двох портів:
 <code ini> <code ini>
 [portnames] [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" 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>
-Хотя да, никто не запрещает быть ей при этом обычной интерактивной секцией и показывать в процессе своей работы какие-то результаты. Например како так: +Хоча так, ніхто не забороняє бути їй при цьому звичайною інтерактивною секцією і показувати в процесі своєї роботи якісь результати. Наприклад якось так: 
  
 <code ini> <code ini>
Рядок 447: Рядок 447:
 PARSER=sp_parse_raw PARSER=sp_parse_raw
 </code> </code>
-В таком случае, следует всегда помнить о том, что сначала всегда выполняются все snmp set операции, а потом уже производиться опрос и рендер указанных в опции OIDS данных.+У такому разі слід завжди памтати про те, що спочатку завжди виконуються всі snmp set операції, а потім вже проводитиметься опитування і рендер зазначених в опції OIDS даних.
  
 <code ini> <code ini>
Рядок 453: Рядок 453:
 PON_ONU_PORT_MAX=128 PON_ONU_PORT_MAX=128
 </code> </code>
-Если вы используете две технологии ПОН у себя в сети и вам нужно перекрыть глобальный обязательный параметр [[alteriniconf|alter.ini]] PON_ONU_PORT_MAX - то добавьте этот параметр в SNMP шаблоны для OLT и у вас будет нормально отображаться статистика и другие параметры+Якщо ви використовуєте дві технології ПОН у себе в мережі і вам потрібно перекрити глобальний обов'язковий параметр [[alteriniconf|alter.ini]] PON_ONU_PORT_MAX - то додайте цей параметр у SNMP-шаблони для OLT, і у вас буде нормально відображатися статистика та інші параметри
-====== Генератор шаблонов ====== +====== Генератор шаблонів ====== 
-Также камрадом [[http://local.com.ua/forum/user/16245-demonidze/|DemonidZe]] был запилен [[http://swgen.ubilling.net.ua/|генератор шаблонов опроса оборудования]], для тех кому лень самому разбираться.+Також камрад [[http://local.com.ua/forum/user/16245-demonidze/|DemonidZe]] запилив [[http://swgen.ubilling.net.ua/|генератор шаблонів опитування обладнання]], для тихкому ліньки самому розбиратися.
  
switchpoller.1686931284.txt.gz · Востаннє змінено: 2023/06/16 19:01 повз skybetik