Настройка пассивного режима в 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