Icinga настройка на windows

Обновлено: 08.07.2024

На этой странице представлены примеры установки Icinga2 в качестве агента мониторинга на разные операционные системы.

Актуальные ссылки на репозитории для разных дистрибутивов Linux/Unix можно найти в документе Getting Started

Debian GNU/Linux

На сервере с Debian GNU/Linux 8.7 (Jessie) последовательность действий по установке клиента будет такой:

Настройка iptables для принятия входящих подключений.

На сервере с Debian GNU/Linux 9.5 (stretch) последовательность действий по установке клиента будет такой:

Службу icinga2 отдельно не включаем, так как она включена и запущена по умолчанию сразу после установки.

Настройка iptables для принятия входящих подключений.

Ubuntu Server GNU/Linux

На сервере с Ubuntu Server GNU/Linux 16.04 LTS (Xenial Xerus) последовательность действий по установке клиента будет такой:

На сервере с Ubuntu Server GNU/Linux 14.04 LTS (Trusty Tahr) последовательность действий по установке клиента будет такой:

Настройка iptables для принятия входящих подключений.

CentOS Linux

На сервере с CentOS 7 последовательность действий по установке клиента будет такой:

Настройка firewalld для принятия входящих подключений.

На сервере с CentOS 6 последовательность действий по установке клиента будет такой:

Сначала подключим репозитории которые потребуются:

При попытке установки пакета icinga и плагинов можно получить ряд ошибок неудовлетворённых зависимостей по причине нехватки некоторых пакетов. В таком случае можно дополнительно подключить стандартные репозитории CentOS 6 (если они по какой-то причине не подключены в системе), как это описано в заметке Как подключить стандартные репозитории CentOS 6

Устанавливаем и настраиваем автозапуск службы:


Автор первичной редакции:
Алексей Максимов
Время публикации: 26.02.2017 18:41

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

Способ 1.

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).

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

После внесения изменений перезагружаем сервис 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 .

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

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

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

Icinga 2 представляет собой бесплатную систему мониторинга. Для ОС Windows возможно только установка клиентской части Icinga, поэтому в системе должен быть предварительно развернут сервер Icinga.

Также необходимо скачать саму Icinga2 для Windows. Это можно сделать например с сайта разработчика. По ссылке выберите необходимую Вам версию Icinga и разрядность Вашей ОС.

После скачивания запускаем установку icinga2. на странице приветствия нажимаем “Next”.

Icinga2

Соглашаемся с лицензионным соглашением.

Icinga2

Укажем директорию для установки Icinga2.

Icinga2

На последнем шаге нажмем Install чтобы запустить установку.

Icinga2

После завершения установки Icinga2 перейдем к ее настройке, для чего поставим соответствующую галочку.

Icinga2

Запустится мастер настройки Icinga2. на первой странице нас просят задать полное доменное имя сервера в поле “Instance Name”.

Icinga2

Также необходимо указать вышестоящие и подчиненные сущности Icinga2 путем нажатия кнопки “Add” в разделе “Parent master/ satellite instance(s) for this client”. укажем например сервер Icinga2.

Icinga2

После этого мы видим что этот узел добавился в настройки.

Icinga2

Дальше можно настроить зоны, а также задать дополнительные настройки.

В разделе “TCP Listener” укажем будет ли данный хост принимать соединения от других сущностей Icinga2 укажем на каком порту он будет это делать.

В “Advanced Options” можно указать:

  • accept commands from master/satellite instance(s) - принимать ли команды от других сущностей icinga2 указанных в описываемом ранее разделе
  • accept config updates from master/satellite instance(s) - принимать ли обновления конфигурации от других сущностей icinga2 указанных в описываемом ранее разделе
  • От какого пользователя будет запускаться служба (Run Icinga2 sevice as user). В этом случае необходимо будет выбрать пользователя.
  • Установить ли NSClient
  • Считывать ли дополнительные параметры из файла conf.d

После нажатия кнопки Next пойдет проверка соединения с указанными нами сущностями Icinga2 для получения сертификатов.

Icinga2

Icinga2

После нажатия “Next” произведется установка и запуск службы Icinga2.

Icinga2

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


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

Установка модуля рассматривается в статье: Icinga2 установка модуля Director

