NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

0. Інтро

Я не знайшов на Хабре жодної статті з NetXMS, хоча дуже шукав. І тільки тому вирішив написати цей витвір, щоб приділити увагу цій системі.

Це і tutorial, і як це, і поверховий огляд можливостей системи.

Ця стаття містить поверхневий аналіз та опис можливостей системи. Глибоко в нагоді я не закопувався з низки причин. Та й опис всього функціоналу зайняв би не одну статтю.

Оскільки більш-менш я працював тільки з Zabbix'ом — у статті часто згадуватиметься саме ця система для порівняння з сабжем. До того ж так повелося, що все порівнюється з чимось загальновизнаним.

1. Що й навіщо?

Система моніторингу, як видно з визначення, - система, що дозволяє в будь-який момент часу отримати актуальну інформацію по будь-якому вузлу мережі машині маршрутизатору вписати потрібне.

Навіщо це потрібно так само очевидно. Щоб бути в курсі того, що відбувається.

Найчастіше система моніторингу може дати дуже вичерпну інформацію про стан як інфраструктури в цілому, так і окремих її частин. Плюс до того, якщо налаштувати оповіщення (а без неї гріш ціна будь-якому моніторингу), то на виході ми отримуємо серйозний інструмент, який дозволяє не тільки своєчасно реагувати на аварійні ситуації, що вже виникли, але і, в більшості випадків, дає можливість ці аварії запобігти.

2. Чому NetXMS?

Трохи оффтопа для тих, хто любить багатобукаффПід час свого перебування молодим і недосвідченим… Так зазвичай усі казки починаються?.. Словом, коли я був максималістом, я вивчав питання моніторингу інфраструктури, і результатом тих «досліджень» став висновок про те, що краще за Zabbix нічого немає. І на той момент він мені справді сподобався, бо багато може, багато вміє, і його функціонал можна розширити самописними скриптами, тож можна сказати, що він може взагалі все, якщо руки ростуть із правильного місця. Але Zabbix є досить складним інструментом. Для того, щоб з ним сяк-так розібратися, у мене пішло майже два тижні. І це просто стадія застосування. Потім ще кілька тижнів на налаштування моніторингу всього, що мені тоді було необхідно. А як з його допомогою дивитися стан портів на маршрутизаторах я почитав-почитав, злякався, і вирішив, що мені це не дуже й необхідно… Ні, ну там реально страшно для непідготовленого розуму одразу після інституту…

І ось через кілька років, подорослішавши і заматерівши, я вирішив, що настав час освіжити знання про системи моніторингу. І нарешті зробити нормальний, стабільний моніторинг мережі, так як ця проблема стала актуальною у зв'язку зі зростанням сегментів, підключенням філії та інших дрібниць. Все ж таки тече, все змінюється. І почав я тестувати всілякі інструменти. То цю систему поставлю, торкнуся, то ту. І всюди чогось не вистачає, скрізь щось не подобається. То інтерфейс незручний, то налаштовувати замучишся, то ще чогось. І тут мені підвернулася NetXMS. До речі: там, де з Zabbix я розбирався два тижні, з NetXMS все пішло-поїхало за кілька годин. Можливо, дався взнаки досвід роботи з Zabbix, а може бути справа в самому NetXMS ... важко сказати.

NetXMS виявилася досить простою в установці та налаштуванні системою. У неї є версії сервера та консолі адміністрування як під Windows так і під Linux, Побудова графіків, вбудований «браузер», який дозволяє зсередини консолі адміністрування коннектитися до тих же маршрутизаторів за протоколами httphttps, і інтерфейс інтуїтивно зрозумілий, а так само агент під будь-яку ОС. Словом, ця система виявилася простою та зручною. На перший погляд.

Документація у них, до речі, на 8 з 10. Основні речі в ній вказані, але, щоб вникнути в тонкощі, потрібно поколупатися.

Основні плюси, позначені розробникомГлибокий моніторинг мережі
Автоматичне виявлення, візуалізація та пошук підключених компонентів на рівні 2 та 3
Повна підтримка SNMPv3
Активне виявлення за допомогою скануючих «зондів»
Пасивне виявлення на основі інформації від контрольованих пристроїв - ARP та таблиць маршрутизації, інтерфейсів
Моніторинг додатків та серверів
Усі основні метрики, на які ви очікуєте: процесор, файлові системи, введення-виведення, пам'ять, трафік
Міст JMX для моніторингу програм Java
Розширення для конкретних додатків: Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo та багато інших
API інтеграції для власних програм
Призначений для великих мереж
Один сервер може відстежувати сотні метриків на тисячах пристроїв
Повна підтримка розподіленого моніторингу та горизонтального масштабування
Моніторинг IP-підмереж, що перекриваються
Гнучкий контроль доступу для операторів та клієнтів

