Добавляем хосты и настраиваем агент мониторинга Icinga2

Добавляем хосты и настраиваем агент мониторинга Icinga2

Icinga2 – это гибкая и производительная система мониторинга с открытым исходным кодом, которая позволяет отслеживать состояние сетевых сервисов и хостов.

Мониторинг и проверка работы сервисов может осуществляться двумя способами: проверка внешних сервисов хоста (icmp, http и пр.), либо с использованием программного агента, запущенного на удаленном хосте, для сбора более подробной информации о системе.

Способ 1.

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

Icinga2 всегда по умолчанию использует FQDN сервера. Если у хоста нет домена, используйте FQDN типа myserver.local . Если у вас есть «полноценный» FQDN, укажите IP-адрес сервера в поле address в настройках Icinga2.

Редактируем конфигурационный файл /etc/icinga2/conf.d/hosts.conf на master-сервере.

Этот файл содержит блок настроек host и комментарии к нему. Данный блок object Host NodeName определяет хост icinga-master (хост, на котором установлены Icinga2 и Icinga2 Web).

В конец файла добавим строки:

Данный блок определяет новый хост bogachev.biz , импортирует стандартные конфигурации из шаблона generic-host , указывает Icinga2 IP-адрес сервера и устанавливает переменные, которые проверяют ответ от http и, в случае сбоя, отправляет уведомления группе icingaadmins .

После внесения изменений перезагружаем сервис Icinga2:

После этого в Icinga2 можем наблюдать появление нового сервиса

Способ 2.

Icinga2 предоставляет механизм для безопасного соединения между master сервером и клиентской нодой, который позволяет выполнять более расширенные проверки удаленных серверов. Кроме проверки работы веб-сервера можно также отслеживать нагрузку CPU, количество процессов, работу базы данных, дисковое пространство и прочие сервисы.

Установим Icinga2 на удалённую машину и запустим мастер настройки, чтобы установить соединение, затем выполним настройку на главной ноде Icinga2 для мониторинга сервисов.

Icinga2 предоставляет несколько уровней серверов (master/satellite/client), отказоустойчивость при высокой доступности и несколько способов совместного использования конфигурации нод.В данной статье будет рассмотрен вариант, как создать простую двухуровневую структуру с одной главной нодой и несколькими клиентскими нодами. Настройка выполняется на главной ноде. Команды проверки состояния будут запланированы на главной ноде и перенесены на клиенты. Проект Icinga2 называет этот режим Top Down Command Endpoint.

Настройка главного сервера (master)

Сперва настроим главную ноду для поддержки соединений с клиентами.Запустим мастер установки:

Мастер установки выполнит базовую настройку и в ходе установки попросит ввести некоторые параметры:

И перезапустим сервис:

Настройка клиентского сервера (client)

Установим Icinga2 на клиентский сервер, добавим в автозагрузку и запустим.

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

Мастер установки извлечет сертификат с главного сервера и выведет подробности. Ознакомьтесь с этой информацией и подтвердите ее:

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

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

Проверить соединение между серверами можно командой lsof или netstat :

Мониторинг агента

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

В настройке Icinga2 важно понятие зоны. Все клиентские устройства должны создать свою собственную зону и отправлять отчеты в родительскую зону (в данном случае это master-сервер). По умолчанию название зоны главной ноды совпадает с ее FQDN. Создадим каталог в директории zone.d (имя директории должно совпадать с именем зоны главной ноды). Здесь будет храниться информация для всех клиентов родительской зоны.

Создадим конфигурационный файл /etc/icinga2/zones.d/Icinga2-master/services.conf . В нем будут храниться настройки проверок, которые будут выполняться на клиентских нодах со следующим содержимым:

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

Очень важны последние две строки каждого блока. Строка command_endpoint указывает, что конечная точка команды находится на удалённой машине. Строка assign where автоматически присваивает проверку сервиса любому хосту, на котором определена переменная client_endpoint .

Создаем новый файл в каталоге zones.d/Icinga2-master/bogachev.biz.conf со следующим содержимым (в данном примере имя файла совпадает с именем удалённого хоста):

Данный файл определяет зону удаленного хоста и связывает ее с родительской зоной. Он также определяет хост как конечную точку, а затем определяет сам хост, импортируя стандартные правила из шаблона generic-host . Затем файл устанавливает переменные для создания проверки и включает отправку уведомлений по электронной почте. Обратите внимание: поскольку на этом хосте определена переменная vars.client_endpoint = name , на нем также будут выполняться проверки сервисов, которые были определены в services.conf .

Перезапускаем сервис Icinga2:

После этого заходим в веб-интерфейс IcingaWeb2 и проверяем статус сервисов для клиентских нод.

📎📎📎📎📎📎📎📎📎📎