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

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


switchpoller

Розбіжності

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

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

Наступна ревізія
Попередня ревізія
Наступна ревізія По сторонах наступні версії
switchpoller [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
switchpoller [2023/06/16 19:01]
skybetik
Рядок 1: Рядок 1:
-====== Опрос свичей посредством SNMP ====== +====== Опитування свічів за допомогою SNMP ====== 
-В Ubilling начиная с релиза 0.4.1 появилась возможность опроса активного сетевого оборудования посредством SNMP (требует установленного net-snmp). Механика опроса шаблонизирована и позволяет опрашивать оборудование по любым OID-ам. Также модуль "Опрос свичей" использует в своей работе кеширование результатов, что позволяет сделать отображение результатов приемлемым по времени.+В Ubilling починаючи з релізу 0.4.1 з'явилася можливість опитування активного мережевого обладнання за допомогою SNMP (вимагає встановленого net-snmp). Механіка опитування шаблонізована і дає змогу опитувати обладнання за будь-якими OID-ами. Також модуль "Опитування свічіввикористовує у своїй роботі кешування результатів, що дає змогу зробити відображення результатів прийнятним за часом.
  
-====== Поддерживаемое из коробки оборудование ======+====== Підтримуване з коробки обладнання ======
   * ZyXEL GS-4012F   * ZyXEL GS-4012F
   * ZyXEL GS-3012F   * ZyXEL GS-3012F
Рядок 49: Рядок 49:
   * D-Link DGS-1210-12TS   * D-Link DGS-1210-12TS
   * D-Link DGS-3000-28SC   * D-Link DGS-3000-28SC
 +  * D-Link DGS-3627G
   * HP ProCurve Switch 2626   * HP ProCurve Switch 2626
   * HP ProCurve Switch 2650   * HP ProCurve Switch 2650
Рядок 71: Рядок 72:
  
  
-И много-много других, о которых мы уже задолбались писать. Давайте вы сами посмотрите что будет работать из коробки заглянув в директорию **config/snmptemplates**?+І багато-багато інших, про які ми вже задовбалися писати. Давайте ви самі подивитеся що буде працювати з коробки заглянувши в директорію **config/snmptemplates**?
  
  
  
-====== Настройка ======+====== Налаштування ======
  
-В общем случае настройка сводиться к добавлению модели свича с правильным шаблоном SNMP+У загальному випадку налаштування зводитися до додавання моделі свіча з правильним шаблоном SNMP
  
 {{ :swmodeladdsnmp.png? |}} {{ :swmodeladdsnmp.png? |}}
  
  
-После чего следует добавить устройство с нужной моделькой и указанным SNMP комьюнити, а также подстрокой SWPOLL в описании, которая сигнализирует Ubilling о томчто для данного устройства следует применить стандартные механизмы опроса относительно выбранного шаблона.+Після чого слід додати пристрій із потрібною моделькою і зазначеним SNMP ком'юніті, а також підрядком SWPOLL в описіякий сигналізує Ubilling про тещо для цього пристрою слід застосувати стандартні механізми опитування щодо обраного шаблону.
  
 {{ :switchsnmpadd.png? |}} {{ :switchsnmpadd.png? |}}
  
  
-Если все добавлено верно - у свича в колонке действия должна появиться иконка "Опрос при помощи SNMP"+Якщо все додано правильно - у свіча в колонці дії має з'явитися іконка "Опитування за допомогою SNMP"
  
 {{ :switchsnmpactions.png? |}} {{ :switchsnmpactions.png? |}}
  
-Набор параметров запрашиваемых с устройства, полностью зависит от выбранного шаблона и может быть практически произвольным. Также возможно отображение FDB с устройства.+Набір параметрів, що запитуються з пристрою, повністю залежить від обраного шаблону і може бути практично довільним. Також можливе відображення FDB з пристрою.
  
 {{:swpolln0.png?200 |}} {{:swpolln0.png?200 |}}
Рядок 98: Рядок 99:
  
  
-Учитываячто опрос устройства происходит не слишком быстро, для ускорения отображения результатов используется механика кеширования. Для периодического опроса всех устройств, с целью заполнения кеша сырых данных следует использовать вызов **swpoll** из [[remoteapi|API удаленного вызова процедур]].\\+Враховуючи, що опитування пристрою відбувається не надто швидко, для прискорення відображення результатів використовується механіка кешування. Для періодичного опитування всіх пристроїв, з метою заповнення кешу сирих даних слід використовувати виклик **swpoll** з [[remoteapi|API віддаленого виклику процедур]].\\
  
  
-====== Формат шаблона для опроса устройства ====== +====== Формат шаблону для опитування пристрою ====== 
-Шаблоны всех устройств лежат в **/config/snmptemplates/** и имеют например какой-то такой вид:+Шаблони всіх пристроїв лежать у **/config/snmptemplates/** і мають, наприклад, якийсь такий вигляд:
  
 <file ini megaswitch9000> <file ini megaswitch9000>
Рядок 121: Рядок 122:
 </file> </file>
  
-или такой для OLT:+або такий для OLT:
  
 <file ini BDCOM_GP3608> <file ini BDCOM_GP3608>
Рядок 156: Рядок 157:
 </file> </file>
  
-Как видим файл состоит из секций.\\ +Як бачимо файл складається із секцій.\\ 
-Секция **[define]** является обязательнойВ ней описываются такие характеристики устройства как **DEVICE** (полное наименование моделии булевый параметр FDB означающий, что для устройства следует попытаться достать FDB а также необязательный параметр **FDB_MODE** указывающий на метод опроса FDB таблиц. Он может принимать значения default (по-умолчаниюили dlp (для некоторых моделей свитчей Dlink) и tlp5428ev2 для соответствующего tp-link. В случаеесли параметр FDB_MODE не указан, помолчанию будет считаться, что он установлен в значение default. \\ +Секція **[define]** є обов'язковоюУ ній описуються такі характеристики пристрою як **DEVICE** (повне найменування моделіі булевий параметр FDB, який означає, що для пристрою слід спробувати дістати FDBа також необов'язковий параметр **FDB_MODE**, який вказує на метод опитування FDB таблицьВін може приймати значення default (за замовчуваннямабо dlp (для деяких моделей світчів Dlink) і tlp5428ev2 для відповідного tp-link. У разіякщо параметр FDB_MODE не вказано, за замовчуванням вважатиметься, що він встановлений у значення default. \\ 
-Также существуют необязательные параметры+Також існують необов'язкові параметри
-  * **FDB_ALLOW_ONLY_PORTS** - указываетчто исключительно те MAC адреса, которые находятся за этими портами, будут учтены при парсинге FDB. +  * **FDB_ALLOW_ONLY_PORTS** - вказуєщо виключно ті MAC-адресиякі знаходяться за цими портами, будуть враховані під час парсингу FDB. 
-  * **FDB_IGNORE_PORTS** - указывает порты, MAC адреса находящиеся за которыми будут исключены при парсинге FDB. +  * **FDB_IGNORE_PORTS** - вказує порти, MAC-адреси, що знаходяться за якимибудуть виключені під час парсингу FDB. 
-Следует отметитьчто параметр //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/** і редагувати його вже там.
 \\ \\
  
-На данный момент доступны следующие парсеры полученных из OID данных:+Наразі доступні такі парсери отриманих з OID даних:
  
-  * **sp_parse_raw** - данные показываются как есть без особой обработки +  * **sp_parse_raw** - дані показуються як є без особливої обробки 
-  * **sp_parse_raw_sanitized** - данные будут показаны как есть, просто с выкушенным типом. +  * **sp_parse_raw_sanitized** - дані будуть показані як є, просто з викушеним типом. 
-  * **sp_parse_zyportbytes** - счетчики байт/пакетов на портах +  * **sp_parse_zyportbytes** - лічильники байт/пакетів на портах 
-  * **sp_parse_zyportdesc** - строковые описания портов +  * **sp_parse_zyportdesc** - строкові описи портів 
-  * **sp_parse_zyportstates** - состояние портов  +  * **sp_parse_zyportstates** - стан портів 
-  * **sp_parse_ciscocpu** - нагрузка на CPU в % +  * **sp_parse_ciscocpu** - навантаження на CPU в % 
-  * **sp_parse_ciscomemory** - количество занятой памяти в Мб +  * **sp_parse_ciscomemory** - кількість зайнятої пам'яті у Мб 
-  * **sp_parse_eltex_acpower** - напряжение AC питания свитчей Eltex +  * **sp_parse_eltex_acpower** - напруга AC живлення світчів Eltex 
-  * **sp_parse_eltex_dcpower** - напряжение DC питания свитчей Eltex +  * **sp_parse_eltex_dcpower** - напруга DC живлення світчів Eltex 
-  * **sp_parse_eltex_battery** - уровень заряда АКБ свитчей Eltex +  * **sp_parse_eltex_battery** - рівень заряду АКБ світчів Eltex 
-  * **sp_parse_fxportstates** - состояние портов для некоторых Foxgate 60xx +  * **sp_parse_fxportstates** - стан портів для деяких Foxgate 60xx 
-  * **sp_parse_fxportbytes** - счетчики байт/пакетов на портах для некоторых Foxgate 60xx +  * **sp_parse_fxportbytes** - лічильники байт/пакетів на портах для деяких Foxgate 60xx 
-  * **sp_parse_cable_tester** - парсер кабельного тестера для свитчей Dlink +  * **sp_parse_cable_tester** - парсер кабельного тестера для світчів Dlink 
-  * **sp_parse_time_seconds** - парсер времени из секунд в человеко-читабельный вид +  * **sp_parse_time_seconds** - парсер часу із секунд у людино-читабельний вигляд 
-  * **sp_parse_power** - парсер наличия электроэнергии (1/0). +  * **sp_parse_power** - парсер наявності електроенергії (1/0). 
-  * **sp_parse_eping_temp** - парсер температуры с Equicom ping3 (да, она тупо делиться на 10) +  * **sp_parse_eping_temp** - парсер температури з Equicom ping3 (таквона тупо ділитися на 10) 
-  * **sp_parse_eping_temp_gauge** - нормальный такой градусник для Equicom ping3 +  * **sp_parse_eping_temp_gauge** - нормальний такій градусник для Equicom ping3 
-  * **sp_parse_division_temperature** - универсальный градусник с делением значений на DIV и форматом шкалы в виде UNITS="min|max|yellow|red"+  * **sp_parse_division_temperature** - універсальний градусник з розподілом значень на DIV і форматом шкали у вигляді UNITS="min|max|yellow|red"
  
-Также доступны следующие режимы FDB:+Також доступні наступні режими FDB:
   * default   * default
   * dlp   * dlp
Рядок 197: Рядок 198:
   * ciscoebobo   * ciscoebobo
  
-====== Формат "кумулятивного" шаблона для опроса устройства ====== +====== Формат "кумулятивного" шаблону для опитування пристрою ====== 
-Полностью базируется на базовом формате шаблонов, но имеет свои особенности, о которых будет рассказано ниже. Собственно вся "кумулятивность" заключается в том, что нам не нужно указывать конкретный порт для каждой секции в конце OID'а - мы указываем только OID необходимой нам таблицыбудь то //dot1dFdb//, //dot1qFdb//, банальный //ifDescr//  или чуть менее банальный //ifAlias//. А дальше наш модуль уже самостоятельно переберет все имеющиеся порты и по их индексам постарается достать все, что сможет(ну, из того, что мы укажем в шаблонеконечно). \\+Повністю базується на базовому форматі шаблонів, але має свої особливостіпро які буде розказано нижче. Власне вся "кумулятивність" полягає в томущо нам не потрібно вказувати конкретний порт для кожної секції наприкінці OID'а - ми вказуємо тільки OID необхідної нам таблицічи то //dot1dFdb//, //dot1qFdb//, банальний //ifDescr//  або трохи менш банальний //ifAlias//. А далі наш модуль уже самостійно перебере всі наявні порти і за їхніми індексами постарається дістати все, що зможе (ну, з того, що ми вкажемо в шаблонізвісно). \\
  
-__Итак, новые параметры секции **[define]**__:+__Отже, нові параметри секції **[define]**__:
  
-  * **POLLMODE** должен быть всегда **cumulative**, если мы хотим именно "кумулятивно обрабатывать шаблон" +  * **POLLMODE** має бути завжди **cumulative**, якщо ми хочемо саме "кумулятивно обробляти шаблон" 
-  * **FDB_MODE** должен быть всегда **sw_cumulative**, если мы хотим попытаться достать описания интерфейсов и номера VLAN  +  * **FDB_MODE** має бути завжди **sw_cumulative**, якщо ми хочемо спробувати дістати описи інтерфейсів і номери VLAN  
-  * **SFPSTARTPORT**, **SFPENDPORT** - полезны для устройств, имеющих на борту как медные, так и SFP-порты, для которых вы собираетесь в шаблоне использовать секции **[SFP....]**, такие как //[SFPTXPOWER]//, //[SFPRXPOWER]//, //[SFPWAVELENGTH]// и прочие. Нужны они главным образом для того, чтобы избежать визуализации пустых значений для медных портов.  +  * **SFPSTARTPORT**, **SFPENDPORT** - корисні для пристроїв, що мають на борту як мідні, так і SFP-порти, для яких ви збираєтеся в шаблоні використовувати секції **[SFP....]**, такі як //[SFPTXPOWER]//, //[SFPRXPOWER]//, //[SFPWAVELENGTH]// та інші. Потрібні вони головним чином для того, щоб уникнути візуалізації порожніх значень для мідних портів. 
-  * **POESTARTPORT**, **POEENDPORT** - используются ровным счетом для тех же целей, что и предыдущие два параметра, только на этот раз с их помощью мы определяем PoE порты устройства. То бишь портыс которых опрашиваемый девайс может питать другие девайсы. Для корректного опроса таких портов нам понадобятся секции **[POE....]**  +  * **POESTARTPORT**, **POEENDPORT** - використовуються зовсім для тих самих цілей, що і попередні два параметри, тільки цього разу з їхньою допомогою ми визначаємо PoE порти пристрою. Тобто портиз яких опитуваний девайс може живити інші девайси. Для коректного опитування таких портів нам знадобляться секції **[POE....]** 
-    * //Примеры секций **[SFP....]** и **[POE....]** вы найдете ниже, в шаблоне для примера// \\+    * //Приклади секцій **[SFP....]** і **[POE....]** ви знайдете нижче, в шаблоні для прикладу// \\
  
-__Далее немного об "особенных" секциях:__ \\+__Далі трохи про "особливі" секції:__ \\
  
 **PORTIFACE** - в этой секции указываются OID'ы для получения индексов портов, дескрипшинов и алиасов портов. На закономерный вопрос: "А зачем и дескрипшины, и алиасы?" - даем не менее закономерный ответ: "А зачем они вообще существуют по отдельности?". Но, если серьезно - логика здесь весьма проста: некоторые девайсы хранят наименования интерфейсов в //ifDescr//, а некоторые - в //ifAlias//. Потому наш модуль сначала пытается найти описание порта в //ifDescr//, а если не находит - тогда уже в //ifAlias//. И нам абсолютно не нужно над этим заморачиваться. Удобно, не правда ли? **PORTIFACE** - в этой секции указываются OID'ы для получения индексов портов, дескрипшинов и алиасов портов. На закономерный вопрос: "А зачем и дескрипшины, и алиасы?" - даем не менее закономерный ответ: "А зачем они вообще существуют по отдельности?". Но, если серьезно - логика здесь весьма проста: некоторые девайсы хранят наименования интерфейсов в //ifDescr//, а некоторые - в //ifAlias//. Потому наш модуль сначала пытается найти описание порта в //ifDescr//, а если не находит - тогда уже в //ifAlias//. И нам абсолютно не нужно над этим заморачиваться. Удобно, не правда ли?
switchpoller.txt · Востаннє змінено: 2023/06/19 09:29 повз borisov