В статье рассматривается пример добавления сетевого устройства Mikrotik с добавлением плагина проверки check_mikrotik_switch.pl и службы проверки нагрузки процессора маршрутизатора.

Вся работа производится в веб-интерфейсе Icinga.

Содержание:

Создание группы узлов.

Прежде чем добавить узел создадим группу узлов.

"Icinga Director — Узлы — Hostgroup"

Введем Hostgroup: "Network_host_group"

Введем отображаемое имя (Display name): "Сетевое оборудование"

Создание шаблона узлов.

Шаблон позволяет определить какая служба для каких хостов будет использоваться по умолчанию для определения "Host State".

"Icinga Director — Узлы — Host Templates"

Введем название шаблона (Hostname): "Network_host_Template"

Введем группу (Group): "Укажем созданную выше группу узлов"

Так как мне необходимо, что бы "Host State" определялся то в пункте "Check Command" я выбираю команду "ping4"

Добавляем узел (host).

"Icinga Director — Узлы — Host"

В Host Template выбираем созданный выше шаблон: "Network_host_Template"

В Hostname введем название: "mikrotik_core"

В Display Name укажем желаемое отображаемое имя: "Mikrotik RB2011"

В Host address укажем желаемый IP-адерс или DNS-имя.

В Groups выберем созданную выше группу.

По окончанию выберем Icinga Director — Activity Log и нажмем кнопку Deploy

После выполнения всех пунктов у вас должна появиться новая группа хостов с добавленным хостом. Далее опишем плагин "check_mikrotik_switch.pl" и создадим службу проверки нагрузки на CPU маршрутизатора и применим его к созданному хосту.

Создаем шаблон команды.

Создадим общий шаблон для использования любой командой

"Icinga Director — Commands — Command Templates"

В пункте Command Type выберем: "Plugin check command"

В Command name введм имя: "default_command_template"

В Timeout укажем время таймаута плагина в 1 миунту: "1m"

Создание одиночной команды.

"Icinga Director — Commands — Commands"

В поле Command Type выберем: "Plugin check command"

В Command name введем имя: "check_mikrotik_router"

В поле Imports выберем созданный выше шаблон команд: "default_command_template"

По умолчанию система работает с папкой PluginDir прописанная в конфигурации Icinga2 - в моем случае это /usr/lib/nagios/plugins/

В поле Command укажем путь к плагину - укажем просто название плагина: "check_mikrotik_switch.pl"

Поле Timeout будет уже заполнено согласно созданному шаблону команд.

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

В случае с плагином check_mikrotik_switch.pl необходимо определить следующие аргументы:

"-H" = "$host.address$"
"-t" = "$mikrotik_check_command$"
"-i" = "$mikrotik_switch_ports$"
"-C" = "$mikrotik_community$"
"-w" = "$check_warning$"
"-c" = "$check_critical$"

В поле Argument name вводим аргумент: "-H"

В поле Value type выберем: "String"

В поле Value введем: "$host.address$"

В Поле Position выберем позицию: "1"

После чего наем "Добавить".

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

Необходимо определить обязательные и необязательные аргументы - для этого:

В поле "Field" выберем созданный аргумент

В поле "Mandatory" выберем "Mandatory" для обязательных полей и "Optional" для необязательных

В моем случае все поля кроме $mikrotik_switch_ports$ являются обязательными

Переходим к описанию службы

Создания шаблона службы

"Icinga Director — Service — Service Templates"

Укажем название шаблона: "check_mikrotik_router_service_template"

Выбрем созданную команду в Check Command: "check_mikrotik_router"

Переходим в пункт "Custom properties"

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

Поле check_warning: укажем высокое значение для проверки

Поле mikrotik_community: Укажем имя SNMP-community маршрутизатора

Переходим в пункт "Check execution"

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

Создаем сервис проверки для узла или группы узлов

"Icinga Director — Service — Single Service"

Укажем название: "check_mikrotik_router_cpu"

В поле Imports выберем созданный ранее шаблон службы: "check_mikrotik_router_service_template"

В поле Узел укажем имя добавленного узла или группы узлов

Переходим в пункт "Custom properties"

В поле mikrotik_check_command укажем команду для плагина: "CPU"

По окончанию выберем " Icinga Director — Activity Log " и нажмем кнопку "Deploy"

Читайте также: