Инсталиране на плъгини nagios. Инсталиране и конфигуриране на Nagios на сървъра за мониторинг

Популярно решение за мониторинг, nagios ви позволява да внедрявате мащабируеми системи. Конфигурирането за разпределени системи е дълъг процес, в рамките на статията ще приложим наблюдение на една услуга на отдалечен хост.

Работата по конфигуриране ще се извършва на сървър с операционна система CentOS 7, nrpe клиентът също ще използва CentOS 7

Инсталирайте приставката на клиента nrpeи разреши връзката със сървъра в неговите настройки.

Инсталиране и конфигуриране на Nagios на сървъра за мониторинг

Започваме конфигурацията на машината, която ще действа като nagios сървър. Инсталирайте необходимите пакети:

yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp разархивирайте

nagios работи чрез Apache, така че httpd е в списъка с инсталирани пакети

Отиваме в главната директория с временни файлове и изтегляме най-новите версии на nagios и nagios-plugins в нея с помощта на wget

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.2.8.tar.gz

wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz

Създайте системен потребител и група

Добавяне на потребител на nagios към групата nagcmd

usermod -a -G nagcmd nagios

usermod -a -G nagios, nagcmd apache

Тъй като използваме CentOS, httpd не работи като потребител на www-data, а като потребител на apache

За да избегнете конфликти на права в бъдеще, добавете потребителя на apache към групите nagios, nagcmd

Извлечете съдържанието на изтегления архив

tar -zxvf nagios-4.2.0.tar.gz

Отидете в директорията с файловете nagios

В бъдеще ще инсталираме и nagios, и nrpe от източника

./configure --with-command-group=nagcmd

Посочете групата nagcmd като опция по време на сглобяването

Компилиране

направете команден режим за инсталиране

Рекурсивно копирайте директорията на библиотеката в /usr/local на сървъра

cp -R contrib/eventhandlers /usr/local/nagios/libexec

Ние също така рекурсивно променяме собственика и групата на собственика на директории и файлове на nagios

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Опитваме се да стартираме и да видим версията на nagios, като посочим пътя към основния конфигурационен файл

Добавете nagios към стартиране - системата ще го стартира всеки път при стартиране

systemctl активира nagios

Стартиране на услугата

Ние извършваме подобни операции с уеб сървъра

Задайте потребителската парола на nagios

С помощ htpasswdгенерира файл, който ще ограничи достъпа за потребителя nagiosadmin

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Инсталацията на основния пакет вече е завършена. Отваряме интернет браузъра и въвеждаме ip-адреса на сървъра в полето за търсене, след това /nagios и влизаме в уеб интерфейса

Настройване на наблюдение на услугата на отдалечен хост

Отиваме на друга сървърна машина, която ще действа като nagios клиент
Отидете в директорията /tmp/

Разопаковайте nagios-plugins-2.1.2

tar -zxvf nagios-plugins-2.1.2

cd nagios-plugins-2.1.2

Компилиране с потребител и група nagios

./configure --with-command-user=nagios --with-nagios-group=nagios

Сега инсталирайте nrpe плъгин

Първо, инсталирайте допълнително от хранилището на openssl-devel, ако вече е инсталирано, пропуснете стъпката (пакетът трябва да присъства и на сървъра nagios)

yum -y инсталирам openssl-devel

Можете също да инсталирате от хранилището

ням инсталирай nagios-plugins-all nagios-plugins-nrpe

Ако имате нужда от нова версия, така
Изтегляне на пакета

wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Разопаковайте tar.gz

tar -zxvf nrpe-2.15.tar.gz

Компилиране по същия начин, както преди

Отидете на сървъра nagios

Опитваме се да се свържем от сървъра, посочен след ключа IP адрес на клиента

Получаваме отказ за връзка и отиваме да конфигурираме приставката

Стартираме nrpe на клиента и добавяме услугата към стартиране

Отворете основния конфигурационен файл и посочете IP адреса на сървъра като стойност в секцията allowed_hosts

mcedit /etc/nrpe/nrpe.cfg

позволени_хостове = 10.11.27.11

Обратно към сървъра

/usr/local/nagios/libexec/check_nrpe -H 10.11.27.44

Сега нашият опит е успешен и виждаме версията nagios

Отворете отново основната конфигурация

Премахнете знака за коментар от реда с cfg_dir(cfg_dir=/usr/local/nagios/etc/servers)

Създайте директория и преминете към нея

mkdir /usr/local/nagios/etc/servers

cd /usr/local/nagios/etc/servers

Определете хостовете, които ще бъдат наблюдавани. Хостовете могат да имат всякакви имена, nagios ще вижда всички файлове с разширение cfg

Предписваме параметрите на хоста, значението на директивите е ясно от името. Може да има много повече от тези директиви в случай на необходимост от мониторинг за фина настройка, тук разглеждаме основната работна конфигурация

дефиниране на хост (
използвайте линукс сървър
host_name cenos11
псевдоним просто nagios клиент
адрес 10.11.27.44
max_check_attempts 5
проверка_период 24×7
Notification_interval 30
период на уведомяване 24×7

}

Добавете конфигурация за услугата, която наблюдаваме. Сега се ограничаваме до проверка на наличието на пинг към хоста

{
използвайте обща услуга
host_name cenos11
service_description PING
check_command check_ping!100.0.20%!500.0.50%
}

Използвана е командата check_command, откъс от ръководството относно нея казва следното:

check_ping -H -w ,% -c ,%
[-p пакети] [-t изчакване] [-4|-6]

Съответно при загуба от 20% от пакетите ще получим предупреждение, със загуба от 50% - ALERT

Стартирайте отново и се уверете, че няма грешки

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Рестартиране на услугата

systemctl рестартирайте nagios

Отиваме в уеб интерфейса и виждаме, че услугата на отдалечения хост, който наблюдаваме, се показва там (в конфигурацията, показана на екранната снимка, е конфигуриран мониторинг на редица други ресурси). Конфигурацията на сървъра за наблюдение с основна функционалност вече е завършена.

Настройване на ALERTs в nagios

Отворете основния конфигурационен файл и, ако е необходимо, декоментирайте реда cfg_file=/usr/local/nagios/etc/objects/contacts.cfg:

mcedit /usr/local/nagios/etc/nagios.cfg

Във файла определяме имейл адреса за контакт за изпращане на известия:

mcedit /usr/local/nagios/etc/objects/contacts.cfg

дефиниране на контакт (
contact_name nagiosadmin
използвайте общ контакт
псевдоним Nagios Admin
електронна поща [защитен с имейл]

}

Рестартиране на услугата

cyctemctl рестартирайте nagios

Може да се използва и допълнителен софтуер, с който могат да се изпращат например SMS съобщения ТРЕВОГАотносно основни услуги. Беше получен работещ сървър Nagios, инсталацията и конфигурацията на него са завършени.

За сървърите можете да инсталирате Nagios сървър и клиент на една и съща машина, но е много по-лесно да използвате различен пакет, като например .

Това ръководство ще ви помогне да инсталирате популярната система за наблюдение с отворен код Nagios 4 на сървър на Ubuntu 14.04, както и да извършите основна конфигурация на мониторинг на ресурсите на хоста. В допълнение, ръководството показва как да настроите Nagios Remote Plugin Executor (NRPE) като агент на отдалечени хостове, за да наблюдавате техните ресурси.

Системата Nagios ви позволява да наблюдавате ресурсите на сървъра и работата на основните услуги. Като цяло системите за наблюдение са основен инструмент за всяка производствена среда.

Забележка: Подобно ръководство за CentOS може да се намери на адрес.

Изисквания

  • Предварително конфигуриран сървър на Ubuntu 14.04.
  • Права на суперпотребител (повече подробности -).
  • Предварително инсталиран стек LAMP (можете да намерите инструкции за инсталиране).
  • Частна мрежа; ако вашият сървър не поддържа частна мрежа, просто заменете препратките към вътрешния IP адрес с външния IP адрес.

