Настройка пассивного режима в Icinga2

Предисловие.

Имеется работающая Icinga, настроенная «по простому», т.е. все проверки выполняются на машине, на которой она и установлена. Пока мы проверяем работу http-сервера, или пингаем маршрутизатор, всё хорошо. Однако, если надо что-то проверить на удалённой машине не связанное с сетевыми сервисами, всё становится значительно хуже. Такие проверки можно выполнить тремя способами:

Настроить беспарольный (по ключу) доступ на удалённую машину по SSH. Есть смутные подозрения, что это неправильно.

Поставить на удалённые машины Icinga, настроить её работу в режиме агента. Это хорошее решение, которое будет рассмотрено в этой статье, т.к. вместе с Icinga можно поставить и богатый набор плагинов для проверки всего на свете. Однако, этот вариант не всегда возможен или желателен – команда df есть на всех *nix'ах, curl/wget тоже, и ставить icinga ради мониторинга свободного пространства на файлухах – это overkill.

Воспользоваться Icinga REST API. Это вариант тоже будет рассмотрен. Хорош именно тем, что позволяет отдавать результаты на головную машину с Icinga без установки Icinga на удалённых машинах.

Головная машина aka Master

На головной машине говорим icinga2 node wizard.

ici-master # icinga2 node wizard Welcome to the Icinga 2 Setup Wizard! We will guide you through all required configuration details. Please specify if this is an agent/satellite setup ('n' installs a master setup) [Y/n]: n Starting the Master setup routine... Please specify the common name (CN) [ici-master.catalysis.ru]: Reconfiguring Icinga... Checking for existing certificates for common name 'ici-master.catalysis.ru'... Certificate '/var/lib/icinga2/certs//ici-master.catalysis.ru.crt' for CN 'ici-master.catalysis.ru' already existing. Skipping certificate generation. Generating master configuration for Icinga 2. 'api' feature already enabled. Master zone name [master]: Default global zones: global-templates director-global Do you want to specify additional global zones? [y/N]: Please specify the API bind host/port (optional): Bind Host []: Bind Port []: Do you want to disable the inclusion of the conf.d directory [Y/n]: n Done. Now restart your Icinga 2 daemon to finish the installation!

Тут надо сделать несколько оговорок:

У меня было несколько неудачных запусков этой команды, которые ломались на правах доступа. Хоть команда и запускается от рута, но она делает setuid(2) на пользователя icinga. Результатом этих запусков является, например, строка «Certificate … already existing. Skipping certificate generation.»

Из общих соображений понятно, что смешивать активные проверки (когда icinga на головной машине делает проверки) и пассивные проверки (когда она получает результаты проверок от машин-агентов) не очень хорошо. Однако, у меня уже было настроено много проверок, которые не хотелось терять. Поэтому на вопрос о блокировке инклуда директории conf.d было сказано n

Настройка Icinga, как агента

Ставим Icinga, после установки от рута говорим icinga2 node wizard

Tracedump:

newBaseSize: 16pt
newBaseSizeInPt: 16