
0. Интро
Не намерих нито една статия за NetXMS в Хабра, макар че много търсих. И само по тази причина реших да напиша това творение, за да обърна внимание на тази система.
Това е и туториал, и how to, и повърхностен преглед на възможностите на системата.
Тази статия съдържа повърхностен анализ и описание на възможностите на системата. Не се задълбочих в функциите по ред причини. И описанието на целия функционал би отнело не една статия.
Тъй като работих основно с Zabbix, в статията често ще споменавам именно тази система за сравнение с разглежданата. Също така, така се е случило, че всичко се сравнява с нещо общоприето.
1. Какво и защо?
Системата за мониторинг, както се вижда от определението, е система, която позволява по всяко време да се получи актуална информация за някакъв възел, мрежов компютър, маршрутизатор, да запиша нужното.
Защо е необходимо това — също е очевидно. За да бъдем в течение на случващото се.
Често системата за мониторинг може да предостави много изчерпателна информация за състоянието както на инфраструктурата като цяло, така и на отделни нейни части. В допълнение, ако настроим известия (а без тях цената на всяко наблюдение е минимална), получаваме мощен инструмент, който не само че позволява да реагираме своевременно на възникнали ситуации, но и в повечето случаи ни дава възможност да предотвратим тези ситуации.
2. Защо NetXMS?
Малко оффтоп за тези, които обичат многобукаф.Когато бях млад и неопитен… Така обикновено започват всичките приказки?.. Словом, когато бях максималист, изучавах въпроса за мониторинг на инфраструктурата, и резултатът от тези "изследвания" беше извода, че няма нищо по-добро от Zabbix. И в онзи момент наистина ми хареса, защото може много, умее много и функционалността му може да бъде разширена с ръчно написани скриптове, така че може да се каже, че той може всичко, ако ръцете са от правилното място. Но Zabbix е доста сложен инструмент. За да се справя с него, ми отне почти две седмици. И това беше само етапът на внедряване. После още няколко седмици за настройка на мониторинга на всичко, което ми беше необходимо тогава. А как с негова помощ да проверя състоянието на портовете на рутерите, прочетох, прочетох, уплаших се и реших, че не ми е толкова необходимо… Не, там наистина е страшно за неподготвения ум веднага след института…
И така, след няколко години, пораснал и зрял, реших, че е време да освежа знанията си за системите за мониторинг. И най-накрая да направя нормален, стабилен мониторинг на мрежата, тъй като този проблем стана належащ във връзка с растежа на сегментите, свързването на филиали и други малки детайли. Всичко тече, всичко се променя. Започнах да тествам различни инструменти. Понякога инсталирам тази система, понякога онази. И навсякъде нещо липсва, навсякъде нещо не ми харесва. То интерфейсът е неудобен, то настройката е мъчителна, то нещо друго. И тук ми попадна NetXMS. Между другото: там, където с Zabbix се справях две седмици, с NetXMS всичко тръгна за няколко часа. Може би опитът с Zabbix оказа влияние, а може би става въпрос само за NetXMS… трудно е да се каже.
NetXMS се оказа доста проста за инсталиране и настройка система. Има версии на сървъра и конзолата за администриране както за Windows, така и за Linux, изграждане на графики, вградена "браузер", който позволява от конзолата за администриране да се свързва към същите рутери по протоколите http и https, а интерфейсът е интуитивно понятен, както и агент за всяка операционна система. Словом, тази система се оказа проста и удобна. На пръв поглед.
Документацията им, между другото, е с оценка 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 общността и нейните идентификационни данни (четете удостоверяване).
3.2. Добавяне на възли
При включеното автооткриване крайните възли (ПК, принтери) ще бъдат добавени и разпределени по подсетите автоматично. С активното мрежово оборудване всичко е малко по-сложно.
Започнете с включването на SNMP на мрежовото оборудване и настройването на community. Ако стойността по подразбиране за SNMP community не е променяна в свойствата на автооткриването на мрежовите възли, системата използва public community, като тази настройка може да бъде променена за всеки възел в свойствата на добавения възел (node).
За удобство можете да групирате устройствата по какъвто и да е удобен принцип, за което в дървото можете да създавате контейнери в клона Infrastructure Services и да свързвате в тях възли от Entrie Network.
След включването и настройването на SNMP на маршрутизаторите и добавянето им в списъка на наблюдаваното оборудване, системата сама ще се свърже с тях, ще ги запита, ще определи какви устройства са, ще приложи шаблоните, ще започне да събира данни и ще покаже front panel за всеки маршрутизатор. Сама. От коробката. Когато настройвах Zabbix, за подобно можех само да мечтая.