Инсталиране на Nagios 4

Създаване на потребител и група в Nagios

Създайте потребител и група за стартиране на процеса Nagios; в това ръководство потребителят се нарича nagios, а групата - nagcmd. Създайте ги и добавете потребителя към групата.

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios

Инсталиране на зависимости

След това трябва да инсталирате няколко библиотеки за разработка, за да изградите Nagios Core от източник, и apache2-utils, за да персонализирате интерфейса на Nagios.

Актуализирайте списъка с системни пакети:

sudo apt-получи актуализация

Инсталирайте пакети:

sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils разархивирайте

Инсталиране на Nagios Core

Изтеглете най-новата стабилна версия на Nagios Core. Отворете страницата за изтегляне на сайта, щракнете върху Пропускане, за да изтеглите и изтеглете връзката към стабилната версия.

Забележка: Това ръководство използва Nagios версия 4.1.1.

Изтеглете пакета във вашата домашна директория:

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

Разархивирайте архива:

tar xvf nagios-*.tar.gz

Отворете получената директория:

Преди да започнете да създавате Nagios, трябва да конфигурирате системата. За да конфигурирате Nagios да поддържа postfix (който може да бъде инсталиран с apt-get), добавете --with-mail=/usr/sbin/sendmail към следната команда:

./configure --with-nagios-group=nagios --with-command-group=nagcmd

Компилиране на Nagios:

След това инсталирайте Nagios, скриптове за инициализация и примерни конфигурационни файлове:

sudo направи инсталиране
sudo направи install-commandmode
sudo направи install-init
sudo направи install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf

За да можете да изпълнявате външни команди през уеб интерфейса на Nagios, трябва да добавите потребителя www-data към групата nagcmd:

sudo usermod -G nagcmd www-data

Инсталиране на плъгини Nagios

Най-новата версия на Nagios Plugins може да бъде намерена на тази връзка. Копирайте връзката към най-новата стабилна версия и изтеглете пакета във вашата домашна директория.

Забележка: Това ръководство използва Nagios Plugins версия 2.1.1.

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Разархивирайте архива на Nagios Plugins.

tar xvf nagios-plugins-*.tar.gz

Отворете получената директория:

cd nagios-plugins-*

Стартирайте конфигурацията на Nagios Plugins, преди да създадете пакетите.

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

Компилиране на плъгини Nagios:

Инсталирайте получения пакет:

sudo направи инсталиране

NRPE инсталация

Отворете страницата за изтегляне на сайта, намерете най-новата стабилна версия на NRPE и я качете в домашната си директория.

Забележка: Това ръководство използва NRPE 2.15.

cd ~
curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Разархивирайте архива на NRPE:

tar xvf nrpe-*.tar.gz

Променете в получената директория:

За да конфигурирате NRPE, изпълнете командата:

./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr /lib/x86_64-linux-gnu

След това изградете и инсталирайте NRPE и скрипта xinetd:

направи всичко
sudo направи инсталиране
sudo направи install-xinetd
sudo направи install-daemon-config

Отворете скрипта за стартиране на xinetd в текстов редактор:

sudo vi /etc/xinetd.d/nrpe

В реда only_from добавете вътрешния IP адрес на сървъра Nagios:

само_от = 127.0.0.1 10.132.224.168

Забележка: Моля, въведете правилния си IP адрес.

Запазете и затворете файла. Сега само сървърът Nagios ще може да взаимодейства с NRPE.

Рестартирайте xinetd:

рестартиране на услугата sudo xinetd

Инсталацията на Nagios 4 завърши успешно. Сега трябва да настроим системата.

Настройване на Nagios 4

Отворете основния конфигурационен файл Nagios в текстов редактор:

sudo vi /usr/local/nagios/etc/nagios.cfg

Намерете и разкоментирайте следния ред:

#cfg_dir=/usr/local/nagios/etc/servers

Запазете и затворете файла.

Създайте директория за съхраняване на конфигурационните файлове на наблюдаваните сървъри.

sudo mkdir /usr/local/nagios/etc/servers

Отворете конфигурационния файл на контактите в текстов редактор:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

Намерете имейл директивата и я попълнете с вашия имейл адрес.

електронна поща [защитен с имейл] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

Запазете и затворете файла.

Конфигуриране на командата check_nrpe

Добавете нова команда към настройките на Nagios:

sudo vi /usr/local/nagios/etc/objects/commands.cfg

Добавете следния код в края на файла:

дефинирайте команда (
име_на_команда check_nrpe
команден_ред $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Запазете и затворете файла. Вече трябва да можете да използвате командата check_nrpe при дефиниране на сървъри на Nagios.

Настройка на Apache

Активирайте модулите за презаписване и cgi:

sudo a2enmod пренаписване
sudo a2enmod cgi

Използвайте htpasswd, за да създадете потребител с име nagiosadmin за достъп до уеб интерфейса на Nagios.

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Въведете паролата. Запомнете тези идентификационни данни, тъй като те ще ви бъдат полезни, когато работите с уеб интерфейса на Nagios.

Забележка: Ако това потребителско име не е nagiosadmin, тогава ще трябва да редактирате файла /usr/local/nagios/etc/cgi.cfg и да посочите различно потребителско име във всички препратки към nagiosadmin.

sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Системата Nagios вече е готова за работа. Не забравяйте да рестартирате Apache:

sudo service nagios start
sudo service apache2 рестартирайте

За да конфигурирате автоматично стартиране на Nagios, въведете:

sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Ограничаване на достъпа по IP адрес (по избор)

За да разрешите достъп само до определени IP адреси, редактирайте конфигурацията на Apache:

sudo vi /etc/apache2/sites-available/nagios.conf

Намерете и коментирайте следните редове:

поръчка разрешаване, отказ
Разрешете от всички

След това разкоментирайте следните редове и добавете IP адресите или диапазоните от IP адреси (разделени с интервал), които ще имат достъп до сървъра към директивата Allow from:

# Отказване на поръчка, разрешаване
# Откажи от всички
# Разрешаване от 127.0.0.1

Забележка: Тъй като тези редове се появяват два пъти в конфигурационния файл, трябва да повторите тези инструкции два пъти.

Запазете и затворете файла.

Стартирайте Nagios и рестартирайте Apache, за да актуализирате настройките:

sudo service nagios рестартирайте
sudo service apache2 рестартирайте

Уеб интерфейс на Nagios

Отворете браузър и отидете до Nagios, като използвате тази връзка:

http://nagios_server_public_ip/nagios

Уеб сървърът на Apache използва htpasswd, така че трябва да въведете идентификационните данни на потребителя nagiosadmin.

След като се удостоверите, ще имате достъп до началната страница на Nagios. За да видите списък със сървъри, наблюдавани от Nagios, отворете Hosts в левия контролен панел.

Както можете да видите, Nagios следи само localhost в момента.

Мониторинг на хост с NRPE

Този раздел ще ви покаже как да добавите нов сървър към настройките за наблюдение на Nagios.

Забележка: Ако искате да добавите няколко сървъра, повторете тези инструкции за всеки от тях.

Влезте в сървъра, който искате да гледате и актуализирайте apt-get:

sudo apt-получи актуализация

След това инсталирайте Nagios Plugins и NRPE.

sudo apt-get инсталирайте nagios-plugins nagios-nrpe-server

Настройка на хостове

Отворете конфигурационния файл NRPE в текстов редактор:

sudo vi /etc/nagios/nrpe.cfg

Намерете директивата allowed_hosts и добавете вътрешния IP адрес на сървъра Nagios (разделен със запетаи) в края.

позволени_хостове=127.0.0.1,10.132.224.168

Запазете и затворете файла. Сега NRPE ще приема заявки от сървъра Nagios през вътрешния IP адрес.

Персонализиране на NRPE команди

Посочете името на основната файлова система (това е един от компонентите, които ще бъдат наблюдавани):

Използвайте името на файловата система в конфигурацията на NRPE, за да наблюдавате използването на диска (/dev/vda). Отворете nrpe.cfg в редактор:

sudo vi /etc/nagios/nrpe.cfg

Конфигурационният файл NRPE е много дълъг и съдържа много коментирани редове. Трябват ви само следните редове:

  • server_address: Посочете вътрешния IP адрес на хоста.
  • allow_hosts: Посочете вътрешния IP адрес на сървъра Nagios.
  • команда: Заменете /dev/hda1 с името на основната файлова система.

В резултат на това тези редове трябва да изглеждат така:

адрес_сървър=частен_IP_клиент
разрешени_хостове=nagios_server_private_IP
команда=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda

Имайте предвид, че файлът съдържа няколко други командни реда, които Nagios може да използва. NRPE слуша на порт 5666 (линия server_port=5666). Ако този порт е блокиран от защитната стена, не забравяйте да го отворите.

Запазете и затворете файла.

Рестартирайте NRPE, за да актуализирате настройките:

sudo service nagios-nrpe-рестартиране на сървъра

След това трябва да добавите хоста към настройките на сървъра Nagios.

Добавяне на хост към настройките на Nagios

Отидете на сървъра Nagios и създайте нов конфигурационен файл за хоста в /usr/local/nagios/etc/servers/.

sudo vi /usr/local/nagios/etc/servers/yourhost.cfg

Забележка: Заменете вашия хост с вашето име на хост.

Добавете следния код към файла, като замените стойността host_name с името на отдалечения хост (web-1 в този пример), стойността на псевдонима с описание на хоста и адреса с вътрешния IP адрес на отдалечения хост.

дефиниране на хост (
използвайте линукс сървър
host_name yourhost
псевдоним Моят първи Apache сървър
адрес 10.132.234.52
max_check_attempts 5
период на проверка 24x7
Notification_interval 30
период на уведомяване 24x7
}

Сега Nagios ще наблюдава този сървър. Въпреки това, системата ще проследява само състоянието на отдалечения хост (активиран или деактивиран). Ако това е достатъчно, запазете и затворете файла. Ако искате да наблюдавате отделни услуги на отдалечен хост, не затваряйте файла.

Следват примери за конфигуриране на проследяване на услугата. Просто изберете услугата, която искате да проследявате, и добавете предложения блок за настройки към файла. Имайте предвид, че стойността на check_command определя какво ще се наблюдава.

дефинирайте услуга (
използвайте обща услуга
host_name yourhost
service_description PING
check_command check_ping!100.0.20%!500.0.60%
}

SSH (notifications_enabled настроен на 0 деактивира известията):

дефинирайте услуга (
използвайте обща услуга
host_name yourhost
service_description SSH
check_command check_ssh
notifications_enabled 0
}

Директивата use generic-service просто наследява от шаблона за генерична услуга по подразбиране.

Запазете и затворете файла. Рестартирайте Nagios, за да актуализирате настройките:

sudo услуга nagios презареждане

След като конфигурирате, отворете уеб интерфейса и проверете страницата Услуги; сега трябва да съдържа списък на току-що добавените отдалечени хостове.

Заключение

След като настроите наблюдението на хостове и някои услуги, определете кои услуги са критични за работата на сървъра и ги добавете към списъка. Можете също да настроите известия; например Nagios може да съобщи, че използването на диска е достигнало критична точка или че уебсайтът не работи. Това ви позволява да премахнете подобни проблеми навреме.

Етикети: ,

Nagios е един от най-широко използваните инструменти за мониторинг на Linux и Windows сървъри с отворен код. С него можете да наблюдавате изпълнението на различни приложения и услуги от разстояние чрез уеб интерфейс. Nagios може също да наблюдава рутери и други мрежови устройства.

С Nagios можете да наблюдавате основни параметри на сървъра, като натоварване на процесора, използване на паметта и т.н. Всичко това е достъпно в уеб интерфейс, който изисква лесно удостоверяване за достъп. В тази статия ще разгледаме как се извършва инсталирането на Nagios Ubuntu, както и конфигурацията на тази програма.

Има няколко начина да инсталирате Nagios Ubuntu 16.04. Можете да използвате PPA или да инсталирате, като използвате архива, изтеглен от официалния уебсайт. В момента най-новата версия е 4.3. Само 4.2 е наличен в PPA, така че ще разгледаме ръчната инсталация с помощта на архива.

Но преди да продължим с инсталацията, трябва да актуализирате системата и да инсталирате всички необходими компоненти за изграждане на програмата:

sudo apt install build-essential apache2 php7.0 openssl perl make php7.0-gd libgd2-xpm-dev libapache2-mod-php7.0 libperl-dev libssl-dev демон wget apache2-utils разархивирайте

След това трябва да създадете група и потребител, под които ще се изпълнява Nagios, както и команди на обвивката, изпълнявани в уеб интерфейса:

sudo useradd nagios
$ sudo groupadd nagcmd

Добавете потребителя nagios и потребителя, под който работи Apache, към групата nagcmd:

sudo usermod -a -G nagcmd nagios
$ sudo usermod -a -G nagcmd www-data

След това трябва да изтеглим източниците на nagios. Това може да стане с помощта на терминалната команда, но тъй като искаме да получим най-новата версия, по-добре е да отидете на официалния уебсайт и да изтеглите.

Първо щракнете върху елемента "Наджио ядро", след това превъртете надолу и натиснете Изтегли:

На този етап можете да попълните информация за себе си или да пропуснете, като щракнете "Пропускане на изтегляне":

Остава да изберете версията, например 4.3.2. След като изтеглянето приключи, отидете в папката за изтегляния и разопаковайте архива:

cd ~/Изтегляния/
$ tar -zxvf /tmp/nagios-4.3.2.tar.gz

Сега можем да преминем към компилиране на nagios. За да направите това, трябва да изпълните следните команди:

./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/
$направи всичко
$ sudo направи инсталиране
$ sudo направи install-init
$ sudo make install-config
$ sudo направи install-commandmode
$ sudo направи install-webconf

Настройване на Nagios в Ubuntu

Всички конфигурационни файлове на програмата ще бъдат поставени от инсталатора в /usr/local/nagios/etc/. Настройките по подразбиране позволяват на Nagios да работи, но трябва да направим още няколко промени. Отворете файла contact.cfg и променете имейл адреса, на който ще се изпращат известията:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

дефинирайте контакт (
contact_name nagiosadmin ; Кратко потребителско име
използвайте общ контакт; Шаблон по подразбиране
псевдоним Nagios Admin ; Пълно потребителско име
електронна поща [защитен с имейл]уебсайт ; Твоят имейл
}

За да работи уеб интерфейсът, трябва да създадете парола за потребителя nagiosadmin с помощта на htpasswd, без него просто не можете да влезете в интерфейса:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

И накрая, за правилна работа, трябва да направите няколко настройки за уеб сървъра. Активирайте cgi модула:

sudo a2enmod cgi

Рестартирайте уеб сървъра:

sudo service apache2 рестартирайте

За повече функции на nagios, можете да инсталирате набор от плъгини. За да направите това, първо го изтеглете:


Сега разопаковайте архива и отидете в папката с него:

tar -zxvf /tmp/nagios-plugins-2.1.1.tar.gz
$ cd /tmp/nagios-plugins-2.1.1/

За да компилирате модули, изпълнете:

./configure --with-nagios-user=nagios --with-nagios-group=nagios
$make
$ направи инсталиране

Модулите са инсталирани в папката Nagios, сега проверете дали конфигурацията е правилна:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

За да стартирате автоматично, създайте Unit файл за systemd:

sudo vi /etc/systemd/system/nagios.service


Описание=Nagios
BindTo=network.target


WantedBy=multi-user.target


Потребител=nagios
Група=nagios
Тип = прост
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

Стартиране на Nagios

Почти всичко е готово, остава да стартирате услугата и да започнете да я използвате. За да стартирате услугата, въведете:

sudo systemctl stat nagios

За да отворите уеб интерфейса на nagios, ще бъде достатъчно да въведете ip адреса и url на nagios в браузъра. Ако сте инсталирали всичко това на вашия локален компютър, използвайте:

http://localhost/nagios

Веднага след отваряне на страницата ще трябва да въведете потребителското име nagiosadmin и паролата, която сте задали за него по-рано. След това можете да използвате всички функции на програмата:

заключения

В тази статия разгледахме как да конфигурираме nagios 4, както и напълно да инсталираме най-новата версия на операционната система Ubuntu. Въпреки факта, че на пръв поглед всичко изглежда сложно, процесът е доста прост. Сега можете да наблюдавате nagios ubuntu 16.04. Надявам се тази информация да ви е била полезна.

Преди да конфигурирате nagios, трябва да инсталирате необходимите зависимости

# apt install build-essential apache2 php libapache2-mod-php7.0 php-gd libgd-dev mailutils

И добавете потребител и група, от чието име ще се изпълнява nagios

# useradd nagios # groupadd nagcmd # usermod -a -G nagcmd nagios # usermod -a -G nagcmd www-data

Отидете в директорията за изграждане и изтеглете изходния код за nagios и плъгини

# cd /usr/src/ # wget https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.2.3/nagios-4.2.3.tar.gz # wget https:// nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz

Разархивирайте изтеглените архиви

# tar xzvf nagios-4.2.3.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

Да отидем в директорията с изходния код на nagios и да конфигурираме

# cd nagios-4.2.3 # ./configure --prefix=/etc/nagios --with-command-group=nagcmd --with-httpd-conf=/etc/apache2/sites-available --with-mail= /usr/bin/mail

Да построим

# направи всичко

Инсталирайте nagios

# направете инсталиране

Инсталирайте init скрипт в /etc/init.d и активирайте автоматично стартиране

# направи install-init # update-rc.d nagios по подразбиране

Задайте разрешенията на директорията за съхранение на външни пакетни файлове

# направете install-commandmode

Инсталирайте конфигурационни файлове на nagios

# направи install-config

Настройте конфигурацията на nagios за apache

# направи install-webconf

Копирайте скриптовете за обработка на събития на външни пакетни файлове в папката с nagios и задайте собственика на папката

# cp -R contrib/eventhandlers/ /etc/nagios/libexec/ # chown -R nagios:nagios /etc/nagios/libexec/eventhandlers

Нека проверим инсталираната конфигурация

# /etc/nagios/bin/nagios -v /etc/nagios/etc/nagios.cfg

# направи # направи инсталиране

Активирайте конфигурацията на nagios в apache и активирайте необходимите добавки

# a2ensite nagios # a2enmod пренаписване на cgi

Рестартирайте услугата apache

# рестартиране на услугата apache2

Да започнем nagios и да проверим състоянието

# service nagios start # service nagios status ● nagios.service - Nagios Зареден: зареден (/etc/systemd/system/nagios.service; активиран; предварителна настройка на доставчика: активиран) Активен: активен (работи)

Добавете администратор на nagios

# htpasswd -c /etc/nagios/etc/htpasswd.users nagiosadmin

Сега нека се заемем с конфигурационните файлове на nagios.

/etc/nagios/etc/ cgi.cfg- дефинира настройките за уеб интерфейса, както и правата за достъп до уеб конзолата nagios.

/etc/nagios/etc/ htpasswd.users- база данни с потребители и техните пароли за достъп до уеб интерфейса nagios.

/etc/nagios/etc/ nagios.cfg— съдържа основните настройки и пътища към *.cfg файлове.

/etc/nagios/etc/ resource.cfg- тук е дефинирана променлива, до директорията с плъгини.

/etc/nagios/etc/objects/ commands.cfg- съдържа дефиниции на команди.

/etc/nagios/etc/objects/ contacts.cfg- дефинира пощенските контакти, до които ще се изпращат известия за nagios.

/etc/nagios/etc/objects/ templates.cfg- съдържа шаблони за контакти, хостове и услуги.

/etc/nagios/etc/objects/ timeperiods.cfg- съдържа дефиниции на периоди от време.

/etc/nagios/etc/objects/ localhost.cfg- конфигурация за наблюдение на самия сървър nagios. Той дефинира самия хост, хост групата за Linux сървъри и услуги за наблюдение.

/etc/nagios/etc/objects/ printer.cfg- конфигурация за наблюдение на принтера. Той дефинира произволен принтер, хост група за принтери и услуги за наблюдение.

/etc/nagios/etc/objects/ switch.cfg- конфигурация за наблюдение на превключвателя. Той дефинира произволен превключвател, хост група за комутатори и услуги за наблюдение.

/etc/nagios/etc/objects/ windows.cfg- конфигурация за наблюдение на произволен хост на Windows. Той дефинира произволен хост на Windows, група хостове за Windows сървъри и услуги за наблюдение.

Описанието показва, че localhost.cfg, printer.cfg, switch.cfg и windows.cfg съдържат дефиниции на хост групи. За удобство има смисъл да ги разделите в отделен файл /etc/nagios/etc/objects/ hostgroups.cfg. Съответно те трябва да бъдат коментирани в оригиналния файл. Описание на един и същ обект не трябва да се повтаря в различни конфигурационни файлове. Ще добавим и файла /etc/nagios/etc/objects/ servicegroups.cfg, в който ще бъдат дефинирани групите услуги. Тъй като тази публикация настройва наблюдение за хостове на Linux и Windows, ние ще дефинираме групи за тях. За принтери и превключватели групите се дефинират по аналогия. Ще създадем и папката /etc/nagios/etc/servers/, която ще съхранява файловете, които определят хостовете за наблюдение. Нека направим съответните промени във файла nagios.cfg

# nano /etc/nagios/etc/nagios.cfg . . . # Можете да посочите отделни конфигурационни файлове на обекта, както е показано по-долу: cfg_file=/etc/nagios/etc/objects/commands.cfg cfg_file=/etc/nagios/etc/objects/contacts.cfg cfg_file=/etc/nagios/etc/objects /timeperiods.cfg cfg_file=/etc/nagios/etc/objects/templates.cfg # Дефиниции за хостгрупи и сервизни групи cfg_file=/etc/nagios/etc/objects/hostgroups.cfg cfg_file=/etc/nagios/etc/objects/servicegroups.cfg# Дефиниции за наблюдение на локалния (Linux) хост cfg_file=/etc/nagios/etc/objects/localhost.cfg # Дефиниции за наблюдение на Windows машина #cfg_file=/etc/nagios/etc/objects/windows.cfg # Дефиниции за наблюдение рутер/превключвател #cfg_file=/etc/nagios/etc/objects/switch.cfg # Дефиниции за наблюдение на мрежов принтер #cfg_file=/etc/nagios/etc/objects/printer.cfg # Можете също да кажете на Nagios да обработва всички конфигурационни файлове (с разширение .cfg #) в определена директория, като използвате директивата cfg_dir #, както е показано по-долу: cfg_dir=/etc/nagios/etc/servers#cfg_dir=/etc/nagios/etc/printers #cfg_dir=/etc/nagios/etc/switches #cfg_dir=/etc/nagios/etc/routers . . .

Създайте файлове за хост и сервизни групи и задайте правата за тях

# cd /etc/nagios/etc/objects/ # докоснете hostgroups.cfg servicegroups.cfg # chown nagios:nagios hostgroups.cfg servicegroups.cfg # chmod 664 hostgroups.cfg servicegroups.cfg

Създайте директория /etc/nagios/etc/ сървъри/ и задайте права върху него

# mkdir /etc/nagios/etc/servers/ # chown nagios:nagios /etc/nagios/etc/servers/ # chmod 775 /etc/nagios/etc/servers/

Добавете към hostgroups.cfg дефиниции на хост групи за linux и windows сървъри от localhost.cfg и windows.cfg, съответно

# nano /etc/nagios/etc/objects/hostgroups.cfg # Дефинирайте незадължителна хостгрупа за Linux машини # Всички хостове, които използват шаблона на linux-сървър, автоматично ще бъдат членове на тази група, дефинирайте hostgroup( hostgroup_name linux-servers ; Името на псевдонима на хостгрупата Linux Servers ; Дълго име на групата ) # Дефинирайте хостгрупа за Windows машини # Всички хостове, които използват шаблона на windows-server, автоматично ще бъдат членове на тази група, дефинирайте hostgroup( hostgroup_name windows-servers ; Името на псевдоним на хостгрупа Windows сървъри; дълго име на групата)

Тъй като пътят към windows.cfg е коментиран в nagios.cfg, не е необходимо да се коментира дефиницията на хост групи в windows.cfg, но в localhost.cfg това е задължително действие

# nano /etc/nagios/etc/objects/localhost.cfg . . . # Дефинирайте незадължителна хостгрупа за Linux машини #define hostgroup( # hostgroup_name linux-servers ; Името на хостгрупата # псевдоним Linux сървъри ; Дълго име на групата # членове localhost ; разделен със запетая списък с хостове, които принадлежат към тази група # ) . . .

Когато се създаде обект на Windows сървър, той автоматично става член на групата windows-servers. Това действие е дефинирано във файла templates.cfg. За да могат линукс сървърите автоматично да попаднат в групата linux-сървъри, трябва да направите следната промяна

# nano /etc/nagios/etc/objects/templates.cfg . . . # Шаблон за дефиниция на хост в Linux - Това НЕ е истински хост, а просто шаблон! define host( име linux-server ; Името на този шаблон за хост използва generic-host ; Този шаблон наследява други стойности от шаблона generic-host check_period 24x7 ; По подразбиране хостовете на Linux се проверяват денонощно check_interval 5 ; Активна проверка хоста на всеки 5 минути retry_interval 1 ; Планирайте повторните опити за проверка на хоста на интервали от 1 минута max_check_attempts 10 ; Проверявайте всеки хост на Linux 10 пъти (макс.) check_command check-host-alive ; Команда по подразбиране за проверка на работните часове на хостове на Linux; Notification_period на Linux администраторите мразят да бъдат будени нагоре, така че уведомяваме само през деня; Обърнете внимание, че променливата notification_period се отменя от ; стойността, която е наследена от шаблона за общ хост! notification_interval 120 ; Повторно изпращане на известия на всеки 2 часа notification_options d,u,r ; Изпращайте само известия за конкретни състояния на хост contact_groups admins; Известията се изпращат до администраторите по подразбиране хостгрупи linux-сървъри; Хост групи, в които трябва да членуват Linux сървъритерегистър 0 ; НЕ РЕГИСТРИРАЙТЕ ТОВА ОПРЕДЕЛЕНИЕ - НЕ Е ИСТИНСКИ ХОСТ, САМО ШАБЛОН! ) . . .

За да настроите известие, трябва да посочите имейла на системния администратор в contacts.cfg

# nano /etc/nagios/etc/objects/contacts.cfg . . . define contact( contact_name nagiosadmin ; Кратко име на потребителя използва generic-contact ; Наследи стойностите по подразбиране от шаблона за общ контакт (дефиниран по-горе) псевдоним Nagios Admin ; Пълното име на потребителския имейл [защитен с имейл]уебсайт ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } . . .

Рестартиране на # услуга nagios

Можете да проверите ефективността на сигналите по следния начин, изберете „Хостове“ вляво в уеб интерфейса, след това щракнете върху „localhost“, щракнете върху „Изпращане на персонализирано известие за хост“ в менюто вдясно, напишете каквото и да е в Ред „Коментар“ и щракнете върху „Commit“.

Трябва да се изпрати сигнал на пощата, посочена в contacts.cfg.


Малко за плъгините

Папката /etc/nagios/libexec съдържа инсталирани плъгини. В началото на статията беше отбелязано, че nagios получава цялата информация чрез плъгини. Например, нека разгледаме времето за работа на системата

# /etc/nagios/libexec/check_uptime Uptime OK: 0 ден(и) 3 час(а) 52 минути | време на работа=232.000000;;;

Повечето плъгини работят само с аргументи, например, нека да видим състоянието на файла за размяна на системата

# /etc/nagios/libexec/check_swap -w 20 -c 10 SWAP OK - 100% безплатно (2044 MB от 2044 MB) |swap=2044MB;0;0;0;2044

Има два аргумента -w 20 и -c 10.

w - предупреждение, когато остават 20% от свободното място, ще настъпи предупредително събитие.

c - критичен, когато остават 10% от свободното пространство, ще настъпи критичното събитие.

Има и плъгини локални и "общи". Горните примери са местни. Например, плъгинът check_swap няма да може да провери състоянието на файла за пейджинг на отдалечен хост, но плъгинът check_ping може да провери наличността както на локални, така и на отдалечени хостове

# /etc/nagios/libexec/check_ping -H localhost -w 100.0.20% -c 500.0.60% PING OK - Загуба на пакети = 0%, RTA = 0.04 ms|rta=0.036000ms;100.000000;0.000; 0%;20;60;0 # /etc/nagios/libexec/check_ping -H 192.168.1.16 -w 100.0.20% -c 500.0.60% PING OK - Загуба на пакети = 0%, RTA = 0,27 ms|rta= 0,273000ms;100,000000;500,000000;0,000000pl=0%;20;60;0


Малко за NRPE

NRPE - Nagios Remote Plugin Executor. За да може nagios да получава информация от отдалечени хостове, като например използване на диск или процесор, се използва приставката nrpe. Nagios осъществява достъп чрез плъгина nrpe до nrpe сървър, инсталиран на отдалечен linux/unix хост. Сървърът nrpe изпълнява локалните плъгини и предава информацията към сървъра nagios. Важно! nrpe сървърът и плъгинът трябва да са една и съща версия, в противен случай може да възникнат грешки.


Инсталиране на NRPE Plugin

Преди да инсталирате плъгина nrpe, трябва да инсталирате зависимостта

# apt инсталира libssl-dev

Можете да изтеглите най-новата версия на nrpe от уебсайта на nagios. Отидете в директорията за изграждане, изтеглете и разархивирайте най-новата версия на nrpe

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # tar xzvf 3.0.1.tar.gz

Да отидем в папката с nrpe и да конфигурираме

Нека изградим и инсталираме плъгина nrpe

# направи check_nrpe # направи install-plugin

Добавете поддръжка на nrpe към /etc/nagios/etc/objects/commands.cfg

# nano /etc/nagios/etc/objects/commands.cfg . . . # "check_nrpe" дефиниция на командата define command( command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$) . . .

След направените промени, трябва да рестартирате услугата nagios

Рестартиране на # услуга nagios


Инсталиране на NRPE сървъра

На хоста на Linux, който ще наблюдаваме, трябва да инсталираме nrpe сървъра и плъгините.

Инсталирайте необходимите зависимости

# apt install build-essential libssl-dev

Отидете в директорията за изграждане, изтеглете nrpe, плъгини и ги разархивирайте

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # wget https://nagios-plugins.org/download/nagios-plugins-2.1. 4.tar.gz # tar xzvf 3.0.1.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

Да отидем в директорията с nrpe и да конфигурираме

# cd nrpe-3.0.1 # ./configure --prefix=/etc/nagios

Да построим

# направи nrpe

Добавете потребител и група, от чието име ще работи nrpe сървърът

# направи потребителски групи за инсталиране

Нека инсталираме сървъра и конфигурационния файл

# направи install-daemon # направи install-config

Инсталирайте стартов скрипт

# направи install-init # systemctl активира /lib/systemd/system/nrpe.service

Да отидем в директорията с изходния код на плъгините и да конфигурираме

# cd /usr/src/nagios-plugins-2.1.4/ # ./configure --prefix=/etc/nagios --with-nagios-user=nagios --with-nagios-group=nagios

Изграждане и инсталиране на плъгини

# направи # направи инсталиране

В /etc/nagios/etc/nrpe.cfg ще позволим на сървъра nagios да получава информация за системата и също така ще посочим истинското име на дисковия дял за наблюдение, в предварително дефинирана команда

Nano /etc/nagios/etc/nrpe.cfg . . . позволени_хостове=127.0.0.1, 192.168.1.13 . . . команда=/etc/nagios/libexec/check_users -w 5 -c 10 command=/etc/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/ sda1команда=/etc/nagios/libexec/check_procs -w 5 -c 10 -s Z команда=/etc/nagios/libexec/check_procs -w 150 -c 200 . . .

192.168.1.13 трябва да бъде заменен с адреса на вашия nagios сървър.
Стартирайте nrpe сървър и проверете състоянието му

# service nrpe start # service nrpe status ● nrpe.service - Nagios Remote Program Executor Зареден: зареден (/lib/systemd/system/nrpe.service; активиран; предварителна настройка на доставчика: активиран) Активен: активен (работи)


Добавяне на хост на Linux към системата за наблюдение

За да направим това, ще създадем файл linux-server.cfg в папката servers

# nano /etc/nagios/etc/servers/linux-serv.cfg define host(използвайте linux-server host_name linux-serv alias linux-serv address 192.168.1.12) define service(използвайте обща услуга host_name linux-serv service_description Зареждане на процесора check_command check_nrpe!check_load ) дефинирайте услуга (използвайте обща услуга host_name linux-serv service_description Текущи потребители check_command check_nrpe!check_users ) дефинирайте услуга (използвайте обща услуга host_name linux-serv service_description /dev/sda1 Free Space check_command check_n) check_n използвайте име на хост_обща услуга linux-serv service_description Общо процеси check_command check_nrpe!check_total_procs ) дефинирайте услуга (използвайте обща услуга host_name linux-serv service_description Zombie Processes check_command check_nrpe!check_zombie_procs )

192.168.1.12 трябва да бъде заменен с адреса на вашия Linux сървър.
Директивата use сочи към името на шаблон в templates.cfg, който дефинира настройките по подразбиране. За да се появи новият хост в уеб интерфейса, трябва да рестартирате услугата nagios

Рестартиране на # услуга nagios

За да проверите дали nrpe работи, можете да изпълните командата

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 NRPE v3.0.1

За да проверите конкретна услуга, трябва да добавите аргумент с името на проверката

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 -c check_sda1ДИСК ОК - свободно място: /var/tmp 14549 MB (85% inode=88%);| /var/tmp=2527MB;14411;16212;0;18014

Дефинирахме името на проверката във файла nrpe.cfg

команда[ check_sda1]=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

и във файла linux-serv.cfg

Определете услуга (използвайте име на хост_обща услуга на linux-serv service_description /dev/sda1 Свободно пространство check_command check_nrpe! check_sda1 }


Мониторинг на хоста на Windows

Плъгинът nt се използва за наблюдение на хостове на Windows. По подразбиране той е включен в основните плъгини и не е необходимо да се инсталира отделно. Чрез nt плъгинът nagios осъществява достъп до NSClient++, инсталиран на хоста на Windows. NSClient++ има достъп до определени модули, които му съобщават информация за системата. NSClient++ изпраща получената информация до сървъра nogios.


Инсталиране на NSClient++

На хост на Windows трябва да инсталирате NSClient++. Изтеглете най-новата версия и стартирайте като администратор.

Щракнете върху "Напред"

Щракнете отново върху "Напред".

Изберете "Типичен"

Посочете адреса на сървъра nagios, парола и оставете първите две квадратчета за отметка. Щракнете върху "Напред"

Щракнете върху "Инсталиране"

Щракнете върху "Край"


Добавяне на хост на Windows към системата за наблюдение

За да направим това, ще създадем файл windows-serv.cfg в папката servers

# nano /etc/nagios/etc/servers/windows-serv.cfg define host(използвайте windows-server host_name windows-serv псевдоним Моят адрес на Windows Server 192.168.1.33) дефинирайте услуга(използвайте обща услуга host_name windows-serv service_description NSClient++ версия check_command check_nt!CLIENTVERSION ) дефинирайте услуга (използвайте име на хоста на обща услуга windows-serv service_description Uptime check_command check_nt!UPTIME ) define service (използвайте обща услуга host_name windows-serv service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 ) дефинирайте услуга (използвайте име на хост_обща услуга windows-serv service_description Използване на паметта check_command check_nt!MEMUSE!-w 80 -c 90 ) define service(използвайте име на хост_обща услуга windows-serv service_description C:\ Drive Space check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 ) дефиниране на услуга (използвайте име на хост_обща услуга на windows-serv service_description VMTools check_command check_nt!SERVICESTATE!-d SHOWALL -l VMToo ls ) дефинирайте услуга (използвайте име на хост_обща услуга windows-serv service_description Explorer check_command check_nt!PROCSTATE!-d SHOWALL -l explorer.exe )

192.168.1.33 трябва да бъде заменен с адреса на вашия Windows сървър.
Ако при инсталирането на клиента NSClient++ е посочена парола, трябва да я добавите към commands.cfg

# nano /etc/nagios/etc/objects/commands.cfg . . . # "check_nt" дефиниция на команда define command( command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s MegaPass-v $ARG1$ $ARG2$) . . .

И рестартирайте услугата nagios

Рестартиране на # услуга nagios


Определение на сервизна група

Сервизна група обединява хостове, които подлежат на определени сервизни проверки. Нека създадем група услуги за натоварване на процесора и да обединим хостовете, за да проверим натоварването на процесора.

# nano /etc/nagios/etc/objects/servicegroups.cfg define servicegroup( servicegroup_name cpuload псевдоним CPU Load members linux-serv,CPU Load, localhost,Current Load, windows-serv,CPU Load )

Членовете на групата са определени в директивата за членовете според принципа
членове= ,,,,…,н>,н>

За да направите групата достъпна, трябва да рестартирате услугата nagios

Рестартиране на # услуга nagios


Местоположение на връзките към хоста на картата

По подразбиране всички хостове на картата са свързани към Nagios Process. Има моменти, когато трябва да отмените това поведение. Например, връзката не трябва да идва от Nagios Process, а от друга точка на картата (като пример връзка със сървър чрез комутатор). Това става чрез добавяне на директивата родители към раздела за описание на хоста. За илюстративен пример, нека променим връзката windows-serv от Nagios Process към linux-serv

# nano /etc/nagios/etc/servers/windows-serv.cfg дефинира хост (използвайте windows-server host_name windows-serv псевдоним Моят адрес на Windows Server 192.168.1.33 родители linux-serv } . . .

И рестартирайте услугата nagios

Рестартиране на # услуга nagios

В първия случай всички хостове са имали връзка с Nagios Process, във втория случай връзката windows-serv започва от linux-serv.


Активиране на икони

nagios има възможност да активира икони до името на хоста. Иконите се намират в папката /etc/nagios/share/images/logos. Можете да използвате готов комплект, можете да изтеглите от интернет. За да активирате показването на икони, трябва да добавите следните редове към templates.cfg

# nano /etc/nagios/etc/objects/templates.cfg . . . # Шаблон за дефиниция на хост в Linux - Това НЕ е истински хост, а просто шаблон! define host( име linux-server ; Името на този шаблон за хост използва generic-host ; Този шаблон наследява други стойности от шаблона за общ хост check_period 24x7 ; По подразбиране хостовете на Linux се проверяват денонощно check_interval 1 ; Активно проверявайте хоста на всеки 5 минути retry_interval 1 ; Планирайте повторните опити за проверка на хоста на интервали от 1 минута max_check_attempts 10 ; Проверявайте всеки хост на Linux 10 пъти (макс.) check_command check-host-alive ; Команда по подразбиране за проверка на работните часове на хостове на Linux; Notification_period на Linux администраторите мразят да бъдат будени нагоре, така че уведомяваме само през деня; Обърнете внимание, че променливата notification_period се отменя от ; стойността, която е наследена от шаблона за общ хост! notification_interval 120 ; Повторно изпращане на известия на всеки 2 часа notification_options d,u,r ; Изпращайте само известия за конкретни състояния на хост contact_groups admins ; Известията се изпращат до администраторите по подразбиране hostgroups linux-servers ; Групи хостове, които linux сървърите се ще бъде член на icon_image linux40.png statusmap_image linux40.gd2регистър 0 ; НЕ РЕГИСТРИРАЙТЕ ТОВА ОПРЕДЕЛЕНИЕ - НЕ Е ИСТИНСКИ ХОСТ, САМО ШАБЛОН! ) # Шаблон за дефиниция на хост на Windows - Това НЕ е истински хост, а просто шаблон! define host( име windows-server ; Името на този шаблон за хост използва generic-host ; Наследете стойностите по подразбиране от шаблона за общ хост check_period 24x7 ; По подразбиране сървърите на Windows се наблюдават денонощно check_interval 5 ; Активно проверявайте сървъра на всеки 5 минути retry_interval 1 ; Планирайте повторни опити за проверка на хоста на интервали от 1 минута max_check_attempts 10 ; Проверявайте всеки сървър 10 пъти (макс.) check_command check-host-alive ; Команда по подразбиране, за да проверите дали сървърите са "живи" notification_period 24x7 ; Изпращане на известие по всяко време. time - ден или нощ notification_interval 30 ; Повторно изпращане на известия на всеки 30 минути notification_options d,r ; Изпращайте известия само за конкретни състояния на хост contact_groups admins ; Известията се изпращат до администраторите по подразбиране hostgroups windows-servers ; Групи хостове, в които сървърите на Windows трябва да членуват на icon_image win40.png statusmap_image win40.gd2регистър 0 ; НЕ РЕГИСТРИРАЙТЕ ТОВА - ТОВА Е САМО ШАБЛОН). . .

Рестартиране на услугата nagios

Рестартиране на # услуга nagios

В момента все повече малки и средни компании създават разпределена ИТ инфраструктура, неразделна част от която е ефективното наблюдение на всички нейни компоненти за осигуряване на непрекъснато и качествено функциониране. Такива решения обикновено имат следните нефункционални изисквания: бърза реакция на събития и възможност за работа с ограничени изчислителни ресурси. Тази статия описва възможността за изграждане на такава система на базата на свободно разпространен софтуер за наблюдение - Nagios.

Кратко описание на Nagios

Основният компонент на Nagios, основният сървър, може да бъде разгърнат на почти всеки Linux/Unix сървър. Той е включен в почти всички разпространени Linux и Unix дистрибуции. Ако е необходимо, можете да изтеглите изходния код от сайта на проекта и да създадете своя собствена версия на Nagios въз основа на него. Освен това, заедно с основния пакет Nagios, е инсталирана и документацията за него.

Nagios има модулна и разширяема архитектура. За да увеличите възможностите на Nagios, можете да използвате следните типове компоненти: плъгини (нагиос плъгини) и разширения (добавки за Nagios).

Плъгините се използват от основния процес на Nagios за получаване на следната информация: време за реакция на отдалечения възел, свободно пространство на дисковия дял и т.н. Ако не може да бъде намерен плъгин с необходимата функционалност, тогава се предлага удобен интерфейс за създаване на ваши собствени плъгини.

Терминът "добавка" е въведен, за да се избегне объркване с плъгините, тъй като разширенията се използват за добавяне на фундаментално нова функционалност към Nagios или за интегриране с други външни продукти.

Възможността за бързо писане на плъгини превърна Nagios в универсален инструмент за наблюдение на мрежата. Има добавки за анкетиране на възли чрез SNMP, проверяващи наличността на отдалечен възел с помощта на различни мрежови протоколи. В проекта Nagios Exchange можете да търсите сред вече написани плъгини или разширения или да добавите там плъгин от ваша собствена разработка.

Потребителският интерфейс Nagios е реализиран като уеб приложение. Необходимите CGI скриптове и конфигурацията на уеб сървъра са включени в основния пакет Nagios. Има и подсистема за уведомяване, която ви позволява да информирате по имейл за възникването на извънредни ситуации и тяхното отстраняване.

Фигура 1 показва структурата на главния сървър на Nagios.


Фигура 2 показва механизма за стартиране на плъгини Nagios на отдалечен хост.


Ключовите компоненти на фигура 2 са плъгинът check_nrpeнаблюдение и разширение от страна на възел NRPEна отдалечения хост. Между плъгин check_nrpeи NRPE- демонът установява криптирана SSL връзка, чрез която nagiosdизпраща команди за стартиране на плъгини и получава резултатите от тяхното изпълнение. NRPE"проектира" плъгините на отдалечения хост към главния сървър Nagios ( nagiosd), така че можете да стартирате всякакви плъгини на всеки отдалечен хост.

За отдалечен мониторинг на възли на Windows можете да използвате разширението NSClient++. В този случай отстрани nagiosdтрябва да се използва плъгин check_nt.

Пример за използване на Nagios

Например, ще бъде взето малко търговско предприятие, което има 3 точки на присъствие: склад, магазин и офис. Всяка точка на присъствие има своя собствена връзка с локалния интернет доставчик. Linux/Unix сървър е инсталиран като шлюз на всеки сайт. Между всички сайтове е организирана VPN. В офиса интранет мрежата е 10.1.0.0/24. На склад - 10.2.0.0/24. В магазина - 10.3.0.0/24. Ръководството на предприятието постави задачата да наблюдава тази ИТ инфраструктура.


За да направите това, трябва да инсталирате услугата на всеки от сървърите. NRPEи два от тях имат основния комплект Nagios. Това се прави, така че ако един от сървърите на Nagios се повреди, другият незабавно ще изпрати съобщение за това.

За монтаж nagiosdи NRPEможете да използвате стандартните инструменти на системата. Тази процедура зависи от избраната платформа и обикновено не е трудна. Също така заедно с nagiosdили NRPEосновният набор от плъгини е инсталиран. Също така ще трябва да инсталирате и конфигурирате уеб интерфейса, за да показва състоянието на възела с инсталирания сървър Nagios. В някои дистрибуции той е отделен в отделен пакет. И накрая, трябва да създадете htpasswd файл с потребител на nagiosadmin, дефиниран във файла cgi.conf. Ако желаете, можете да направите промени в конфигурацията и да използвате друг потребител вместо това име.

След това можете да стартирате сървъра на Nagios и уеб сървъра и да влезете във вашия локален сподел на Nagios с вашето потребителско име и парола. Засега той наблюдава само един локален възел и показва няколко от неговите параметри (средно натоварване (средно натоварване), текущи потребители (активни потребители), дисково пространство (дисково пространство)). Един от разделите на този ресурс съдържа документация, така че не е необходимо да харчите интернет трафик за достъп до него. Описанието на хоста е във файла localhost.cfg.


Преди да добавите други възли към конфигурацията, трябва да посочите имейл адресите на хората, отговорни за тяхното администриране. Това се прави във файла contacts.cfg. Силно препоръчително е да избирате имейл адреси от независими доставчици на електронна поща. Например, можете да инсталирате пощенския клиент на Yandex на мобилния си телефон и да посочите адреса на yandex.ru в описанието. Ако интернет в офиса, където е инсталиран сървърът за корпоративна поща, е изключен, тогава дори след работно време сървърът Nagios от склада ще уведоми администратора за това чрез мобилен телефон.

Списък 1 показва как да добавите информация за контакт към файла contacts.cfg.

Списък 1. Добавяне на информация за контакт.
define contact( contact_name zorin; // кратко потребителско име // стойностите по подразбиране ще бъдат наследени от шаблона за общ контакт use generic-contact; псевдоним Alexander N. Zorin; // пълно потребителско име имейл [защитен с имейл]; }

След това трябва да регистрирате възлите, които ще бъдат наблюдавани в Nagios. Списък 2 показва как да създадете дефиниция на складов възел във файла warehouse-gw.cfg, подобно на файла localhost.cfg.

Листинг 2. Добавяне на възли към Nagios.
define host( // име на шаблона, използван за описание на хоста. // дефинирането на този хост ще наследи всички настройки // декларирани в хост шаблона linux-server. use linux-server host_name warehouse-gw псевдоним warehouse display_name Контакти в склада zorin , worehouse-admin адрес 140.14.22.4 ) define service( // име на шаблона, използван за описание на услугата. use local-service ; host_name warehouse-gw service_description SSH check_command check_ssh notifications_enabled 1 ) define host(използвайте linux-server; host_name warehouse -intra alias warehouse-intra display_name Контакти в локалната мрежа на склад zorin, адрес на администратор на склада 10.2.0.1 ) define service( // име на шаблона, използван за описание на услугата. use local-service; host_name warehouse-intra service_description SMTP check_command check_smtp notifications_en 1)

възел склад-gwумишлено регистриран два пъти, за да следи състоянието както на външните, така и на вътрешните LAN услуги. В този пример SMTP сървърът обслужва само локалната мрежа. Таблата за управление на уеб интерфейса на Nagios ще покажат два възела склад-gwи склад-интра. Ако възелът warehouse-intra изчезне и стане достъпен само склад-gw- това означава, че VPN каналът е прекъснат.

Някои плъгини ще работят през разширението NRPE(средно натоварване - check_load, дисково пространство - check_disk, текущи потребители - check_users), за да получите информация, която е невъзможно или трудно да се получи извън възела. За да направите това, трябва да инсталирате плъгин check_nrpe2на сървъри и разширение Nagios NRPEна всички сървъри. Това може да стане с помощта на стандартни системни инструменти.

В конфигурационния файл nrpe.cfg трябва да посочите адреса, към който ще бъде прикачен NRPE-демон и доверени възли, от които ще приема заявки. За магазина (възел shop-gw) ще се използват следните параметри:

адрес_сървър=10.3.0.1 разрешени_хостове=10.1.0.1,10.2.0.1

Трафик NRPEумишлено маршрутизиран през VPN. Доверени възли за NRPE демонв магазина са офис и склад. На сървърите на Nagios тези услуги ще бъдат наблюдавани, както е показано в листинг 3:

Списък 3. Конфигуриране на наблюдение за отдалечена услуга
define service( // име на шаблона, използван за описание на услугата. use local-service; host_name warehouse-intra service_description Зареди среден индекс check_command check_nrpe2!-c check_load notifications_enabled 1 )

В такъв случай NRPE-демон на възел склад-интракомандата е изпратена check_load. Отговорът ще бъде текущата стойност. средно натоварванеза този възел. Моля, имайте предвид, че параметрите за приставката (а може да са няколко) трябва да бъдат разделени с удивителни знаци. В показания пример параметърът е -c check_load.

Така, стъпка по стъпка, чрез добавяне на нови възли и параметрите, наблюдавани върху тях, се изгражда високо функционална система за наблюдение.

Работа с плъгини

Плъгините са прости програми или скриптове, които получават входни параметри, когато се изпълняват през опциите на командния ред и връщат исканите стойности към stdout в добре дефиниран формат. Командите за стартиране на плъгини могат да бъдат записани във файла commands.cfg, докато плъгините са инсталирани с nagiosdвече са в този файл. Възможно е също да регистрирате всеки плъгин в отделен файл.

Списък 4 показва как е описана приставката. check_smtp A, който проверява наличността на SMTP сървъра на отдалечения хост и времето за реакция.

Листинг 4. Конфигуриране на плъгина check_smtp
define command( command_name check_smtp command_line /usr/lib/nagios/plugins/check_smtp -H $HOSTADDRESS$)

Пътят до приставката е изрично посочен тук check_smtpи необходимостта от добавяне към заявката чрез опцията -ХИПадрес на проверявания възел, който се заменя автоматично въз основа на директивата дефинирайте услугатапо-горе. Ако стартирате този плъгин от командния ред, ще се покаже следната информация:

/usr/lib/nagios/plugins/check_smtp -H 192.168.4.1 SMTP OK - 0,038 сек. време за реакция|време=0,037518s;;;0,000000

Опциите за стартиране могат да бъдат различни, основното е да ги добавите правилно към описанието на командата. Изходният формат е описан подробно в документацията, инсталирана с уеб интерфейса.

При инсталиране NRPE-daemon, само малка част от плъгините е регистрирана във файла nrpe.conf, сред тях е горната команда check_load:

команда=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

Горният ред съдържа пътя към приставката check_loadи опции за стартиране. Ако плъгинът се стартира без параметри, той ще покаже списък с валидни параметри. Например, трябва да създадете команда check_usrза NRPE, което ще върне информация за /dev/md2 дяла, монтиран на /usr пътя към сървъра за наблюдение. Тази функционалност може да се реализира с помощта на стандартен плъгин check_disk. Ако го стартирате без параметри, ще се покаже описание на началните параметри.

Употреба: check_disk -w limit -c limit [-W limit] [-K limit] (-p път | -x устройство) [-C] [-E] [-e] [-g група ] [-k] [ -l] [-M] [-m] [-R път ] [-r път ] [-t изчакване] [-u единица] [-v] [-X тип]

Въз основа на предоставената информация можете да подготвите екип check_usrи го поставете във файла nrpe.conf:

команда=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2

Пробното изпълнение на тази команда ще доведе до следния изход:

/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2 ДИСК ОК - свободно място: /usr 20295 MB (86% inode=92%);| /usr=3061MB;19684;22145;0;24606

Както можете да видите, в Nagios можете лесно да създавате плъгини за изпълнение на различни задачи и да ги свързвате с демона NRPE.

Разширения на Nagios

Когато обсъждаме възможностите на Nagios, е наложително да разгледаме най-интересните разширения, които значително подобряват възможностите на Nagios.

pnp4nagios разширение

По подразбиране Nagios съхранява история на състоянието на наблюдаваните параметри само според тяхното ниво на критичност (нормално, предупреждение, критично). Потребителят може да види в какви периоди параметърът е бил в различни състояния и какво е общото време, прекарано в тези състояния за отчетния период.


Както е показано на фигура 5, критичният период е маркиран в червено, а периодите на нормално функциониране са маркирани в зелено. Това решение е подходящо за параметри от булев тип (да / не), например целостта на RAID масив. За числови параметри би било по-полезно да се проследи динамиката на промените.

Удължаване pnp4nagios, редовно получаващи от nagiosdстойности на параметрите, записва историята на промените им и генерира отчет в графичен вид. Графиките могат да се комбинират произволно и, ако е необходимо, да се преобразува получената уеб страница в PDF файл. Фигура 6 показва отчет за промяна на параметрите средно натоварванеза конкретен възел.

Фигура 6. уеб страница с разширение pnp4nagios
Заключение

Особено си струва да се отбележи ниската ресурсна интензивност на това решение. Една компания използва Nagios за наблюдение на 14 възела и 140 услуги на тях, докато демонът NRPE заема 512KB RAM, а сървърът nagiosd само 140KB RAM. Консумацията на процесорни ресурси от двата компонента и техните дъщерни процеси на процесор Pentium-IV не надвишава 1%. Сред наблюдаваните параметри са: температурата на твърдите дискове и дънните платки, състоянието на дисковите дялове, размерът на опашките за поща, скоростите на вентилатора, целостта на RAID масивите и много други.

Както е показано в тази статия, пакетът Nagios има изключително ниски изисквания за ресурси, много е адаптивен и е отворен за нови плъгини и разширения. За малка или средна компания, която вече има поне един Linux/Unix сървър, Nagios е идеалното решение за наблюдение на съществуващата ИТ инфраструктура.



Свързани статии: