Установка Icinga и Icinga Web в Ubuntu 16.04

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

Данное руководство поможет установить ядро Icinga, базу данных на бэкэнде и интерфейс Icinga Web.

Требования

  • Сервер Ubuntu 16.04.
  • Стек LAMP (инструкции по установке можно получить здесь).
  • SSL-шифрование на Apache (Icinga Web запрашивает учётные данные и другую конфиденциальную информацию во время установки). Больше об этом можно узнать в руководстве Создание сертификата Let’s Encrypt для Apache в Ubuntu 16.04.

1: Установка Icinga

Чтобы установить Icinga, добавьте репозиторий, поддерживаемый командой разработчиков Icinga. Затем можно установить программу с помощью стандартного менеджера пакетов.

Загрузите ключ репозитория Icinga и добавьте его в apt:

curl -sSL https://packages.icinga.com/icinga.key | sudo apt-key add -

Этот ключ будет использоваться для автоматической проверки целостности любого программного обеспечения, загруженного из репозитория Icinga. Теперь нужно добавить адрес репозитория в конфигурационный файл apt. Откройте файл в текстовом редакторе.

sudo nano /etc/apt/sources.list.d/icinga.list

На экране появится пустой файл. Вставьте в него строку:

deb https://packages.icinga.com/ubuntu icinga-xenial main

Сохраните и закройте файл. Обновите индекс пакетов:

sudo apt-get update

Пакетный менеджер apt загрузит информацию из добавленного репозитория. Пакеты Icinga станут доступны. Чтобы установить Icinga, введите:

sudo apt-get install icinga2 icinga2-ido-mysql

Эта команда установит основное программное обеспечение Icinga вместе с адаптером базы данных, который позволяет Icinga добавлять информацию в базу данных MySQL. При этом вы увидите несколько экранов конфигурации адаптера базы данных:

  1. Enable Icinga 2’s ido-mysql feature? ВыберитеYes.
  2. Configure database for icinga2-ido-mysql with dbconfig-common? ВыберитеYes.
  3. Затем Icinga предложит выбрать пароль для БД. Выберите надёжный пароль и запишите или запомните его: он понадобится в настройке веб-интерфейса.

Теперь нужно включить поддержку базы данных Icinga. Команда icinga2 может включать и отключать функции Icinga в командной строке. Также на данном этапе нужно включить функцию command, которая позволяет вручную запускать проверку работоспособности с помощью веб-интерфейса.

sudo icinga2 feature enable ido-mysql command

Перезапустите icinga2, чтобы активировать новые функции:

sudo systemctl restart icinga2

Проверьте состояние icinga2, чтобы убедиться, что сервис работает правильно.

sudo systemctl status icinga2
icinga2.service - Icinga host/service/network monitoring system
Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-04-20 00:54:55 UTC; 3s ago
Process: 15354 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)
Main PID: 15416 (icinga2)
Tasks: 11
Memory: 7.7M
CPU: 488ms
. . .

В выводе команды должна быть строка Active: active (running).

2: Установка интерфейса Icinga Web

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

Чтобы установить Icinga Web, введите:

sudo apt-get install icingaweb2

Начальную настройку Icinga Web нужно выполнить в браузере. Но сначала нужно обновить один стандартный параметр. Icinga Web требуется часовой пояс для поддержки среды PHP. Откройте конфигурационный файл PHP.

sudo nano /etc/php/7.0/apache2/php.ini

В файле найдите требуемую строку. Для этого в nano можно нажать Ctrl-W (чтобы открыть интерфейс поиска), ввести date.timezone и нажать Enter. Курсор перейдёт в нужную вам строку. Сначала раскомментируйте её (удалите символ ; в начале строки), а затем введите свой часовой пояс.

Примечание: Узнать правильный формат часовых поясов можно в мануале PHP.

date.timezone = America/New_York

Сохраните и закройте файл. Перезапустите Apache:

sudo systemctl restart apache2

3: Начальная настройка Icinga Web

Прежде чем перейти в браузер, создайте токен настройки. Это ключ, сгенерированный в командной строке, который открывает доступ к инструментам настройки Icinga Web. Создайте токен с помощью команды icingacli.

sudo icingacli setup token create

Команда вернёт:

1558c2c0ec4572ab

Скопируйте токен в буфер, перейдите в браузер и откройте Icinga Web. По умолчанию адрес интерфейса состоит из доменного имени или IP-адреса сервера и секции /icingaweb2.

https://icinga-master.example.com/icingaweb2

На экране появится окно настройки. Вставьте токен и нажмите Next. Начальная настройка интерфейса состоит из нескольких экранов. Рассмотрим их подробнее.

Настройка модулей

Второй экран настройки предложит выбрать дополнительные модули веб-интерфейса. По умолчанию выбран модуль Monitoring, его вполне достаточно для работы. Нажмите Next, чтобы продолжить.

Настройка среды

Здесь вы увидите состояние среды PHP. На этой странице не должно быть красных флажков (они указывают на проблему или ошибку в конфигурации). Вы можете увидеть несколько желтых флажков, которые перечисляют отсутствующие модули PostgreSQL. Их можно просто проигнорировать, поскольку в данном случае используется MySQL, а не PostgreSQL. Нажмите Next, чтобы продолжить.

Аутентификация Icinga Web

На этой странице можно выбрать механизм аутентификации пользователей интерфейса. Здесь можно интегрировать сервис LDAP. В данном случае будет использоваться стандартная опция Database (пользователи будут храниться в БД MySQL). Нажмите Next.

 Настройка базы данных

Эта страница поможет настроить БД для хранения данных пользователей.

Примечание: Это НЕ та же БД, которую вы создали во время установки Icinga.

Большинство параметров по умолчанию можно оставить как есть. Обязательно укажите имя БД и учётные данные пользователя (имя и пароль).

  • Resource Name: icingaweb_db
  • Database Type: MySQL
  • Host: localhost
  • Port:
  • Database Name: icingaweb_users
  • Username: icingaweb
  • Password: Укажите пароль.
  • Character Set:
  • Persistent: Оставьте пустым.
  • Use SSL: Оставьте пустым.

Нажмите Next.

Создание БД пользователей

Следующая страница сообщит, что такой БД не существует и что у вас нет учётных данных, чтобы создать её. Введите имя пользователя root, укажите root-пароль MySQL и нажмите Next, чтобы создать БД и пользователя Icinga Web.

Провайдер аутентификации

Теперь нужно указать имя бэкэнда аутентификации. Значение по умолчанию icingaweb2 вполне подходит. Нажмите Next.

Аккаунт администратора

Настроив базу данных пользователей, можно создать первую учетную запись Icinga Web. Выберите имя пользователя и пароль и нажмите Next.

Логи и пользовательские настройки

На следующей странице вы увидите параметры хранения пользовательских настроек и логов. Значения по умолчанию будут хранить пользовательские настройки в базе данных и вносить записи в syslog. Нажмите Next.

Обзор конфигурации

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

Модуль мониторинга

С этой страницы начинается настройка модуля мониторинга для Icinga Web. Нажмите Next.

Бэкэнд мониторинга

Прежде всего нужно выбрать бэкэнд мониторинга. Имя по умолчанию (icinga) и тип (IDO) вполне подходят. Это означает, что Icinga Web будет извлекать информацию из базы данных ido-mysql, которую мы настроили ранее при установке программы в командной строке.

Настройка отслеживаемой БД

Здесь нужно указать подробные данные о БД ido-mysql (пароль был создан во время установки).

На этой странице вы увидите уже знакомый вам список опций:

  • Resource Name: icinga_ido
  • Database Type: MySQL
  • Host: localhost
  • Port:
  • Database Name: icinga2
  • Username: icinga2
  • Password: пароль, который вы выбрали во время установки
  • Character Set
  • Persistent: пустой
  • Use SSL: пустой

Нажмите Next.

Метод передачи команд

Окно Command Transport позволяет указать, как Icinga Web будет передавать команды в Icinga при ручном запуске проверки работоспособности в веб-интерфейсе. Значение по умолчанию в Local Command File можно оставить без изменений. Нажмите Next.

Безопасность интерфейса мониторинга

Это окно позволяет указать данные, которые веб-интерфейс должен маскировать, чтобы злоумышленники не смогли увидеть пароли и другую конфиденциальную информацию. Можно оставить значения по умолчанию и нажать Next.

Обзор конфигурации модуля мониторинга

Здесь вы можете просмотреть все конфигурации модуля. Нажмите Finish, чтобы завершить настройку Icinga Web. После этого вы увидите сообщение:

Congratulations!

Нажмите Login to Icinga Web 2 и войдите в систему, указав имя и пароль администратора.

На экране появится основной интерфейс Icinga Web. Ознакомьтесь с его вкладками и функциями. Если на сервере нет своп-пространства, вы можете увидеть красное сообщение Critical Error. Пока что его можно проигнорировать. Чтобы устранить ошибку, нажмите на сообщение, выберите Acknowledge в правом столбце, заполните комментарий и нажмите кнопку Acknowledge problem.

4: Настройка электронной почты

Мониторинг не слишком полезен, если вы не можете своевременно получать предупреждения и сообщения о событиях. Icinga по умолчанию предоставляет сценарии для отправки электронной почты администратору, но чтобы они работали, нужно сначала настроить электронную почту на сервере. Самый простой способ сделать это – использовать ssmtp для маршрутизации всей почты сервера через стандартный SMTP-сервер.

Установите ssmtp и вспомогательные утилиты.

sudo apt-get install ssmtp mailutils

Отредактируйте конфигурационный файл ssmtp, указав данные SMTP (предоставляются ISP, почтовым провайдером или IT-отделом). Укажите здесь имя пользователя, пароль и адрес сервера SMTP.

sudo nano /etc/ssmtp/ssmtp.conf

В файле вы увидите объемный блок настроек. Удалите его и вставьте простую базовую настройку, которая подходит большинству SMTP-серверов:

mailhub=mail.example.com:465
UseTLS=yes
FromLineOverride=yes
AuthUser=smtp_username
AuthPass=smtp_password

Сохраните и закройте файл.

Проверьте соединение:

echo "hello world" | mail -s "test subject" 8host@example.com

Если всё работает, вы получите новое письмо.

5: Настройка и тестирование уведомлений

Чтобы включить отправку уведомлений, обновите почтовый адрес в настройках Icinga:

sudo nano /etc/icinga2/conf.d/users.conf

Найдите строку email и укажите свой почтовый адрес:

. . .
email = "8host@example.com"
. . .

Перезапустите Icinga:

sudo systemctl restart icinga2

Хост icinga-master уже поддерживает отправку уведомлений в случае ошибок или сбоев. Создайте на сервере ошибку и посмотрите, что произойдёт. Используйте команду stress, чтобы увеличить нагрузку.

Примечание: Чтобы установить утилиту stress, введите:

sudo apt-get install stress

Утилита stress может управлять нагрузкой, вводом-выводом, памятью и другими метриками системы. Конфигурация Icinga по умолчанию отправляет предупреждение, когда нагрузка системы превышает значение 5. Чтобы повысить нагрузку, введите:

stress --cpu 6

Перейдите в интерфейс Icinga Web, вы увидите, как растет показатель load. После нескольких проверок система сообщит об ошибке уровня soft. Это значит, что проверка должна еще несколько раз получить неудовлетворительный результат, после чего система отметит ошибку как критическую (уровень hard) и будет отправлять уведомления. Эти уровни ошибок позволяют избежать отправки уведомлений о временных проблемах, которые быстро исправляются.

Убедитесь, что система отправила вам уведомление после того, как ошибка достигла уровня hard.

Нажмите CTRL-C, чтобы прекратить работу команды stress. Нагрузка системы быстро восстановится (после этого вы увидите Ok в интерфейсе Icinga Web).

Заключение

Система Icinga и веб-интерфейс Icinga Web успешно установлены на сервер. На данный момент система Icinga мониторит только хост, на котором она установлена.

Читайте такжеМониторинг хостов и сервисов с помощью Icinga в Ubuntu 16.04

Tags: , , ,

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