3. Заглиблюємось

Як встановити систему - є цілий мануал адміністратора, доступний на сайті розробника, і нічого складного в цьому немає, тому на цьому зупинятись не буду. Найважче в установці - підключення системи до бази даних ... Тут різниця буде лише у виборі СУБД та ОС сервера. Я вибрав Windows (далі-далі-ввести дані-готово) та MSSQL, тому що він у мене вже був.

3.1. Включаємо автовиявлення

Автоматичне виявлення вузлів мережі можна увімкнути під час встановлення. Якщо це було зроблено з якихось причин, його завжди можна включити в "Configuration-Network Discovery" або клацнувши на іконку з тим же ім'ям. У робочій області з'являться властивості виявлення. Потрібно його включити, перевівши в пасивний або активний режим, і позначити інші властивості, наприклад, підмережі, що опитуються. Також тут можна накрутити фільтри, причому можна як вибрати і доналаштувати вбудовані в систему, так і написати власні скрипти. Чесно скажу, мені фільтри не знадобилися. Але виглядає налаштування досить дружелюбно та зрозуміло.

Також тут можна вказати SNMP community за умовчанням та його credentials (читай авторизацію).

3.2. Додавання вузлів

При увімкненому автовиявленні кінцеві ноди (ПК, принтери) будуть додані та розподілені по підмережах автоматично. З активним мережевим обладнанням дещо складніше.

Почати слід з увімкнення на мережному обладнанні SNMP і настроївши community. Якщо у властивостях автовиявлення вузлів мережі не змінювалося значення за промовчанням для SNMP community, то система використовує public community, при цьому дану настройку можна змінити для кожного вузла у властивостях ноди, що додається.

Для зручності можна групувати девайси за будь-яким зручним принципом, для цього в дереві можна створювати контейнери в гілці Infrastructure Services і биндити ноди з Entrie Network.

Після включення та налаштування SNMP на маршрутизаторах і додавання їх до списку обладнання, що відстежується, система сама з ними зв'яжеться, опитає, визначить, що це за девайси, застосує шаблони, почне збір даних і покаже front pannel для кожного маршрутизатора. Сама. З коробки. Коли я налаштовував Zabbix, про подібне я міг тільки мріяти.

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

Я додавав усі свої мережеві залозки вручну, тому що самі вони в мене чомусь не виявилися. Тут усе просто. Створюємо контейнер в Infrastructure Services з будь-якою зручною назвою (наприклад switches), та ПКМ-створити-ноду, вказати ім'я ноди, її IP-address і краще поставити галку на «відключити використання NetXMS агента», так як його все одно неможливо встановити на мережне обладнання, а зайві пакети ні до чого.

Вбудований браузер. Можна просто ПКМ на потрібному маршрутизаторі та відкрити web-інтерфейс девайсу. Мені це здалося зручніше, ніж щоразу лізти у свої записи та шукати потрібний IP. Щоправда, браузер так собі.

3.3. Побудова карти мережі

Насамперед потрібно створити картку мережі як об'єкт. Як завжди - у гілці Networks Map ПКМ, створити, вибрати тип картки, задати параметри, І система далі все зробить сама.

Типи карток наступні:

  1. індивідуальні умови. Це карта, призначена для формування вручну за бажанням користувача.
  2. Layer 2 topology. Це карта, що дозволяє автоматично зробити все за користувача, спираючись на 2 рівень моделі OSI (по-суті, будує карту, ґрунтуючись на mac-адресах пристроїв).
  3. IP topology, Вона ж Layer 3. Те ж саме, що і у випадку з Layer 2, тільки карта будується на основі 3 рівня моделі OSI (IP-адреси).

При виборі ручного складання картки потрібно перетягувати ноди з дерева на шар карти, з'єднувати їх і т.д. Звичайне малювання.

У інших випадках потрібно вибрати точку відліку, з якою система почне будувати карту. Наприклад, ноду якогось маршрутизатора. Система зчитує з нього дані про підключені пристрої та порти, до яких вони підключені, після чого зчитує дані з наступного маршрутизатора, зіставляє, і так далі. Після аналізу всіх пристроїв NetXMS сама намалює зв'язок між пристроями мережі із зазначенням портів, куди що підключено. Також можна вказати, щоб система помістила на карту в тому числі і кінцеві пристрої (принтери, ПК, сервери), просто тицьнувши у відповідний пункт у властивостях карти (ПКМ - властивості - властивості картки). Також у цьому пункті можна задати «радіус виявлення» за бажання чи необхідності.

Невелика рекомендація. Увімкніть властивість Always fit layuot to screen, щоб кожного разу оновлюючи карту мережі не доводилося прокручувати робочий простір та працювати зумом.

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

При розподіленій топології мережі можна накласти об'єкти на карту місцевості. Так само можна як фонову підкладку використовувати, наприклад, фотку стійки з обладнанням у серверній, наклавши на неї потрібні об'єкти. Таким чином можна швидко визначити статус будь-якого девайсу у стійці. На мій погляд, це вкрай корисна штука в разі необхідності передати справи наступнику або колегі, що знову прибув, пояснити стан справ. Наочно, зручно, очевидно.

3.4. Агенти

Агенти існують як для Windows, Так і для Linux. Принцип роботи такий самий, як і в агентів того ж Zabbix: встановлюється на машину, з якої потрібно знімати метрики, та передає дані на сервер моніторингу. Агента можна встановити як до додавання ноди до системи, і після. Після появи агента на ноді система через деякий час почне приймати від нього дані, застосувавши стандартний шаблон. Додати параметри, що відстежуються, можна як для однієї ноди, так і причепивши до неї один або кілька зумовлених шаблонів. Рекомендується, природно, працювати з шаблонами, оскільки це налаштування гнучкіша.

Список параметрів, що відстежуються, для агентів досить великий. Повний перелік можна переглянути у Wiki NetXMS

Як тільки система визначить, що на ноді функціонує агент, вона відразу прикріпить цю ноду до одного з дефолтних шаблонів. Windows, Linux, HP-UX, Generic UNIX, AIX, Залежно від операційної системи ноди.

Стандартний шаблон для Windows-Хостів:

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

Додати параметр для відстеження конкретної ноді можна натиснути «ПКМ-Data Collection Parameter", далі "ПКМ у робочій області - New parameter«, та вибрати потрібне зі списку. Тут же можна налаштувати і тригери для параметра, що відстежується.

Важливо, що агенти, так само як у Zabbix, вміють запускати скрипти.

Як встановити?Це оффтоп, тому що кожен… хммм… як хоче.

Тут питання в тому — чи потрібно розповсюджувати агентів лише на сервери, чи взагалі на всі машини мережі? Якщо сервери, і їх небагато – найпростіше руками. Якщо багато – політики домену, KIX, PoSh. Чим завгодно. У агентів є ключ /SILENT, що дозволяє "впровадити" його прозоро для користувача (якщо ми говоримо про розповсюдження на всі машини мережі). Я віддаю перевагу скриптам, тому що можна задати умову і створити якийсь прапор, на відміну від політик, які будуть ставити програму щоразу при включенні ПК. Отже, пишемо скрипт із серії "перевірити наявність файлу-прапора, якщо ні - запустити інсталятор з ключем /SILENT і після успішної установки створити файл-прапор". Профіт.

3.5. Тригери

Тригери можна налаштувати на реагування на певні події в даних, що збираються. Наприклад, перевищення певного значення ping-pong до маршрутизатора. Так само налаштовується спосіб оповіщення для кожного тригера (для якихось досить значка в консолі, а якісь відразу шлють оповіщення кудись тільки можна). Реакція на подію вибирається з налаштованих в Action Configuration.

Для створення тригера: увійти в Data Collection Cnfiguration ноди або шаблону, подвійне клацання по параметру, що цікавить (якщо ні, то треба його спочатку створити), і у властивостях перейти на вкладку Thresholds, натиснути кнопку додати.

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

«функція» - Яке чи які значення брати для обчислення умови. Може приймати такі значення (кількість значень, що використовуються для перевірки, вказується в полі Samples):
— Last polled value: останнє отримане значення.
- Average value: середнє значення з останніх
- Mean deviation: середнє відхилення
— Diff with previous value: різниця із попереднім значенням
- Data collection error: помилка отримання даних
- Sum of values: сума значень
— Script: значення, отримане в результаті роботи скрипта користувача

