Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 1. Установка Icinga 2

С этой заметки мы начнём серию о развёртывании и базовой настройке системы мониторинга Icinga 2 на базе сервера Debian 8.6. Icinga - это свободно распространяемая (GNU General Public License Version 2) система мониторинга с открытым исходным кодом, изначально появившаяся как форк Nagios. В версии Icinga 2 была выполнена полная переработка ядра системы мониторинга. Отличительными чертами этой системы мониторинга являются:

  • наличие реализации API (REST) для управления системой, получением информации о состоянии устройств и сервисов или отправки информации в саму систему;
  • гибкая модель построения конфигураций мониторинга, удовлетворяющих практически любые потребности;
  • гибкая архитектурная реализация, позволяющая создавать от самых простых до сложных территориально-распределенных систем мониторинга;
  • работа в полном безагентном режиме или с различными клиентскими решениями с защитой канала передача данных между клиентом и сервером;
  • возможность взаимодействия со специализированным дополнительным ПО (визуализация метрических данных, системы обработки заявок и т.д.)

Вся основная документация по этой системе доступна по ссылке Icinga 2 Documentation. В процессе развёртывания мы будем опираться на документ Getting Started.

Установка Icinga 2

Добавляем репозиторий проекта Debian Monitoring Project (debmon) и обновляем кэш локального менеджера пакетов, как описано в инструкции:

# wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add -
# echo 'deb http://debmon.org/debmon debmon-jessie main' > /etc/apt/sources.list.d/debmon.list
# echo 'deb http://httpredir.debian.org/debian jessie-backports main' >> /etc/apt/sources.list.d/debmon.list
# apt-get update

Обновление от 27.05.2018:
Вместо репозитория Debmon теперь необходимо подключать репозиторий Icinga Package Repository.
Подробности в заметке: Репозиторий Debmon более недоступен, переключаемся на Icinga Package Repository

Устанавливаем основной пакет Icinga 2:

# apt-get install icinga2

Проверяем состояние службы icinga2. После установки служба должна быть запущена и настроена на автоматический запуск во время загрузки системы:

# systemctl status icinga2

Icinga это расширяемая модульная система. По умолчанию в процессе установки Icinga 2 активизируется три расширения (features):

  • checker – выполняет запуск проверок;
  • notification – выполняет отсылку уведомлений (по умолчанию только электронная почта);
  • mainlog – пишет лог работы сервера Icinga в файл icinga2.log;

Посмотреть список доступных и активированных расширений можно командой:

# icinga2 feature list

Сервер устанавливает свои компоненты в следующие папки (полный список можно получить в документации):

  • /etc/icinga2  -  Конфигурационные файлы сервера;
  • /etc/init.d/icinga2  -  Скрипт запуска сервера;
  • /usr/share/icinga2/include  -  Библиотека шаблонов Icinga и конфигурационные файлы плагинов.
  • /var/log/icinga2  - Лог файлы
Установка плагинов

Сам по себе сервер Icinga проверок не делает, для этого используются дополнительно устанавливаемое ПО или скрипты. Для задач базового мониторинга удаленных хостов используется специализированные плагины Monitoring Plugins расширяющие функциональность Icinga. В процессе установки сервера Icinga, ставится пакет monitoring-plugins-basic (/usr/lib/nagios/plugins). В данный пакет входит ограниченное количество скриптов и утилит для мониторинга локальных ресурсов (использование своп-файла, объём занятого места на дисках, количество процессов и их загрузка системы) и некоторых сервисов, таких как HTTP и SSH. Для первичного запуска Icinga такого базового набора достаточно, но для промышленной эксплуатации плагины лучше обновить. Есть два пути:

  • Установить пакет nagios-plugins из подключенных репозиториев.
  • Собрать пакет monitoring-plugins самостоятельно из исходников, предлагаемых проектом The Monitoring Plugins Project

Дополнительно плагины к Icinga для различных сценариев мониторинга можно найти на сайте Icinga Exchange.

Сборку из исходников мы оставим на какой-нибудь другой раз, а сейчас воспользуемся простой установкой из репозиториев, как это рекомендовано в документации:

# apt-get install nagios-plugins
Подсветка синтаксиса

Конфигурационные файлы Icinga имеют особенный формат, работать с которым будет удобней если в текстовом редакторе настроена подсветка синтаксиса. Я пользуюсь редактором nano, поэтому буду рассматривать именно его настройку.

Файл, содержащий настройки синтаксиса icinga2.nanorc устанавливается в Debian в процессе установки сервера Icinga. Поэтому всё, что нам остаётся сделать – включить ссылку на этот файл в файл настроек профиля пользователя в домашнем каталоге (~/.nanorc). Если файл ещё не был создан ранее, то его можно скопировать из шаблонного файла:

# cp /etc/nanorc ~/.nanorc

Затем добавить ссылку в файл ~/.nanorc:

# echo include "/usr/share/nano/icinga2.nanorc" >> ~/.nanorc

Проверим результат, открыв один из конфигурационных файлов Icinga:

# nano /etc/icinga2/conf.d/templates.conf

Установка и настройка DB IDO

Теперь нам необходимо установить и настроить DB IDO (Database Icinga Data Output) – модуль, который отвечает за экспорт конфигурации Icinga и статусной информации в базу данных. База данных IDO используется такими расширениями, как Icinga Web и Icinga Reporting, которые мы будем рассматривать в дальнейшем. В качестве СУБД для БД IDO может использоваться MySQL или PostgreSQL. В моём случае будет использоваться MySQL, и поэтому выполняется предварительная установка соответствующих пакетов:

# apt-get install mysql-server mysql-client

В процессе установки мы получим запрос на установку пароля для root-пользователя сервера MySQL. Не путайте этого пользователя с root-пользователем Linux и, соответственно назначайте пароль отличный от системного root-a.

Сразу после завершения процесса установки нам необходимо задействовать минимально безопасный режим работы сервера MySQL. Для этого запустим специальный инструмент, входящий в состав поставки MySQL:

# mysql_secure_installation

Запущенный скрипт задаст нам ряд вопросов, на которые нужно будет правильно (утвердительно) ответить для повышения безопасности сервера MySQL. Подробнее пример работы с этим скриптом и некоторые другие моменты первоначальной настройки MySQL рассматривались ранее.

Устанавливаем DB IDO модуль

# apt-get install icinga2-ido-mysql

На вопросы появляющиеся в процессе установки модуля отвечаем отрицательно, так как необходимую конфигурацию БД мы выполним самостоятельно.

***

Подключимся к серверу MySQL и создадим пустую базу данных (например icingadb), пользователя (например icingadb-usr) с предоставлением пользователю необходимых прав доступа к созданной БД:

# mysql -u root -p

mysql> CREATE DATABASE icingadb;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icingadb.* TO 'icingadb-usr'@'localhost' IDENTIFIED BY 'MyIcingaU$rPassW0rd';
mysql> quit

После того как создана БД импортируем в неё схему Icinga 2 из IDO модуля:

# mysql -u root -p icingadb < /usr/share/icinga2-ido-mysql/schema/mysql.sql

***

Прежде чем активировать расширение ido-mysql нам потребуется изменить конфигурационный файл /etc/icinga2/features-available/ido-mysql.conf, вписав в него информацию для доступа к только что созданной базе данных MySQL:

library "db_ido_mysql"

object IdoMysqlConnection "ido-mysql" {
  user = "icingadb-usr",
  password = "MyIcingaU$rPassW0rd",
  host = "localhost",
  database = "icingadb"
}

После этого активируем расширение командой (будет создана символическая ссылка на файл /etc/icinga2/features-available/ido-mysql.conf в каталоге /etc/icinga2/features-enabled/):

# icinga2 feature enable ido-mysql

Enabling feature ido-mysql. Make sure to restart Icinga 2 for these changes to take effect.

Перезапустим службу icinga2:

# service icinga2 restart

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

# /etc/init.d/icinga2 checkconfig

[ ok ] checking Icinga2 configuration.

***

На этом пока всё. В следующей части мы рассмотрим процесс оснащения нашего сервера Icinga 2 современным модульным веб-интерфейсом Icinga Web 2.

Всего комментариев: 18 Комментировать

  1. Ярослав /

    Здравствуйте!Хорошее начало.
    А можете сказать почему пал выбор на эту систему мониторинга, а не на zabbix ?

    1. Алексей Максимов / Автор записи

      Предметно сравнивать эти 2 системы я не могу, так как с Zabbiх дела не имел, да и с Icinga только в самом начале пути нахожусь. А из информации, полученной из разных источников, для себя пришёл к предварительному выводу, что Icinga - это более гибкая и более масштабируемая система. Холивары на эту тему приветствуются, а я пока за поп-корном сгоняю :)

  2. odarchuk /

    переодически, так же смотрю чем заменить ME OpManager :)
    Ждем часть2 :)

  3. dyasny /

    меня больше интересует почему на дебиане

    1. Алексей Максимов / Автор записи

      Такими темпами, чувствую, скоро появятся комментарии типа "как ты вообще осмелился что-либо написать !?" :)
      Чем Debian-то не угодил ??
      Или тут назревает намёк на холивар типа "CentOS vs Debian" ?

      1. dyasny /

        я вообще не понимаю зачем использовать дистры без поддержки на реальных серверах. Дома - понимаю, для "поиграться" - понимаю, но мониторинг это серьезная тема.

        1. Алексей Максимов / Автор записи

          Ну я даже не знаю, что тут сказать. Вот такой вот я "лось картонный". Использую всякую фигню несерьёзную типа Debian-а :)

          1. dyasny /

            хех, разговор не о тебе конкретно, а о том зачем оно надо как таковое? я могу понять тех кто использует центос - там всегда можно легко мигрировать на RHEL, я даже могу понять тех бедняг которые выбрали suse или ubuntu - там много обещают красивых слов, но дебиан, слака, генту, и прочие любительские дистры? не понимаю...

  4. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 2. Установка Icinga Web 2 | Блог IT-KB /

  5. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 3. Установка Icinga Director 1.2.0 | Блог IT-KB /

  6. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 4. Инициализация Master-сервера и подключение Linux-клиентов Icinga (классический вариант) | Блог IT-KB /

  7. Обратная ссылка: Обновляем Icinga 2, Icinga Web 2 и Icinga Director до актуальных версий | Блог IT-KB /

  8. uryku /

    Debian - самый удобный и адекватный дистр из всех что я видел. Поддержку вендора (тот еще гемор за бешеные бабки у любого вендора, если что) заменяет то что ВСЁ РАБОТАЕТ СРАЗУ КАК НАДО, НОРМАЛЬНО ОБНОВЛЯЕТСЯ И ВСЁ ЕСТЬ!

  9. uryku /

    а то понаставят умники ценосей по дефолту и поддеоживай потом.

  10. uryku /

    спасибо за статью!

  11. prostofirma /

    Хорошее начало. По одному мануалу пробывал не получилось. Посмотрим как по Вашему пойдёт, пока очень подробно и понятно. Спасибо за труд!

  12. Сергей /

    Здравствуйте Алексей.
    Если это не трудно пожалуйста добавьте в первую часть вот эти репозитории http://packages.icinga.com/debian/
    Здесь более новые версии.
    Когда я их добавил тогда у меня заработал и Graphite да этого что ни делал не хотел работать ни как.
    А за подробные инструкции большое спасибо.

  13. Обратная ссылка: Репозиторий Debmon более недоступен, переключаемся на Icinga Package Repository — Блог IT-KB /

Добавить комментарий