Добавях всичките си мрежови устройства ръчно, тъй като по някаква причина не се откриваха сами. Всичко е просто. Създайте контейнер в Infrastructure Services с каквото и да е удобно име (например switches), и ПКМ-създаване-на-възел, посочете показваното име на възела, неговия IP-адрес и е по-добре да поставите отметка на 'изключване на използването на NetXMS агента', тъй като все едно не може да бъде инсталиран на мрежовото оборудване, а излишните пакети не са необходими.
Вграден браузър. Можете просто да щракнете с десния бутон на мишката на необходимия маршрутизатор и да отворите уеб интерфейса на устройството. Това ми се стори по-удобно, отколкото всеки път да търся в записите си необходимия IP. Всъщност, браузерът е така си.
3.3. Създаване на картата на мрежата
На първо място, необходимо е да създадете карта на мрежата като обект. Както обикновено — в клона Networks Map щракнете с десния бутон, създайте, изберете тип карта, задайте параметри, и системата след това ще направи всичко сама.
Типовете карти са следните:
- Custom. Това е карта, предназначена за ръчно формиране, по желание на потребителя.
- Layer 2 topology. Това е карта, позволяваща автоматично да се направи всичко за потребителя, основавайки се на второто ниво на модела OSI (по същество, строи карта на основата на MAC адресите на устройствата).
- IP topology, също така Layer 3. Същото е, както в случая с Layer 2, само че картата се строи на основата на трето ниво на модела OSI (IP адресите).
При избора на ръчно създаване на карта, трябва да местите възлите от дървото на слоя на картата, да ги свързвате и т.н. Обикновено рисуване.
В другите два случая е необходимо да изберете точка на отчитане, от която системата ще започне да изгражда картата. Например, възел на някой маршрутизатор. Системата прочита данни от него за свързаните устройства и портовете, към които са свързани, след което прочита данните от следващия маршрутизатор, съпоставя и така нататък. След анализа на всички устройства, NetXMS самостоятелно ще нарисува връзките между устройствата в мрежата, с указание за портовете, към които е свързано всичко. Можете също така да зададете, че системата да постави на картата и крайни устройства (принтери, компютри, сървъри), просто като кликнете на съответния пункт в свойствата на картата (ПКМ — свойства — свойства на картата). Също така в тази точка може да зададете "радиус на откриване", ако желаете или е необходимо.
Малко препоръка. Включете свойството Always fit layout to screen, за да не се налага да превъртате работното пространство и да работите с мащабиране всеки път, когато обновявате картата на мрежата.

При разпределена топология на мрежата, можете да наложите обекти на картата на местността. Можете също така да използвате, например, снимка на стойка с оборудване в сървърното помещение като фон, налагайки на нея нужните обекти. По този начин можете бързо да определите статуса на всяко устройство в стойката. Според мен това е изключително полезно, в случай че трябва да предадете работата на наследник или нов колега, за да обясните ситуацията. Нагледно, удобно, самоочевидно.
3.4. Агенти
Агентите съществуват както за Windows, така и за Linux. Принципът на работа е същият, както при агентите на същия Zabbix: инсталира се на машината, от която трябва да се извлекат метрики, и предава данни на сървъра за мониторинг. Агентът може да бъде инсталиран както преди добавянето на възела в системата, така и след това. След появата на агента на възела, системата след известно време ще започне да приема данни от него, използвайки стандартен шаблон. Добавянето на мониторинг параметри може да се извърши както за един възел, така и като се прикрепят един или повече предварително зададени шаблона. Препоръчително е, разбира се, да работите с шаблони, тъй като тази настройка е по-гъвкава.
Списъкът на наблюдаваните параметри за агентите е доста обширен. Пълният списък може да се види в
В момента, в който системата определи, че на нода работи агент, тя незабавно ще прикрепи този нод към един от предварително зададените шаблони — Windows, Linux, HP-UX, Generic UNIX, AIX, в зависимост от операционната система на нода.
Стандартният шаблон за Windows хостове:

Можете да добавите параметър за наблюдение на конкретен нод, като щракнете на "ПКМ-Data Collection Parameter" и след това "ПКМ в работната област — New parameter", и да изберете нужния от списъка. В същото време можете да конфигурирате и тригери за наблюдавания параметър.
Важно е да се отбележи, че агентите, подобно на Zabbix, могат да стартират потребителски скриптове.
Как да инсталирам?Това е оффтоп, тъй като всеки… хммм… както иска.
Тук въпросът е — трябва ли да разпространяваме агентите само на сървъри или изобщо на всички машини в мрежата? Ако са само сървъри и са малко — най-лесно е ръчно. Ако са много — домейнни политики, KIX, PoSh. Каквото и да е. Агентите имат ключ /SILENT, който позволява „внедряването“ да е прозрачно за потребителя (ако говорим за разпространение на всички машини в мрежата). Предпочитам скриптове, тъй като може да се зададе условие и да се създаде някакъв флаг, в отличие от политиките, които инсталират програмата всеки път при включване на ПК. И така, пишем скрипт от типа „провери наличието на файл-флаг, ако няма — стартирай инсталатора с ключа /SILENT и след успешна инсталация създай файл-флаг“. Печалба.
3.5. Тригери
Тригери могат да бъдат настроени да реагират на определени събития в събираните данни. Например, превишаване на определена стойност на ping-pong до маршрутизатора. Също така, начинът на уведомление за всеки тригер може да бъде конфигуриран (за някои е достатъчно иконка в конзолата, а други веднага изпращат уведомления навсякъде, където могат). Реакцията на събитие се избира от предварително зададените в Action Configuration.
За да създадете тригер: влезте в Data Collection Configuration на нодата или шаблона, двойно щракване върху интересуващия параметър (ако няма, първо трябва да го създадете), и в свойствата преминете на раздела Thresholds, след което натиснете бутона за добавяне.

«Функция— каква или какви стойности да се вземат за изчисляване на условието. Може да приема следните стойности (броят на използваните за проверка стойности се указва в полето Samples):
— Last polled value: последна/и получена/и стойност/сти
— Средна стойност: средна стойност от последните
— Средно отклонение: средно отклонение
— Разлика с предишната стойност: разлика с предишната стойност
— Грешка при получаване на данни: грешка при получаване на данни
— Сума от стойностите: сума от стойностите
— Скрипт: стойността, получена в резултат на изпълнението на потребителския скрипт
«Операция» — условие за задействане на тригера. Може да приема стойности (стойността се посочва в съответното поле Value):
— <: по-малко от: по-малко от
— <=: по-малко или равно на: по-малко или равно на
— == равно на: еквивалентно на
— >=: повече или равно на: повече или равно на
— >: повече от: повече от
— !=: не е равно на: не е еквивалентно на
— like: приблизително равно на
— not like: не е приблизително равно на
По отношение на последните два параметъра нямам увереност как работят. Затова няма да предполагам какви граници са вградени в тях.
Всичко е като в Zabbix, само че не трябва да въвеждате формули ръчно, страхувайки се да не сбъркате или да направите печатна грешка. За да възстановите тригера (събитие на деактивация), системата автоматично ще подстави стойност. (В Zabbix отново трябва да пишете и да не допускате грешки).
3.6. Шаблони
Десен клик-да създадете шаблон, въведете името на шаблона. Десен клик-Конфигурация на събиране на данни.
Няколко теорииСъбираната информация може да идва от няколко източника. Това може да бъде агент NetXMS, работещ на машината, може да бъде „обикновено запитване» или „Internal«, изпратено от самия сървър (например същия ping), „SNMP«, «проверка на SNMP«, «Push«, «Windows Performance Counters«, «SM-CLP«, или потребителски „скрипт«. За всеки тип информация можете да изберете тип, който системата ще очаква при получаване. Например, ping ще върне цяло число (integer), количеството свободно дисково пространство в байтове също ще бъде цяло число, а температурата вече ще бъде не целочислена стойност, тоест реална.
За събиране на информация чрез SNMP в NetXMS има огромен списък с предварително определени параметри, така че не е необходимо да въвеждате конкретен OID, а можете да го намерите в MIB дървото, което всъщност е доста проблематично... Но. В крайна сметка трябва да се ровите в документацията на производителя и да търсите IOD стойности за всяко устройство поотделно. Може да загубите много време в настройката на четенето на информация от устройствата, попадайки на съобщението на системата „UNSUPPORTED”, а в крайна сметка ще се окаже, че конкретното устройство просто не може да предостави поискваната информация. Остава само да прегледате ръководствата и да се надявате.
Например, за да събирате информация за времето за отговор на ноода (ping), трябва да добавите нов параметър (ПКМ-нов параметър), в полето Origin да изберете Internal, да натиснете бутона Select и да изберете Ping Time. Там има търсене, за което в Zabbix винаги съм мечтал. Също така има смисъл да промените периода на запитванията на ноода (по подразбиране е 60 секунди, тоест ако маршрутизаторът спре да отговаря веднага след като е бил запитан от системата за мониторинг, ще мине почти цяла минута, преди системата да разбере, че нещо не е наред и да сигнализира).
Списък на Internal данните, които могат да се обработват:

След като в шаблона бъдат добавени всички необходими настройки, трябва да натиснете ПКМ-приложи и да изберете всички нооди, на които този шаблон трябва да бъде приложен (ctrl+ЛКМ). И това е. След това в дървото под шаблона ще се появи клон, като го разкриете, можете да видите всички нооди, на които този шаблон е приложен.
При открепването на ноода от шаблона, събираните данни не спират да се събират, за да отмените тяхното събиране, трябва за всеки ноод да влезете в Data Collection Configuration и да ги изтриете всички ръчно, или първо да изтриете параметрите от шаблона, а само след това да изтриете ноодите от него. Не знам защо е направено точно така, но на мен ми се струва крайно странно. Но… Както е.
В шаблона можете да изберете необходимите събирани данни и да ги копирате в друг шаблон. Масово. И не е нужно да копирате от един шаблон в друг с ръце… Започвам да мразя Zabbix…
3.7. Табла
Както и да е странно, но NetXMS Wiki по този въпрос съдържа само една връзка към youtube: , няма дори списък и описание на елементите, които могат да бъдат добавени на таблото. В принцип, там всичко е толкова интуитивно ясно. Етикет — това е просто… е, Етикет… Даже не знам как да го преведа. Думата, поле с надпис, се използва за обозначаване и разграничаване на елементите, тъй като самите елементи не съдържат имена. Линеен график — това е линен график. Хистограма — това е диаграма. Преглед на аларми — списък с предупреждения за избрания/ите узел/и. Словом, имената говорят сами за себе си.
Следва да отворите свойствата на таблото за управление и да настроите изгледите. Нас ни интересува разделът Dashboard Elements. Броят на колоните е количеството на колоните, елементите, които ще бъдат разположени хоризонтално. Всеки обект има свои свойства, и бих препоръчал да премахнете отметката от опцията Layout-Grab excessive vertical space, за да минимизирате размера на всеки елемент.

3.8. Конфигурация на действия
(Конфигурация-Действия Конфигурация)
В същността си, това са действия в отговор на задействане на тригери.

NetXMS може да изпраща e-mail, sms, xmpp съобщения в отговор на задействане на тригер. Тук всичко е тривиално — просто попълнете нужните полета.
Също така можете:
— Да предадете уведомление на друг NetXMS сървър
— Да изпълните команда на сървъра за администриране NetXMS
— Да изпълните команда на нода с помощта на агента NetXMS
— Да изпълните NXSL скрипт (NSXL е собственият )
След създаването на действието, можете да настроите времето за забавяне на изпълнението, а също така да приложите макрос за изпълнение. Времето за забавяне е необходимо, за да не безпокои оператора в случай, че проблемът се разреши самостоятелно (например, времето за отговор на ping-запитването е било по-дълго от зададеното, но при следващата проверка може да се върне в нормата, така че защо да безпокоим по такива дреболии?).
3.9. Разграничаване на права на достъп
За всеки обект можете да настроите свои права на достъп. За всеки обект вътре в друг обект също можете да настроите права на достъп. Това позволява много гъвкаво разпределение на задълженията и възможностите за мониторинг на различни групи потребители. Това е всичко, което исках да кажа.
4. Заключение
Бих искал да опровергая заглавието на собствената си статия. NetXMS не е за мързеливи. Просто разработчиците не са акцентирали на функционалността, както някои, но освен всичко друго, са се погрижили и за интерфейса.
Нека да го кажем така. Аз съм използвал Zabbix и NetXMS. Затова просто ще напиша своите впечатления от двете системи.
И така.
NetXMS ми изглежда като изключително потребителски приятелска система. Ами... за администратора... да, за администратора. Тя притежава нещо, наречено интуитивно разбираем интерфейс, което е наистина страхотно. Не е нужно да пишеш собствени формули или да четеш куп документация, за да включиш проверка на пингите до суич или нещо друго елементарно. Но. В Zabbix това елементарно не се различава много от нещо реално сложно, тоест ако си го усвоил — ще направиш същото и с всичко останало. В NetXMS има подсказки, повечето параметри могат да се намерят в интерфейса, да се изберат с мишка и да се настроят. В Zabbix трябва да разбереш дали системата може това и онова, и ако да — как се пише и какви параметри връща. Zabbix печели с общността и тоновете шаблони за всякакви ситуации… ако успееш да намериш точно това, което ти трябва в тези купища информация… От друга страна, NetXMS също има много почитатели и добавки, създадени от тях. И самата система поддържа мониторинг на най-популярните приложения, което е споменато на главната страница на проекта.
Основното предимство на NetXMS пред Zabbix за мен бе възможността да стартирам скрипт на проблемния възел в отговор на активиране на тригера. Температурата на ЦП се е покачила над прага — тя сама ще изключи хоста. А след това ще разберем какъв е проблемът. Може би, в Zabbix също има нещо подобно, но аз не успях. Както и за мониторинг на портовете на рутерите. А тук става само... Е, просто трябва да усвоиш скриптовия език и готово...
Права за достъп в NetXMS позволяват много гъвкаво разделяне на възможностите на различните потребители на системата. Но за да настроиш всичко това, трябва да полагаш усилия.
По принцип системите са достатъчно сходни и възможностите им, на пръв поглед, изглеждат поне сравними. Въпреки че се усеща, че Zabbix може повече, но тези възможности са дълбоко скрити под капака и за обикновения администратор „всичко в едно“ не е достижимо. NetXMS обаче изглежда проста и разбираема, приятелска и удобна.
Zabbix разполага с отлична документация, wiki, how to, F.A.Q., най-добри практики, а също и всякакви форуми и т.н., където можеш да намериш отговори на практически всички въпроси. А ако нещо се случи — можеш да зададеш собствен.
В заключение, бих искал да препоръчам NetXMS на хора, които току-що започват или на тези, които не се нуждаят от дълбоко навлизане в мониторинга на всичко. Сигурен съм, че ако се задълбочите повече, можете да извлечете доста финни наблюдения.
Но все пак основното предимство, което виждам, е именно много приятният интерфейс и простотата на настройката.
5. Използвани материали
youtube-канал
Източник: habr.com