«операція» - Умова спрацьовування тригера. Може приймати значення (значення вказується у відповідному полі Value):
- <: less than: менше, ніж
— <=: less than or equal to: менше чи одно
- == equal to: еквівалентно
— >=: great than or equal to: більше чи одно
— >: great than: більше, ніж
- !=: not equal to: не еквівалентно
- like: наближено до
- not like: не наближено до
На рахунок двох останніх параметрів я не впевнений у тому, як вони працюють. Тому не буду навіть припускати які межі в них вбудовані.

Словом, все як у тому ж Zabbix, тільки не треба руками формули вписувати, боячись помилитись чи очепитися. Для відновлення тригера (deactivation event) система сама підставить значення. (У Zabbix знову треба друкувати і не опечататися).

3.6. Шаблони

ПКМ-створити шаблон, ввести ім'я шаблону. ПКМ-Data Collection Cnfiguration.

Трохи теоріїІнформація, що збирається, може надходити з декількох джерел. Це може бути агент NetXMS, що працює на машині, може бутипростий запит» aбо «Внутрішній", що надсилається самим сервером (наприклад той же ping), "SNMP«,«check point SNMP«,«Штовхати«,«Windows Лічильники продуктивності«,«SM-CLP«, або користувальницький «сценарій“. У кожного типу інформації можна вибрати тип, на який система буде очікувати при отриманні. Наприклад, ping повертатиме ціле чисельне значення (integer), кількість вільного дискового простору в байтах так само буде integer, а ось та сама температура буде вже не цілочисловим, тобто real).

Для збору інформації через SNMP в NetXMS є величезний список зумовлених параметрів, тобто можна не вписувати конкретний OID, а знайти його в дереві MIB, що насправді досить проблематично… Але. У результаті потрібно копатися в документації виробника і шукати IOD значення для кожного девайса окремо. Можна вбити багато часу на налаштування зчитування інформації з девайсів, натикаючись на повідомлення системи «UNSUPPORTED», А в результаті виявиться, що цей конкретний пристрій просто не вміє надавати потрібну інформацію. Тут залишається тільки курити мануали та сподіватися.

