Как отслеживать оповещения Nagios с помощью Alerta в Ubuntu 16.04

Вступление

Alerta - это веб-приложение, используемое для консолидации и устранения дубликатов оповещений от нескольких систем мониторинга и их визуализации на одном экране. Alerta может интегрироваться со многими известными инструментами мониторинга, такими как Nagios, Zabbix, Sensu, InfluxData Kapacitor и многими другими.

В этом руководстве вы настроите Alerta и настроите его для отображения уведомлений от http://nagios.org [Nagios], популярной системы мониторинга с открытым исходным кодом.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

Шаг 1 - Установка шлюза Nagios-Alerta

Вы можете расширить функциональность Nagios с помощью модулей Nagios Event Broker (NEB). NEB - это механизм интеграции событий Nagios, а модули NEB - это общие библиотеки, которые позволяют интегрировать другие службы с Nagios. На этом этапе мы установим Nagios to Alerta Gateway, модуль NEB, который будет отправлять уведомления в Alerta.

Войдите на сервер Nagios как пользователь без полномочий root:

ssh sammy@

Шлюз Nagios to Alerta Gateway не имеет предварительно сконфигурированных системных пакетов, поэтому вам придется собирать его из исходного кода. Для этого вам необходимо установить некоторые инструменты и файлы для разработки. Вам также понадобится установить Git, чтобы вы могли получить исходный код из GitHub.

sudo apt-get install -y git curl gcc make libcurl4-openssl-dev

С установленными предварительными условиями используйте Git для клонирования исходного кода из репозитория GitHub проекта:

git clone https://github.com/alerta/nagios-alerta.git

Затем перейдите в новый каталог + nagios-alertsta +:

cd nagios-alerta

Затем скомпилируйте модуль + nagios-alertsta +, используя + make +:

make nagios4

Вы увидите следующий вывод:

Outputcd ./src && make nagios4
make[1]: Entering directory '/home/sammy/nagios-alerta/src'
gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../include -I../include/nagios4 -lcurl -o alerta-neb.o alerta-neb.c -shared  -lcurl
make[1]: Leaving directory '/home/sammy/nagios-alerta/src'

Если вы видите что-то другое, убедитесь, что у вас установлены все необходимые компоненты.

Теперь запустите задачу установки:

sudo make install

Вы увидите этот вывод, указывающий, что модуль был установлен в + / usr / lib / nagios +:

Outputcd ./src && make install
make[1]: Entering directory '/home/sammy/nagios-alerta/src'
[ -d /usr/lib/nagios ] || mkdir /usr/lib/nagios
install -m 0644 alerta-neb.o /usr/lib/nagios
make[1]: Leaving directory '/home/sammy/nagios-alerta/src'

Установив модуль, мы можем настроить Nagios для использования этого нового модуля.

Шаг 2. Настройте шлюз Nagios-Alerta

Давайте настроим Nagios для отправки уведомлений в Alerta.

Сначала включите недавно установленный модуль брокера Alerta в главном файле конфигурации Nagios. Откройте файл конфигурации Nagios в вашем редакторе:

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

Найдите раздел, содержащий директивы + broker_module +:

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

...
# EVENT BROKER MODULE(S)
# This directive is used to specify an event broker module that should
# by loaded by Nagios at startup.  Use multiple directives if you want
# to load more than one module.  Arguments that should be passed to
# the module at startup are separated from the module path by a space.
#
[...]
#broker_module=/somewhere/module1.o
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
...

Для настройки модуля Alerta необходимо указать два обязательных аргумента:

Добавьте эту строку в файл для настройки интеграции Alerta:

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

...
broker_module=/usr/lib/nagios/alerta-neb.o http:// key=
...

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

  • * env *: указывает имя среды. Имя среды по умолчанию - + Production.

  • * hard_only *: перенаправляет результаты только в сложное состояние. Вы можете найти дополнительную информацию о типах состояний Nagios in в документации Nagios. Установите это значение в «+ 1 +», чтобы включить этот режим.

  • * debug *: - включить режим отладки для модуля. Установите это значение в «+ 1 +», чтобы включить этот режим.

Чтобы указать все эти параметры, используйте эту строку вместо:

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

...
broker_module=/usr/lib/nagios/alerta-neb.o http:// key= env= hard_only= debug=
...

Сохраните файл и выйдите из редактора.

Чтобы идентифицировать оповещения по имени среды и службы, вам необходимо настроить имена среды и службы с помощью Nagios https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/customobjectvars.html [ Пользовательские переменные объекта. Для этого используйте переменные + _Environment + и + _Service + в вашей конфигурации. Давайте настроим это сейчас.

Откройте файл конфигурации объекта хоста Nagios по умолчанию, который вы найдете в каталоге + / usr / local / nagios / etc / objects / +:

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

Мы отметим все оповещения на этом хосте как оповещения * Production *, а также вызовем службу по умолчанию * Nagios *. Найдите следующее определение хоста:

/usr/local/nagios/etc/objects/localhost.cfg

...
define host{
       use                     linux-server            ; Name of host template to use
                                                       ; This host definition will inherit all variables that are defined
                                                       ; in (or inherited by) the linux-server host template definition.
       host_name               localhost
       alias                   localhost
       address                 127.0.0.1
       }

...

Добавьте значения + _Environment + и + _Service + в конфигурацию:

/usr/local/nagios/etc/objects/localhost.cfg

...
       host_name               localhost
       alias                   localhost
       address                 127.0.0.1


       }
...

Теперь пометьте все события, связанные с нехваткой места в системном разделе, как оповещения * System *. Найдите этот раздел файла, который определяет, как проверить наличие свободного места:

/usr/local/nagios/etc/objects/localhost.cfg

...
define service{
       use                             local-service         ; Name of service template to use
       host_name                       localhost
       service_description             Root Partition
       check_command                   check_local_disk!20%!10%!/
       }
...

Измените его, чтобы связать со службой + System +:

/usr/local/nagios/etc/objects/localhost.cfg

...
define service{
       use                             local-service         ; Name of service template to use
       host_name                       localhost
       service_description             Root Partition
       check_command                   check_local_disk!20%!10%!/

       }
...

Сохраните файл и выйдите из редактора. Перезапустите Nagios, чтобы применить эти новые настройки:

sudo systemctl restart nagios.service

Проверьте файл журнала Nagios, чтобы убедиться, что служба работает правильно:

tail /usr/local/nagios/var/nagios.log

Вы увидите следующий вывод:

Output...
[1505804481] [alerta] Initialising Nagios-Alerta Gateway module, v3.5.0
[1505804481] [alerta] debug is on
[1505804481] [alerta] states=Hard (only)
[1505804481] [alerta] Forward service checks, host checks and downtime to http://your_alerta_server_ip/api
[1505804481] .
[1505804481] Successfully launched command file worker with pid 25416

Теперь Nagios отправит уведомление, как только какая-либо система или служба отключится. Давайте сгенерируем тестовое событие.

Шаг 3. Создание тестового оповещения для проверки интеграции Nagios-Alerta

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

Сначала определите, сколько свободного места у вас на сервере Nagios. Вы можете использовать команду + df +, чтобы узнать:

df -h

Вы увидите вывод, подобный следующему:

Output    Filesystem      Size  Used Avail Use% Mounted on
   /dev/vda1        20G  3.1G      17% /

Посмотрите на количество свободного места. В этом случае свободное место равно + 16GB +. Ваше свободное место может отличаться.

Используйте команду + fallocate +, чтобы создать файл, занимающий более 80% доступного дискового пространства, которого должно быть достаточно для запуска предупреждения:

fallocate -l 14G /tmp/temp.img

В течение нескольких минут Nagios выдаст предупреждение об объеме свободного места на диске и отправит уведомление Alerta. Вы увидите это новое уведомление на панели инструментов Alerta:

изображение: https: //assets.digitalocean.com/articles/alerta_nagios_cent7/xPCO3K0.png [Alerta, отображающее предупреждение о свободном пространстве от Nagios]

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

rm -f /tmp/temp.img

Через минуту Nagios отправит сообщение о восстановлении. После этого оповещение исчезнет с главной панели инструментов Alerta, но вы можете просмотреть все закрытые события, выбрав * Закрыто *.

изображение: https: //assets.digitalocean.com/articles/alerta_nagios_cent7/NrCfEUV.png [закрытые оповещения Alerta]

Вы можете нажать на строку события, чтобы просмотреть более подробную информацию.

Заключение

В этом руководстве вы настроили Nagios для отправки уведомлений на другой сервер, на котором работает Alerta.

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

Related