Бързо внедряване на решение, базирано на пакета Nagios 3 за мониторинг на разпределени системи и
В момента все повече малки и средни компании създават разпределена ИТ инфраструктура, неразделна част от която е ефективният мониторинг на всички нейни компоненти, за да се гарантира непрекъснато и качествено функциониране. Такива решения обикновено имат следните нефункционални изисквания: бърза реакция на събития и възможност за работа с ограничени изчислителни ресурси. Тази статия описва възможността за изграждане на такава система, базирана на свободно разпространяван софтуер за наблюдение - Nagios.
Кратко описание на Нагиос
Основният компонент на Nagios, базовият сървър, може да бъде внедрен на почти всеки Linux/Unix сървър. Той е включен в почти всички често срещани дистрибуции на Linux и Unix. Ако е необходимо, можете да изтеглите изходния код от сайта на проекта и да създадете своя собствена версия на Nagios въз основа на него. Освен това заедно с основния пакет Nagios е инсталирана и документацията за него.
Nagios има модулна и разширяема архитектура. За да увеличите възможностите на Nagios, можете да използвате следните видове компоненти: добавки (Nagios plugins) и разширения (Nagios addons).
Добавките се използват от основния процес на Nagios за получаване на следната информация: време за реакция на отдалечения възел, свободно място на дисковия дял и др. Ако не може да бъде намерена добавка с необходимата функционалност, тогава се предлага удобен интерфейс за създаване на ваши собствени добавки.
Терминът „добавка“ беше въведен, за да се избегне объркване с плъгини, тъй като разширенията се използват за добавяне на фундаментално нова функционалност към Nagios или за интегриране с други външнипродукти.
Възможността за бързо писане на добавки превърна Nagios в универсален инструмент за наблюдение на мрежата. Има плъгини за запитване на възли чрез SNMP, проверка на наличността на отдалечен възел с помощта на различни мрежови протоколи. В проекта Nagios Exchange можете да търсите сред вече написани плъгини или разширения или да добавите там плъгин по ваша собствена разработка.
Потребителският интерфейс на Nagios е реализиран като уеб приложение. Необходимите CGI скриптове и конфигурацията на уеб сървъра са включени в основния пакет Nagios. Има и подсистема за уведомяване, която ви позволява да информирате по имейл за възникването на извънредни ситуации и тяхното отстраняване.
Фигура 1 показва структурата на главния Nagios сървър.
Фигура 1. Структура на главния Nagios сървър
Фигура 2 показва механизма за стартиране на Nagios добавки на отдалечен хост.
Фигура 2. Изпълнение на Nagios добавки на отдалечен хост
Ключовите компоненти на Фигура 2 са плъгинътcheck_nrpe от страната на хоста за наблюдение и разширениетоNRPE на отдалечения хост. Установява се SSL криптирана връзка между плъгинаcheck_nrpe и демонаNRPE, през койтоnagiosd изпраща команди за изпълнение на плъгини и получава резултатите от тяхното изпълнение.NRPE "проектира" плъгините на отдалечения хост към главния Nagios сървър (nagiosd ), което прави възможно стартирането на всякакви плъгини на всеки отдалечен хост.
За дистанционно наблюдение на възли на Windows можете да използвате разширениетоNSClient++. В този случай плъгинътcheck_nt трябва да се използва от страната наnagiosd.
Пример за използване на Nagios
Да вземем за пример малък бизнес.с 3 точки на присъствие: склад, магазин и офис. Всяка точка на присъствие има своя собствена връзка с местния ISP. Linux/Unix сървър е инсталиран като шлюз на всеки сайт. Между всички сайтове е организиран VPN. В офиса интранет мрежата е 10.1.0.0/24. В наличност - 10.2.0.0/24. В магазина - 10.3.0.0/24. Ръководството на предприятието постави задачата да наблюдава тази ИТ инфраструктура.
Фигура 3. Структура на хипотетична корпоративна мрежа
За да направите това, ще трябва да инсталирате услугатаNRPE на всеки от сървърите и да инсталирате базовия комплект Nagios на два от тях. Това се прави така, че ако един от Nagios сървърите се повреди, другият веднага ще изпрати съобщение за това.
За да инсталиратеnagiosd иNRPE, можете да използвате стандартните системни инструменти. Тази процедура зависи от избраната платформа и обикновено не е трудна. Също така, заедно сnagiosd илиNRPE, е инсталиран основен набор от добавки. Ще трябва също така да инсталирате и конфигурирате уеб интерфейса, за да показва състоянието на възела с инсталиран Nagios сървър. В някои дистрибуции той е отделен в отделен пакет. И накрая, трябва да създадете файл htpasswd с потребителя nagiosadmin, дефиниран във файла cgi.conf. Ако желаете, можете да направите промени в конфигурацията и да използвате друг потребител вместо това име.
След това можете да стартирате сървъра и уеб сървъра на Nagios и да влезете във вашия локален дял на Nagios с вашето потребителско име и парола. Досега той наблюдава само един възел на локалния хост и показва няколко от неговите параметри (средно натоварване (средно натоварване), текущи потребители (активни потребители), дисково пространство (дисково пространство)). В един от разделите на този ресурс едокументация, така че да не е необходимо да харчите интернет трафик за достъп до нея. Описанието на хоста е във файла localhost.cfg.
Фигура 4. Главна страница на уеб интерфейса на Nagios
Листинг 1 показва как да добавите информация за контакт към файла contacts.cfg.
Списък 1. Добавяне на информация за контакт.
След това трябва да регистрирате възлите, които ще се наблюдават в Nagios. Списък 2 показва как да създадете дефиниция на възел на склад във файла warehouse-gw.cfg, подобно на файла localhost.cfg.
Листинг 2. Добавяне на възли към Nagios.
Хостсклад-gw умишлено е регистриран два пъти, за да следи статуса както на външните, така и на вътрешните LAN услуги. В този пример SMTP сървърът обслужва само локалната мрежа. Резюметата в уеб интерфейса на Nagios ще показват два възелаwarehouse-gw иwarehouse-intra. Ако възелът warehouse-intra изчезне и е наличен самоwarehouse-gw, това означава, че VPN каналът е прекъснат.
Някои плъгини ще бъдат стартирани чрез разширениетоNRPE (средно натоварване - check_load, дисково пространство - check_disk, текущи потребители - check_users), за да получите информация, която е невъзможно или трудно да бъде получена извън възела. За да направите това, трябва да инсталирате плъгинаcheck_nrpe2 на сървърите на Nagios и разширениетоNRPE на всички сървъри. Това може да стане с помощта на стандартни системни инструменти.
NRPE трафикът умишлено се насочва през VPN. Доверените хостове заNRPE демон в магазина са офисът и складът. На сървърите на Nagios тези услуги ще бъдат наблюдавани, както е показано в списък 3:
Листинг 3. Конфигуриране на наблюдение за отдалечена услуга
INВ този случай наNRPE -демон на възелwarehouse-intra се изпраща командаcheck_load. Отговорът ще бъде текущата стойностсредно натоварване за този възел. Моля, обърнете внимание, че параметрите на приставката (и може да има няколко) трябва да бъдат разделени с удивителни знаци. В показания пример параметърът е-c check_load.
И така, стъпка по стъпка, чрез добавяне на нови възли и параметрите, наблюдавани върху тях, се изгражда високофункционална система за мониторинг.
Работа с плъгини
Добавките са прости програми или скриптове, които получават входни параметри, когато се изпълняват чрез опции на командния ред и връщат заявените стойности към stdout в добре дефиниран формат. Командите за стартиране на добавки могат да бъдат записани във файла commands.cfg, докато добавките, инсталирани сnagiosd вече са в този файл. Също така е възможно да регистрирате всеки плъгин в отделен файл.
Листинг 4 показва как е описан плъгинътcheck_smtp, който проверява наличността на SMTP сървър на отдалечен хост и времето за реакция.
Листинг 4. Конфигуриране на плъгина check_smtp
Опциите за стартиране могат да бъдат различни, основното е да ги добавите правилно към описанието на командата. Изходният формат е описан подробно в документацията, инсталирана с уеб интерфейса.
При инсталиране наNRPE -демон, само малка част от добавките се регистрират във файла nrpe.conf, сред тях е горната командаcheck_load :
Горният ред съдържа пътя до плъгинаcheck_load и неговите параметри за стартиране. Ако плъгинът се изпълнява без параметри, той ще покаже списък с валидни параметри. Например, трябва да създадете командаcheck_usr заNRPE, която ще върнеинформация за /dev/md2 дяла, монтиран на пътя /usr към сървъра за наблюдение. Тази функционалност може да се реализира с помощта на стандартния плъгинcheck_disk. Ако го стартирате без параметри, ще се покаже описание на началните параметри.
Въз основа на предоставената информация можете да подготвите командатаcheck_usr и да я поставите във файла nrpe.conf:
Пробното изпълнение на тази команда ще доведе до следния резултат:
Както можете да видите, в Nagios можете лесно да създавате добавки за изпълнение на различни задачи и да ги свързвате към NRPE демона.
Разширения на Nagios
Когато обсъждаме възможностите на Nagios, е наложително да разгледаме най-интересните разширения, които значително подобряват възможностите на Nagios.
pnp4nagios разширение
По подразбиране Nagios поддържа история на състоянието на наблюдаваните параметри само според тяхното ниво на критичност (нормално, предупреждение, критично). Потребителят може да види през какви периоди параметърът е бил в различни състояния и какво е общото време, прекарано в тези състояния за отчетния период.
Фигура 5. Показване на статистики за промени в състоянието.
Както е показано на фигура 5, критичното състояние е маркирано в червено, докато нормалните периоди на функциониране са маркирани в зелено. Това решение е подходящо за параметри от булев тип (да / не), например целостта на RAID масив. За числените параметри би било по-полезно да се проследи динамиката на промените.
Разширениетоpnp4nagios, редовно получаващо стойности на параметри отnagiosd, запазва историята на техните промени и генерира отчет в графична форма. Графиките могат да се комбинират произволно и, ако е необходимо, да се конвертира получената уеб страница в PDF файл. Фигура 6показва се отчет за промяната в параметъраload average за конкретен възел.
Фигура 6. Уеб страница с разширение pnp4nagios
Нагвис разширение
Това разширение ви позволява да показвате състоянието на наблюдаваната мрежова инфраструктура под формата на карта или диаграма, както е показано на фигура 7.
Фигура 7 Уеб страница с разширение NagVis
Заключение
Особено заслужава да се отбележи ниската консумация на ресурси на това решение. Една компания използва Nagios, за да наблюдава 14 възли и 140 услуги в тях, докато демонът NRPE заема 512KB RAM, а сървърът nagiosd само 140KB RAM. Консумацията на процесорни ресурси от двата компонента и техните дъщерни процеси на Pentium-IV CPU не надвишава 1%. Сред наблюдаваните параметри са: температурата на твърдите дискове и дънните платки, състоянието на дисковите дялове, размера на пощенските опашки, скоростта на вентилатора, целостта на RAID масивите и много други.
Както е показано в тази статия, пакетът Nagios има изключително ниски изисквания за ресурси, много лесно се персонализира и е отворен за нови добавки и разширения. За малка или средна компания, която вече има поне един Linux/Unix сървър, Nagios е идеалното решение за наблюдение на тяхната съществуваща ИТ инфраструктура.