Наприклад, щоб збирати інформацію про час відгуку ноди (ping), потрібно додати новий параметр (ПКМ-new parameter), у полі Origin вибрати Internal, натиснути кнопку Select, та вибрати Ping Time. Там є пошук, про що в Zabbix я лише мріяв. Також є сенс змінити період опитування ноди (за замовчуванням коштує 60 секунд, тобто якщо маршрутизатор перестане відповідати відразу після того, як був опитаний системою моніторингу, то мине майже ціла хвилина до того, як система зрозуміє, що з ним щось не так, і заб'є на сполох).

Список Internal даних, які можна обробляти:

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

Після того, як до шаблону були додані всі необхідні налаштування, потрібно натиснути ПКМ-apply і вибрати всі ноди, до яких цей шаблон потрібно застосувати (ctrl+ЛКМ). І все. Після цього в дереві під шаблоном з'явиться гілка, розкривши яку можна побачити всі ноди, до яких цей шаблон застосований.

При відкріпленні від шаблону ноди, дані, що збираються, не перестають збиратися, щоб скасувати їх збір потрібно для кожної ноди зайти в Data Collection Configuration і видалити все вручну, або спочатку видалити параметри з шаблону і тільки потім видаляти з нього ноди. Я не знаю, для чого зроблено саме так, але, як на мене, це вкрай дивна штука. Але… Вже як є.

У шаблоні можна вибрати потрібні дані, що збираються, і скопіювати їх в інший шаблон. Масово. І не треба копіпастити з одного шаблону в інший руками… Я вже починаю ненавидіти Zabbix.

3.7. Панелі приладів

Як це не дивно, але NetXMS Wiki з цього приводу містить лише одне посилання на youtube: Створення інформаційної панелінемає навіть списку та опису елементів, які можна додати на Dashboard. У принципі, там так само інтуїтивно зрозуміло. етикетка — це просто… ну… Label… Я навіть не знаю, як це перекласти. Словом, поле з написом використовується для позначення та розмежування елементів, оскільки самі елементи назв не містять. Графік лінія - Це лінійний графік. Гістограма - Це діаграма. Alarm Viewer — список попереджень для обраного вузла. Словом, назви говорять самі за себе.

Далі потрібно відкрити властивості дашборду та налаштувати уявлення. Нас цікавить вкладка Dashboard Elements. Number of columns — кількість колонок, елементів, які будуть розташовані по горизонталі. У кожного об'єкта є свої властивості, і я рекомендував би знімати галку з пункту Layout-Grab execessive vertical space, щоб мінімізувати розмір кожного елемента.

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

3.8. Action Configuration

(Configuration-Actions Configuration)
По суті, це дії у відповідь спрацьовування тригерів.

NetXMS як система моніторингу для лінивих ... і трохи порівняння з Zabbix

NetXMS вміє відправляти e-mail, sms, xmpp повідомлення у відповідь на спрацювання тригера. Тут все очевидно — просто заповнити потрібні поля.

Також можна:

— Надіслати оповіщення на інший NetXMS сервер
— Виконати команду на сервері адміністрування NetXMS
- Виконати команду на ноді за допомогою агента NetXMS
- Виконати NXSL скрипт (NSXL - це свій скриптова мова програмування NetXMS)

Після створення дії можна налаштувати час затримки виконання, а також застосувати макрос для виконання. Час затримки потрібно для того, щоб не турбувати оператора у випадку, якщо проблема вирішиться сама собою (наприклад, час відповіді на ping-запит було більше заданого значення, але при наступній перевірці воно може повернутися в норму, то навіщо турбувати з таких дрібниць?) .

3.9. Розмежування прав доступу

Для кожного об'єкта можна налаштувати права доступу. Для кожного об'єкта всередині іншого об'єкта можна налаштувати права доступу. Це дозволяє дуже гнучко розподіляти обов'язки та можливості моніторингу для різних груп користувачів. Це все, що я хотів сказати.

4. висновок

Я хотів би спростувати назву своєї ж статті. NetXMS не для лінивих. Просто розробники не зробили акценту на функціональності, як деякі, але, крім іншого, подбали так само і про інтерфейс.

Давайте так. Я користувався Zabbix'ом та NetXMS. Тому просто напишу свої відчуття від двох цих систем.

Отже...

NetXMS бачиться мені вкрай доброзичливою до користувача системою. Ну... до адміна... так, до адміна. У неї є те, що називається інтуїтивно зрозумілим інтерфейсом, і це дуже здорово. Не треба писати свої формули, читати купу супровідної документації, щоб увімкнути перевірку пінгів до свіча чи ще якусь просту річ. Але. У Zabbix ця ж найпростіша річ не багатьом відрізняється від чогось реально непростого, тобто якщо освоїв це — так само зробиш і все інше. У NetXMS є підказки, більшість параметрів можна знайти в інтерфейсі, вибрати мишкою та налаштувати. У Zabbix потрібно дізнатися, а чи може система ось те й це, і якщо так - то як це пишеться і які параметри повертає. Zabbix виграє в ком'юніті і тоннах шаблонів на всі випадки життя… якщо в цій горі мотлоху вдасться знайти те, що потрібно… З іншого боку NetXMS також має купу шанувальників і створених ними добавок до цієї системи. Та й сама система з коробки вміє моніторити найпопулярніші програми, про що сказано на головній сторінці проекту.

Головним плюсом NetXMS проти Zabbix для мене виявилася можливість запустити скрипт на проблемній ноді у відповідь на спрацювання тригера. Піднялася температура ЦП вище за поріг — вона сама погасить хост. А потім уже розбиратимемося — в чому проблема. Можливо, у Zabbix така штука теж є, але я не зміг. Так само як і моніторинг портів на маршрутизаторах. А тут саме… Ну, як саме… Треба освоїти мову скрипта, і все…

Права доступу до NetXMS дозволяють дуже гнучко розмежовувати можливості різних користувачів системи. Але щоб усе це налаштувати потрібно прямо повозитися.

Загалом системи досить схожі, і можливості у них, на перший погляд, здаються, як мінімум, порівнянними. Хоча відчувається, що Zabbix може більше, але ці можливості криються глибоко під капотом і для простого смертного адміна "все в одному" недосяжні. NetXMS бачиться простою і зрозумілою, доброзичливою і приємною.

У Zabbix чудова документація, wiki, how to, FAQ, best practice, а також різноманітні форуми і т.д., де можна знайти відповіді практично на всі питання. А якщо що – задати власний.

Резюмуючи, я хотів би рекомендувати NetXMS для людей, які тільки починають або тим, кому не потрібно глибоко занурюватися в моніторинг всього і вся. Я впевнений, що якщо розбиратися з нею далі, то можна накрутити в ній дуже тонкі спостереження.

Але все ж таки головним плюсом я бачу саме дуже приємний інтерфейс і простоту налаштування.

5. Використані матеріали

youtube-канал Tomas Kirnak
NetXMS Wiki
Google-пошук

Джерело: habr.com

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster