THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

В больших сетях мониторинг стратегических объектов, таких как маршрутизаторы, web-серверы и файловые хранилища просто необходим, чем быстрее будет определена неисправность, тем быстрее ее устранят!
В качестве системы мониторинга я предлагаю использовать Nagios.
Для установки была выбрана платформа ubuntu 10.10 , воспользовавшись встроенным инсталятором установим nagios :

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

cd /etc/nagios3/conf.d nano myhosts.cfg

В файле myhosts.cfg назначим каждому устройству адрес и описание :

define host { host_name Server-terminals alias Server terminals address 192.168.1.2 use generic-host } define host { host_name Server-www alias Server www address 192.168.1.12 use generic-host } define host { host_name Server-firewall alias Server firewall address 192.168.1.21 use generic-host } define host { host_name Server-statistic alias Server statistic address 192.168.1.20 use generic-host } define host { host_name Server-ad alias Server ad address 192.168.1.14 use generic-host } define host { host_name modem-ad alias Server ad address 10.0.0.1 parents Server-ad use generic-host } define host { host_name modem-www alias Server ad address 172.16.0.3 parents Sever-www use generic-host } define host { host_name modem-statistic alias Server ad address 192.168.0.253 parents Server-statistic use generic-host }

Параметром parents мы указываем к какому устройству,логически, данный объект будет подключаться, таким образом появляется возможность корректировать карту сети.
Все объявленные хосты мы сможем просмотреть на вкладке hosts браузера и выглядеть они будут таким образом:


Далее нам необходимо добавить объявленные устройства в группы, в зависимости от дальнейшего способа проверки, один компьютер можно вносить в несколько групп одновременно. Редактируем файл-групп :

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

Мы хотим заменить логотип отображаемого элемента на карте nagios , логотипы находятся в /usr/share/nagios/htdocs/images/logos , при изменении логотипа достаточно лишь указать новое картинки, находящейся по указанному пути.
Радактируем :

а именно параметр default_statuswrl_layout на значение от 0 до 5 .
Также я меняю период обновления страницы, в секундах, параметром refresh_rate
Теперь по образу и подобию вы самостоятельно сможете добавлять компьютеры и группы, думаю на этом простая настройка закончена. В дальнейшем я напишу об дополнительных настройках, связанных с системой оповещения.

Перед конфигурированием 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

Выполним сборку

# make all

Установим nagios

# make install

Установим init скрипт в /etc/init.d и активируем авто запуск

# make install-init # update-rc.d nagios defaults

Установим права на директорию для хранения внешних командных файлов

# make install-commandmode

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

# make install-config

Установим конфигурацию nagios для apache

# make 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

# make # make install

Включим конфигурацию nagios в apache и активируем необходимые дополнения

# a2ensite nagios # a2enmod rewrite cgi

Перезапустим службу apache

# service apache2 restart

Запустим nagios и проверим статус

# service nagios start # service nagios status ● nagios.service - Nagios Loaded: loaded (/etc/systemd/system/nagios.service; enabled; vendor preset: enabled) Active: active (running)

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

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

Теперь разберемся с конфигурационными файлами nagios.

/etc/nagios/etc/cgi.cfg — определяет настройки веб интерфейса, а так же права доступа к web консоли nagios.

/etc/nagios/etc/htpasswd.users — база пользователей и их паролей для доступа к web интерфейсу 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 . . . # You can specify individual object config files as shown below: 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 # Definitions for hostgroups and servicegroups cfg_file=/etc/nagios/etc/objects/hostgroups.cfg cfg_file=/etc/nagios/etc/objects/servicegroups.cfg # Definitions for monitoring the local (Linux) host cfg_file=/etc/nagios/etc/objects/localhost.cfg # Definitions for monitoring a Windows machine #cfg_file=/etc/nagios/etc/objects/windows.cfg # Definitions for monitoring a router/switch #cfg_file=/etc/nagios/etc/objects/switch.cfg # Definitions for monitoring a network printer #cfg_file=/etc/nagios/etc/objects/printer.cfg # You can also tell Nagios to process all config files (with a .cfg # extension) in a particular directory by using the cfg_dir # directive as shown below: 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/ # touch hostgroups.cfg servicegroups.cfg # chown nagios:nagios hostgroups.cfg servicegroups.cfg # chmod 664 hostgroups.cfg servicegroups.cfg

Создадим каталог /etc/nagios/etc/servers / и выставим на него права

# 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 # Define an optional hostgroup for Linux machines # All hosts that use the linux-server template will automatically be a member of this group define hostgroup{ hostgroup_name linux-servers ; The name of the hostgroup alias Linux Servers ; Long name of the group } # Define a hostgroup for Windows machines # All hosts that use the windows-server template will automatically be a member of this group define hostgroup{ hostgroup_name windows-servers ; The name of the hostgroup alias Windows Servers ; Long name of the group }

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

# nano /etc/nagios/etc/objects/localhost.cfg . . . # Define an optional hostgroup for Linux machines #define hostgroup{ # hostgroup_name linux-servers ; The name of the hostgroup # alias Linux Servers ; Long name of the group # members localhost ; Comma separated list of hosts that belong to this group # } . . .

При создании объекта windows сервер, он автоматически становится членом группы windows-servers. Это действие определено в файле шаблонов templates.cfg. Чтобы linux сервера попадали автоматически в группу linux-servers, нужно сделать следующее изменение

# nano /etc/nagios/etc/objects/templates.cfg . . . # Linux host definition template - This is NOT a real host, just a template! define host{ name linux-server ; The name of this host template use generic-host ; This template inherits other values from the generic-host template check_period 24x7 ; By default, Linux hosts are checked round the clock check_interval 5 ; Actively check the host every 5 minutes retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each Linux host 10 times (max) check_command check-host-alive ; Default command to check Linux hosts notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day ; Note that the notification_period variable is being overridden from ; the value that is inherited from the generic-host template! notification_interval 120 ; Resend notifications every 2 hours notification_options d,u,r ; Only send notifications for specific host states contact_groups admins ; Notifications get sent to the admins by default hostgroups linux-servers ; Host groups that linux servers should be a member of register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! } . . .

Для настройки оповещения, нужно указать email администратора системы в contacts.cfg

# nano /etc/nagios/etc/objects/contacts.cfg . . . define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Nagios Admin ; Full name of user email admin@сайт ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } . . .

# service nagios restart

Проверить работоспособность оповещений, можно следующим способом, в web интерфейсе выбрать слева «Hosts», далее нажимаем на «localhost», в меню справа нажимаем «Send custom host notification», пишем что угодно в строку «Comment» и нажимаем «Commit».

На почту, указанную в contacts.cfg должно прийти оповещение.


Немного о плагинах

В папке /etc/nagios/libexec располагаются установленные плагины. В начале статьи было отмечено, что nagios получает всю информацию через плагины. Для примера посмотрим uptime системы

# /etc/nagios/libexec/check_uptime Uptime OK: 0 day(s) 3 hour(s) 52 minute(s) | uptime=232.000000;;;

Большинство плагинов работаю только с аргументами, к примеру посмотрим статус файла подкачки системы

# /etc/nagios/libexec/check_swap -w 20 -c 10 SWAP OK - 100% free (2044 MB out of 2044 MB) |swap=2044MB;0;0;0;2044

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

w — warning, когда останется 20% свободного места, будет происходить событие warning.

c — critical, когда останется 10% свободного места, будет происходить событие critical.

Так же плагины бывают локальные и «общие». Приведенные выше примеры, относятся к локальным. К примеру плагином check_swap не удастся посмотреть статус файла подкачки на удаленном хосте, а вот плагином check_ping можно проверить доступность и локального и удаленного хоста

# /etc/nagios/libexec/check_ping -H localhost -w 100.0,20% -c 500.0,60% PING OK - Packet loss = 0%, RTA = 0.04 ms|rta=0.036000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0 # /etc/nagios/libexec/check_ping -H 192.168.1.16 -w 100.0,20% -c 500.0,60% PING OK - Packet loss = 0%, RTA = 0.27 ms|rta=0.273000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0


Немного о NRPE

NRPE — Nagios Remote Plugin Executor. Для того, чтобы nagios мог получать информацию от удаленных хостов, такую как загрузка диска, или процессора, используется nrpe плагин. Nagios обращается через nrpe плагин, к nrpe серверу, установленному на удаленном linux/Unix хосте. Nrpe сервер запускает локальные плагины, и передает nagios серверу полученную информацию. Важно! nrpe сервер и плагин должны быть одной версии, иначе могут возникать ошибки.


Установка NRPE плагина

Перед установкой nrpe плагина, нужно установить зависимость

# apt install 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 плагина

# make check_nrpe # make install-plugin

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

# nano /etc/nagios/etc/objects/commands.cfg . . . # "check_nrpe" command definition define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } . . .

После проделанных изменений нужно перезапустить службу nagios

# service nagios restart


Установка 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

Выполним сборку

# make nrpe

Добавим пользователя и группу, от имени которых будет работать nrpe сервер

# make install-groups-users

Выполним установку сервера и конфигурационного файла

# make install-daemon # make install-config

Установим стартовый скрипт

# make install-init # systemctl enable /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

Выполним сборку и установку плагинов

# make # make install

В /etc/nagios/etc/nrpe.cfg разрешим nagios серверу получать информацию о системе, а так же укажем истинное название раздела диска для мониторинга, в предопределенной команде

Nano /etc/nagios/etc/nrpe.cfg . . . allowed_hosts=127.0.0.1, 192.168.1.13 . . . command=/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 command=/etc/nagios/libexec/check_procs -w 5 -c 10 -s Z command=/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 Loaded: loaded (/lib/systemd/system/nrpe.service; enabled; vendor preset: enabled) Active: active (running)


Добавление linux хоста в систему мониторинга

Для этого мы создадим файл linux-server.cfg в папке servers

# nano /etc/nagios/etc/servers/linux-serv.cfg define host{ use linux-server host_name linux-serv alias linux-serv address 192.168.1.12 } define service{ use generic-service host_name linux-serv service_description CPU Load check_command check_nrpe!check_load } define service{ use generic-service host_name linux-serv service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service host_name linux-serv service_description /dev/sda1 Free Space check_command check_nrpe!check_sda1 } define service{ use generic-service host_name linux-serv service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service host_name linux-serv service_description Zombie Processes check_command check_nrpe!check_zombie_procs }

192.168.1.12 нужно заменить на адрес своего linux сервера.
Директива use указывает на имя шаблона в templates.cfg, в котором определены настройки по умолчанию. Для того, чтобы новый хост появился в web интерфейсе нужно перезагрузить службу nagios

# service nagios restart

Для проверки работоспособности 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 DISK OK - free space: /var/tmp 14549 MB (85% inode=88%);| /var/tmp=2527MB;14411;16212;0;18014

Название проверки мы определяли в файле nrpe.cfg

Command[check_sda1 ]=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

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

Define service{ use generic-service host_name linux-serv service_description /dev/sda1 Free Space check_command check_nrpe!check_sda1 }


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

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


Установка NSClient++

На windows хосте нужно установить NSClient++. Скачиваем последнюю версию и запускаем от имени администратора.

Нажимаем «Next»

Снова нажимаем «Next»

Выбираем «Typical»

Указываем адрес nagios сервера, пароль и оставляем две первых галочки. Жмем «Next»

Жмем «Install»

Жмем «Finish»


Добавление windows хоста в систему мониторинга

Для этого мы создадим файл windows-serv.cfg в папке servers

# nano /etc/nagios/etc/servers/windows-serv.cfg define host{ use windows-server host_name windows-serv alias My Windows Server address 192.168.1.33 } define service{ use generic-service host_name windows-serv service_description NSClient++ Version check_command check_nt!CLIENTVERSION } define service{ use generic-service host_name windows-serv service_description Uptime check_command check_nt!UPTIME } define service{ use generic-service host_name windows-serv service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 } define service{ use generic-service host_name windows-serv service_description Memory Usage check_command check_nt!MEMUSE!-w 80 -c 90 } define service{ use generic-service host_name windows-serv service_description C:\ Drive Space check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 } define service{ use generic-service host_name windows-serv service_description VMTools check_command check_nt!SERVICESTATE!-d SHOWALL -l VMTools } define service{ use generic-service host_name 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" command definition define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s MegaPass -v $ARG1$ $ARG2$ } . . .

И перезапустить службу nagios

# service nagios restart


Определение сервисной группы

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

# nano /etc/nagios/etc/objects/servicegroups.cfg define servicegroup{ servicegroup_name cpuload alias CPU Load members linux-serv,CPU Load, localhost,Current Load, windows-serv,CPU Load }

Члены группы определяются в директиве members по принципу
members=,,,,…,n >,n >

Чтобы группа стала доступна, нужно перезапустить службу nagios

# service nagios restart


Расположение связей хостов на карте

По умолчанию все хосты на карте соединены с Nagios Process. Бывают случаи, когда нужно переопределить такое поведение. К примеру связь должна идти не от Nagios Process, а от другой точки на карте (как пример соединение сервера через свитч). Делается это добавлением в секцию описания хоста директивы parents. Для наглядного примера изменим связь windows-serv от Nagios Process к linux-serv

# nano /etc/nagios/etc/servers/windows-serv.cfg define host{ use windows-server host_name windows-serv alias My Windows Server address 192.168.1.33 parents linux-serv } . . .

И перезапустить службу nagios

# service nagios restart

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


Включение иконок

В nagios есть возможность включения иконок рядом с названием хоста. Иконки находятся в папке /etc/nagios/share/images/logos. Можно воспользоваться готовым набором, можно загрузить из интернета. Для включения отображения иконок, нужно добавить следующие строки в templates.cfg

# nano /etc/nagios/etc/objects/templates.cfg . . . # Linux host definition template - This is NOT a real host, just a template! define host{ name linux-server ; The name of this host template use generic-host ; This template inherits other values from the generic-host template check_period 24x7 ; By default, Linux hosts are checked round the clock check_interval 1 ; Actively check the host every 5 minutes retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each Linux host 10 times (max) check_command check-host-alive ; Default command to check Linux hosts notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day ; Note that the notification_period variable is being overridden from ; the value that is inherited from the generic-host template! notification_interval 120 ; Resend notifications every 2 hours notification_options d,u,r ; Only send notifications for specific host states contact_groups admins ; Notifications get sent to the admins by default hostgroups linux-servers ; Host groups that linux servers should be a member of icon_image linux40.png statusmap_image linux40.gd2 register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! } # Windows host definition template - This is NOT a real host, just a template! define host{ name windows-server ; The name of this host template use generic-host ; Inherit default values from the generic-host template check_period 24x7 ; By default, Windows servers are monitored round the clock check_interval 5 ; Actively check the server every 5 minutes retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each server 10 times (max) check_command check-host-alive ; Default command to check if servers are "alive" notification_period 24x7 ; Send notification out at any time - day or night notification_interval 30 ; Resend notifications every 30 minutes notification_options d,r ; Only send notifications for specific host states contact_groups admins ; Notifications get sent to the admins by default hostgroups windows-servers ; Host groups that Windows servers should be a member of icon_image win40.png statusmap_image win40.gd2 register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE } . . .

Перезапускаем службу nagios

# service nagios restart

Nagios - программа с открытым кодом, предназначенная для мониторинга компьютерных систем и сетей. Она следит за указанными узлами и службами, и оповещает администратора в том случае, если какие-то из служб прекращают (или возобновляют) свою работу. Так же при помощи nagios можно просматривать состояние хостов и сервисов через web-интерфейс. Сейчас самая свежая версия nagios3.

    Для работы nagios3 вам понадобится
  • Apache
  • GCC compiler and development libraries
  • GD development libraries

Как ставит Apache я рассказывать не буду, библиотеки ставятся командами

sudo apt-get install build-essential sudo apt-get install libgd2-xpm-dev

Хотя у меня на работал Nagios3 и без этих библиотек. Я буду рассказывать про работу Nagios с Apache2 .

Установка Nagios3 производится одной командой.

sudo apt-get install nagios3

После установки nagios уже запущен и работает. Теперь создадим в Apache отдельный виртуальный хост для nagios . Создайте в каталоге /etc/apache2/sites-enabled конфигурационный файл для хоста nagios. В настройках хоста укажите в роли домашнего каталога /usr/share/nagios3/htdocs обычно все web-файлы nagios3 лежат там. Ещё надо подключить к настройкам apache настройки nagios. Добавьте в файл /etc/apache2/apache2.conf следующую строчку.

Include / etc/ nagios3/ apache2.conf

После этого зайдите на этот новый хост, если вы всё правильно сделали у вас браузер должен спросить пароль, который вы ещё не знаете, зато всё работает.

Теперь займёмся настройкой nagios . Все конфигурационные файлы лежат в /etc/nagios3/ . Главный конфигурационный файл nagios.cfg в нём подключаются все остальные конфигурационные файлы и задаются настройки самого nagios. Так что если Вы создали какой-то свой конфигурационный файл не забудьте подключить его в этом файле.
Дальше переходим к файлу cgi.cfg , в нём выставляются все настройки cgi скриптов, так же в нём выставляются права на доступ к сайту с графическим интерфейсом. По умолчанию полный доступ имеет пользователь nagiosadmin, если ходите разрешить что-то другим пользователям просто допишите их через запятую. Мой конфиг выглядит так.

default_user_name =myuser authorized_for_system_information =nagiosadmin,myuser authorized_for_configuration_information =nagiosadmin,myuser authorized_for_system_commands =nagiosadmin,myuser authorized_for_all_services =nagiosadmin,myuser authorized_for_all_hosts =nagiosadmin,myuser authorized_for_all_services =nagiosadmin,myuser authorized_for_all_hosts =nagiosadmin,myuser authorized_for_all_service_commands =nagiosadmin,myuser authorized_for_all_host_commands =nagiosadmin,myuser

Где myuser это мой логин. Теперь нужно создать файл с пользователями и паролем, для этого перейдите в каталог /etc/nagios3/ воспользуемся команду

cd / etc/ nagios3/ sudo htpasswd -c htpasswd.users myuser

и введите пароль для пользователя myuser
По умолчанию nagios ищет пользователей для аутентификации в файле /etc/nagios3/htpasswd.users , но вы можете хранить из в другом месте, для этого поменяйте в файле /etc/nagios3/apache2.conf параметр AuthUserFile на свой.

Теперь чтобы изменения вступило в силу перезагрузите nagios

sudo / etc/ init.d/ nagios3 restart

Так же можно проверять весь конфиг nagios перед перезагрузкой

sudo nagios3 -v / etc/ nagios3/ nagios.cfg

Он проверит файл nagios.cfg и все файлы которые подключаются в нём и если найдёт ошибки напишет подробную информацию, я советую делать такую проверку после каждого изменения в конфигурационных файлах.

Всё теперь зайдите на свой виртуальных хост созданный для nagios и введите логин и пароль.
Вы увидите состояния своих сервисов, по умолчанию nagios проверяет работу localhost’а и gateway’а. Вы можете добавить свои хосты или сервисы для проверке, сейчас Мы рассмотрим как.

Допустим я хочу проверять когда мои коллеги включают и выключают компьютерны. Для этого сначала надо описать эти хосты. Создаём в каталоге /etc/nagios3/conf.d файл my-hosts.cfg и записываем в него мои хосты

# a host definition for my friends comps define host { host_name volodya #Имя хоста alias Volodya comp #описание address 192.168.140.3 #ip адрес use generic-host } define host { host_name lexa alias lexa comp address 192.168.140.4 use generic-host } define host { host_name xz1 alias xz1 comp address 192.168.140.5 use generic-host } define host { host_name xz2 alias xz2 comp address 192.168.140.8 use generic-host } define host { host_name diman alias diman comp address 192.168.140.10 use generic-host }

Так как этот файл находится в каталоге /etc/nagios3/conf.d отдельно подключать его в файле
/etc/nagios3/nagios.cfg не надо, поскольку в нём уже по умолчанию подключаются все файлы из Директории /etc/nagios3/conf.d

Объединим эти хосты в группу. Запишем в конфигурационный файл групп /etc/nagios3/conf.d/hostgroups_nagios2.cfg такой текст

#Defind my group define hostgroup { hostgroup_name my-friends #имя группы alias my-friends comps # описание members lexa, volodya, xz1,xz2, diman #члены группы }

Теперь надо настроить службу которая будет проверять эту группу хостов. Дописываем в файл /etc/nagios3/conf.d/services_nagios2.cfg или создаём свой файл с таким конфилом.

# check that my friends comps are up define service { hostgroup_name my-friends #имя группы для проверки service_description PING check_command check_ping! 100.0 ,20 %! 500.0 ,60 % #команда проверки use generic-service }

define contact{ contact_name pasha #имя alias pasha service_notification_period 24x7 #период уведомлений о сервисах host_notification_period 24x7 #период уведомлений о хостах service_notification_options w ,u,c,r #о чём уведомлять уведомлений host_notification_options d #уведомлять о том что хост down service_notification_commands notify-service-by-email #как уведомлять host_notification_commands notify-host-by-email #как уведомлять email f448dmg@ yandex.ru # mail }

Временные периоды задаются в файле /etc/nagios3/conf.d/contacts_nagios2.cfg там уже есть несколько уже заданных по умолчанию периода, по их аналогу Вы легко зададите свои.

Когда в системе что-то ломается или начинает вести себя необычным образом, пользователи дружно страдают. Следовательно, в этом случае нужно как можно скорее уведомить кого-нибудь о поломке. А еще лучше было бы предвидеть возникновение проблем заранее . В данной заметке будет описана установка и настройка Nagios, который позволяет вполне успешно решить такие задачи.

Инварианты

В большинстве систем есть ряд инвариантов, которые никогда не должны нарушаться. Вот некоторые примеры возможных нарушений:

  • Load average на одной из машин стал больше X;
  • Свободной памяти на одной из машин осталось меньше X;
  • Свободного места на диске у одной из машин осталось меньше X;
  • Слишком много открытых файловых дескрипторов на машине X;
  • Сильно греется проц, скоро развалится диск , малый заряд UPS;
  • Высокий сетевой трафик, disk io, кончается своп, ну и так далее;
  • Один из хостов не пингуется или пингуется со слишком большим RTT;
  • Что-то перестало резолвиться по DNS;
  • Доступны более новые версии установленных пакетов;
  • На одну из машин залогинилось подозрительно много юзеров;
  • Есть критические ошибки в логах за последние X минут;
  • Число некритичных ошибок за последние X минут превысило Y;
  • Лежит или медленно отвечает PostgreSQL , Redis , RabbitMQ , …;
  • SSL-сертификат скоро истекает;
  • 99-ый процентиль времени ответа сервиса сильно больше обычного;
  • Не ходит почта, SMS, пуши, …;
  • Нужно пополнить баланс в стороннем сервисе (AWS , Logentries , …);
  • Подозрительно большие расходы в стороннем сервисе;
  • В тестовом окружении не удалось восстановиться из бэкапа с прода;
  • Сервис стал недоступен из Зеленограда и ЮАР;
  • По внутренним хелсчекам сервиса мы уперлись в один из трэдпулов;

Как видите, практически в любом сервисе можно без труда найти два десятка инвариантов, а то и больше, которые никогда не должны нарушаться, и которые довольно легко мониторить автоматически. Если что-то сломалось, начинаем рассылать письма админам, SMS начальству, звонить на телефоны кодерам.

Установка Nagios

Кстати, благодаря знакомству с Nagios, я стал намного лучше понимать людей, выступающих за ручное шардирование и ручной фейловер. Но это, пожалуй, тема для отдельной заметки.

А чем вы мониторите вашу систему?

Преимущества и новые возможности для мониторинга систем

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

Крайне важно понимать, что Nagios - это не инструмент для замеров параметров работы системы, например, степени загруженности процессоров, а утилита, выдающая результаты мониторинга в виде состояний "работающий", "ненадежный" и "неисправный". Эта особенность Nagios помогает оператору сфокусироваться на самых главных и критических проблемах, основываясь на заранее определенных и настраиваемых критериях.

ПО Nagios реализует функциональность для подготовки отчетов о количестве времени, потерянного из-за простоев, что может быть полезным для отслеживания качества предоставления услуг согласно соглашению об уровне сервиса (service level agreement - SLA). Как будет показано в последующих статьях, Nagios также предлагает возможности для учета времени простоя и создания зависимостей от служб и систем. Эта вводная статья показывает, как легко можно создавать небольшие персонализированные решения для конкретных требований по мониторингу.

Установка

Большинство дистрибутивов Linux® поставляются с встроенной версией Nagios. В этом случае продукт легко интегрируется с Web-сервером Apache. Для активизации или обновления такой конфигурации необходимо выполнить команду:

yum install nagios

или apt-get install nagios-text . Исполняемые файлы для платформы AIX® доступны для загрузки с Web-сайта NagiosExchange (см. раздел ).

Для других платформ исходный код Nagios можно загрузить с Web-сайта Nagios.org (см. раздел ). Для создания Nagios "с чистого листа" необходимы следующие инструменты разработчика.

  • Инструменты:
    • autoconf
    • automake
  • Исполняемые файлы:
    • libgd
    • openssl
  • Пакеты (библиотек и заголовочных файлов)

Многие плагины, связанные с SNMP (Simple Network Management Protocol - простой протокол сетевого управления) также потребуют наличия Perl и пакета Net::SNMP.

После установки и настройки Nagios можно получить к нему доступ через стандартный URL http://your.host.name/nagios . На показано, какие системы и службы включены или отключены.

Настройка Nagios

По умолчанию все конфигурационные файлы Nagios находятся в каталоге /etc/nagios . Конфигурационные файлы, связанные с Apache, можно для удобства связать с конфигурационным каталогом Apache c помощью ссылок. Конфигурация разделена на несколько файлов, каждый из которых предназначен для отдельных фрагментов конфигурации.

Первые компоненты, которые необходимо настроить, - это контакты и группы контактов. Контакты - это персоны, получающие извещение, когда система или служба отключается. По умолчанию Nagios предлагает оповещение по электронной почте и пейджерам, но расширения позволяют отправлять извещения по протоколу Jabber и многими другими способами, которые могут быть удобны в различных обстоятельствах.

Контакты хранятся в файле contacts.cfg и определяются, как показано в листинге 1.

Листинг 1. Конфигурация 1: Базовая информация о контактах
define contact{ contact_name jdoe alias John Due service_notification_commands notify-by-email host_notification_commands host-notify-by-emailes email [email protected] }

Контакты можно группировать, и вместо отдельных людей, которые должны быть извещены в случае изменения статуса системы или службы, Nagios будет оповещать соответствующую группу. Иногда имеет смысл задать пользователя несколько раз, чтобы определить различные адреса или команды для отправки извещений и затем добавить все способы связаться с пользователем к группе контактов, к которой он принадлежит ().

Листинг 2. Конфигурация 2: Группировка контактов
define contactgroup{ contactgroup_name server-admins alias Server Administrators members jdoe,albundy }

Следующий шаг - это настроить системы, за которыми Nagios будет осуществлять мониторинг. Необходимо добавить каждый компьютер, на котором имеются службы, которые предстоит отслеживать или периодически проверять на активность. Конфигурационный файл для хранения система - это файл hosts.cfg . В листинге 3 приведен пример определения компьютера.

Листинг 3. Конфигурация 3: Добавление нового компьютера
define host{ host_name ubuntu_1_2 alias Ubuntu test server address 192.168.1.2 check_command check-host-alive max_check_attempts 20 notifications_enabled 1 event_handler_enabled 0 flap_detection_enabled 0 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 notification_interval 60 notification_period 24x7 notification_options d,u,r }

Последний этап конфигурации Nagios - это определение служб для сконфигурированных систем. Показанный в листинге 4 пример использует заранее определенный ping-плагин для Nagios, который отправляет эхо-запросы по протоколу ICMP (Internet Control Message Protocol), чтобы определить, отвечает компьютер или нет.

Листинг 4. Конфигурация 4: Добавление новой службы
define service{ use service-template host_name ubuntu_1_2 service_description PING check_period 24x7 contact_groups server-admins notification_options c,r check_command check_ping!300.0,20%!1000.0,60% }

После подготовки этой конфигурации необходимо перезапустить демона Nagios, а затем, подождав несколько секунд, пока Nagios инициализируется, проверить, появились ли ping-службы в Web-интерфейсе администратора.

Написание плагинов для Nagios

Наиболее интересный аспект Nagios - это то, что к нему можно легко написать собственный плагин, для чего требуется изучить несколько простых правил. Для управления плагином Nagios просто порождает дочерний процесс каждый раз, когда запрашивает состояние службы и использует выходную информацию и код возврата этой команды для определения состояния. Коды возврата с состоянием службы интерпретируются следующим образом:

  • OK - код возврата 0 - означает, что сервис работает нормально;
  • WARNING - код возврата 1 - это предупредительный сигнал о том, что у сервиса могут быть проблемы;
  • CRITICAL - код возврата 2 - критическое состояние сервиса;
  • UNKNOWN - код возврата 3 - неизвестное состояние сервиса.

Последнее состояние просто означает, что плагин не смог определить состояние службы. Это может произойти, например, в результате внутренней ошибки.

В листинге 5 приведен пример сценария на языке Python, который проверяет среднюю загрузку ОС UNIX®. В нем предполагается, что уровень выше 2.0 соответствует предупредительному состоянию, а уровень выше 5.0 -критическому состоянию. Эти значения "вшиты" в код, и также всегда используется среднее значение загрузки за последнюю минуту.

Листинг 5. Python плагин - пример работающего плагина
#!/usr/bin/env python import os,sys (d1, d2, d3) = os.getloadavg() if d1 >= 5.0: print "GETLOADAVG CRITICAL: Load average is %.2f" % (d1) sys.exit(2) elif d1 >= 2.0: print "GETLOADAVG WARNING: Load average is %.2f" % (d1) sys.exit(1) else: print "GETLOADAVG OK: Load average is %.2f" % (d1) sys.exit(0)

Подготовив небольшой исполняемый компонент, необходимо зарегистрировать этот плагин в Nagios и создать определение службы, которая будет проверять среднюю нагрузку.

Это довольно просто: сначала создается файл /etc/nagios-plugins/config/mygetloadavg.cfg с содержимым, приведенным ниже, и добавляется служба в файл services.cfg , как показано в примере ниже. Напомню, что localhost должен присутствовать в конфигурационном файле hosts.cfg .

Листинг 6. Пример плагина - регистрация в Nagios
define command{ command_name check_mygetloadavg command_line /path/to/check_getloadavg }
Листинг 7. Создание службы, использующей пример плагина
define service{ use service-template host_name localhost service_description LoadAverage check_period 24x7 contact_groups server-admins notification_options c,r check_command check_mygetloadavg }

Написание полноценного плагина

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

Другой полезный прием - это перехватывание всех исключительных ситуаций и возврат в отчет о состоянии службы значения UNKNOWN , чтобы Nagios мог соответствующим образом оповестить об этом событии. Плагины, которые допускают "выход" исключительных ситуаций за свои границы, чаще всего возвращают значение 1, которое трактуется Nagios как WARNING -состояние. Важно чтобы плагин правильно отличал состояние WARNING (предупредительное) от UNKNOWN (неизвестное). Стоит заметить, что обычно извещения об отдельных состояниях WARNING отключаются, но не стоит отключать извещения о состоянии UNKNOWN .

Написание Python-плагина

Допущения, указанные выше (параметризация во время исполнения, сообщение об использовании и улучшенная обработка исключительных ситуаций) приводят к плагину, исходный код которого в несколько раз больше, чем у предыдущего. Однако при этом добавляется безопасная обработка ошибок и способность повторно использовать плагин в различных ситуациях.

Листинг 8. Python-плагин - полноценный плагин для получения данных о средней загрузке
#!/usr/bin/env python import os import sys import getopt def usage(): print """Usage: check_getloadavg [-h|--help] [-m|--mode 1|2|3] \ [-w|--warning level] [-c|--critical level]" Mode: 1 - last minute ; 2 - last 5 minutes ; 3 - last 15 minutes" Warning level defaults to 2.0 Critical level defaults to 5.0""" sys.exit(3) try: options, args = getopt.getopt(sys.argv, "hm:w:c:", "--help --mode= --warning= --critical=",) except getopt.GetoptError: usage() sys.exit(3) argMode = "1" argWarning = 2.0 argCritical = 5.0 for name, value in options: if name in ("-h", "--help"): usage() if name in ("-m", "--mode"): if value not in ("1", "2", "3"): usage() argMode = value if name in ("-w", "--warning"): try: argWarning = 0.0 + value except Exception: print "Unable to convert to floating point value\n" usage() if name in ("-c", "--critical"): try: argCritical = 0.0 + value except Exception: print "Unable to convert to floating point value\n" usage() try: (d1, d2, d3) = os.getloadavg() except Exception: print "GETLOADAVG UNKNOWN: Error while getting load average" sys.exit(3) if argMode == "1": d = d1 elif argMode == "2": d = d2 elif argMode == "3": d = d3 if d >= argCritical: print "GETLOADAVG CRITICAL: Load average is %.2f" % (d) sys.exit(2) elif d >= argWarning: print "GETLOADAVG WARNING: Load average is %.2f" % (d) sys.exit(1) else: print "GETLOADAVG OK: Load average is %.2f" % (d) sys.exit(0)

Для использования нового плагина необходимо зарегистрировать его в файле /etc/nagios-plugins/config/mygetloadavg2.cfg , как показано в листинге 9.

Листинг 9. Python-плагин - регистрация в Nagios
define command{ command_name check_mygetloadavg2 command_line /path/to/check_getloadavg2 -m $ARG1$ -w $ARG2$ -c $ARG3$ }

Также необходимо добавить или изменить запись об этой службе в файле services.cfg , как показано в листинге 10. Стоит отметить, что восклицательный знак! разделяет параметры плагина. Как и прежде, необходимо, чтобы localhost был определен в конфигурационном файле hosts.cfg .

Листинг 10. Создание сервиса, использующего плагин Python
define service{ use service-template host_name localhost service_description LoadAverage2 check_period 24x7 contact_groups server-admins notification_options c,r check_command check_mygetloadavg2!1!3.0!6.0 }

Написание плагина Tcl

Последний пример - это плагин, написанный на Tcl и проверяющий курсы валют с сайта xmethods.net с помощью протокола SOAP (Simple Object Access Protocol) и технологии WSDL (Web Services Description Language). SOAP предоставляет плагину текущие значения курсов валют, чтобы сравнить их с конфигурированными значениями. Если значение находится внутри предупредительного диапазона, то считается, что это состояние OK . Если значение выше или ниже предупредительного уровня, но не выходит за критический предел, то считается, что это состояние WARNING . В противном случае состояние считается как CRITICAL , если не происходит сетевого сбоя, в случае которого состояние устанавливается в UNKNOWN .

Плагин распознает конфигурируемые параметры, так что можно проверять различные курсы с различными диапазонами для проверки. Также его можно использовать для проверки курсов валют различных стран (листинг 11).

Листинг 11. Tcl-плагин - проверка текущих значений курсов обмена валют
#!/usr/bin/env tclsh # parse arguments package require cmdline set options { {country1.arg "" "Country 1"} {country2.arg "" "Country 2"} {lowerwarning.arg "" "Lower warning limit"} {upperwarning.arg "" "Upper warning limit"} {lowercritical.arg "" "Lower critical limit"} {uppercritical.arg "" "Upper critical limit"} } array set opt }] # если пользователь не предоставил все аргументы, # то показать справочное сообщение for each necessary { if {$opt($necessary) == ""} { set argv "-help" catch {cmdline::getoptions argv $options {: }} usage puts stderr $usage exit 3 } } # загрузить пакет TclWebServices package require WS::Client if { 1] } error]} { # если по какой-либо причине не удалось загрузить курс, то сообщить об этом puts "EXCHANGERATE UNKNOWN: $error" exit 3 } if {($result < $opt(lowercritical)) || ($result > $opt(uppercritical))} { puts "EXCHANGERATE CRITICAL: rate is $result" exit 2 } if {($result < $opt(lowerwarning)) || ($result > $opt(upperwarning))} { puts "EXCHANGERATE WARNING: rate is $result" exit 1 } puts "EXCHANGERATE OK: rate is $result" exit 0

Теперь необходимо зарегистрировать эту команду, чтобы Nagios знал, как вызывать ее. Для того чтобы сделать это, надо создать файл /etc/nagios-plugins/config/exchangerate.cfg с содержимым, похожим на предыдущие конфигурации и следующим определением команды:

command_line /path/to/check_exchangerate -country1 $ARG1$ -country2 $ARG2$ -lowercritical \ $ARG3$ -lowerwarning $ARG4$ -upperwarning $ARG5$ -uppercritical $ARG6$

Имя команды check_exchangerate используется в примере, приведенном ниже.

Затем необходимо создать службу, которая будет использовать созданный плагин для отслеживания курсов валют. Ниже приведен пример определения службы, ассоциирующий службу с сервером localhost . Хотя проверка на самом деле не связана с каким-либо реальным компьютером, ее все равно необходимо привязать к системе. Если проверка включает вызов SOAP-методов серверов внутри контролируемой сети, то необходимо добавить реальный сервер, для которого будет выполняться мониторинг, и привязать службу к этому серверу. Код в проверяет, что курс британского фунта по отношению к японской йене находится в диапазоне от 225 до 275.

Листинг 12. Добавление Tcl-плагина в качестве новой службы
define service{ use service-template host_name localhost service_description EXCHANGERATE check_period 24x7 contact_groups other-admins notification_options c,r check_command check_exchangerate!England!Japan!200!225!275!300 }

Заключение

Nagios можно использовать для мониторинга всех типов ПО и компьютерного оборудования. Возможность создавать собственные плагины позволяет выполнять мониторинг всего, с чем может общаться сервер Nagios. Для этого можно использовать любой язык программирования, который принимает аргументы с командной строки и поддерживает коды возврата, так что возможности оказываются почти безграничными!

Опытный системный администратор может расширить SOAP-пример с помощью Tcl или любого другого языка для взаимодействия с Web-службами в Интранет-сети и написания плагинов для проверки правильности функционирования этих служб.

Также можно использовать С-плагины или возможности С-программирования, встроенные в используемый динамический язык (Pyinline в Python, Inline в Perl или Critcl в Tcl) для комбинирования сочетания системных API ОС на языке С с плагином, написанном на языке высокого уровня.

Другая возможность Nagios, на которую стоит обратить внимание, - это пассивная проверка. Процесс мониторинга с помощью Nagios, рассматриваемый в этой статье, основывается на исполняемых компонентах для определения статуса с коротким жизненным циклом, запуске этих компонентов и получении результатов от них. При пассивной проверке Nagios не запускает плагины для проверки статуса, а отдельные приложения посылают сообщения об изменении статуса периодически или когда состояние службы изменяется. Подобное приложение может получать оповещения из различных источников, накапливать их и передавать подготовленную сводную информацию в Nagios. Nagios также может предположить, что сервис отключился, если он не присылает оповещений в течение определенного периода времени. Реализация пассивной проверки с помощью Nagios будет описана в следующей статье.

Преимущество плагинов для Nagios - это простота, с которой их можно создавать и обмениваться ими. Плагины Nagios полезны в ситуациях, с которыми имеют дело сетевые и системные администраторы, и в большинстве случаев это повторное использование результатов работы, которую уже кто-то сделал раньше. Подобно популярным ресурсам Wiki и Web, не требуется много усилий, чтобы внести вклад в виде полезного примера, в то время как совокупные возможности всех доступных плагинов очень велики.

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама