Как установить Icinga и Icinga Web в Ubuntu 16.04

Вступление

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

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

Предпосылки

Перед началом этого урока вам понадобится:

  • Сервер Ubuntu 16.04 с установленным стеком LAMP, который подробно описан в нашем руководстве https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on- ubuntu-16-04 [Как установить стек Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04].

  • Поскольку Icinga Web имеет страницу входа в систему, а также просит вас ввести конфиденциальную информацию во время установки, вы должны включить шифрование SSL для Apache. Вы можете узнать, как получить и установить бесплатные сертификаты SSL в нашем учебном пособии https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16- 04 [Как обезопасить Apache с помощью Let’s Encrypt в Ubuntu 16.04].

Шаг 1 - Установка Icinga

Чтобы получить последнюю версию Icinga, нам сначала нужно добавить репозиторий программного обеспечения, поддерживаемый командой Icinga. Затем мы установим программное обеспечение с помощью + apt-get + и запустим несколько экранов конфигурации, чтобы настроить серверную часть базы данных Icinga.

Сначала загрузите ключ подписи пакета разработчиков Icinga и добавьте его в систему + apt +:

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

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

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

Откроется новый пустой текстовый файл. Вставьте следующую строку:

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

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

Сохраните и закройте файл, затем обновите кэш пакета:

sudo apt-get update

+ apt-get + теперь будет загружать информацию из только что добавленного репозитория, делая пакеты Icinga доступными для установки:

sudo apt-get install icinga2 icinga2-ido-mysql

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

  1. Включить функцию Ido-MySQL для Icinga 2?

  2. Сконфигурировать базу данных для icinga2-ido-mysql с помощью dbconfig-common?

  3. Затем вам будет предложено установить пароль базы данных Icinga. Создайте надежный пароль и запишите его на потом. Нам это понадобится при настройке веб-интерфейса.

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

sudo icinga2 feature enable ido-mysql command

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

sudo systemctl restart icinga2

И наконец, давайте проверим состояние + icinga2 +, чтобы убедиться, что он работает правильно:

sudo systemctl status icinga2
Output● icinga2.service - Icinga host/service/network monitoring system
  Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)

 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) +, Icinga запущена и работает. Теперь, когда мы настроили базовую систему и базу данных Icinga, пришло время настроить и запустить веб-интерфейс.

Шаг 2 - Установка Icinga Web Interface

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

Давайте установим Icinga Web с помощью + apt-get:

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 +. Курсор переместится на строку, которую нам нужно обновить. Сначала раскомментируйте строку, удалив начальную точку с запятой +; +, а затем введите правильный часовой пояс. + Вы можете найти правильный формат часового пояса в the разделе о часовом поясе руководства PHP. Когда вы закончите, это должно выглядеть примерно так:

/etc/php/7.0/apache2/php.ini

date.timezone =

Сохраните и закройте файл. Перезапустите Apache, чтобы обновить:

sudo systemctl restart apache2

Теперь пришло время работать через настройку Icinga через веб-браузер.

Шаг 3 - Настройка Icinga Web Interface

Прежде чем мы переключимся на наш браузер для процесса установки через Интернет, нам нужно создать токен _setup. Это ключ, который мы генерируем в командной строке, который разрешает нам использовать инструмент веб-настройки. Мы создаем этот ключ командой + icingacli +:

sudo icingacli setup token create

Будет напечатан короткий токен:

Output

Скопируйте токен в буфер обмена, затем переключитесь в браузер и загрузите веб-адрес Icinga. По умолчанию это доменное имя или IP-адрес вашего сервера, за которым следует + / icingaweb2 +:

https:///icingaweb2

изображение: https: //assets.digitalocean.com/articles/icinga-ubuntu-1604/icinga-web-setup.png [Страница настройки Icinga]

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

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

На второй странице у вас будет возможность включить некоторые дополнительные модули для веб-интерфейса. Мы можем смело принять по умолчанию только включение модуля * Monitoring *. Нажмите * Далее *, чтобы продолжить.

Состояние окружающей среды

Третья страница показывает состояние нашей среды PHP. Вы не должны видеть никаких красных прямоугольников, которые указали бы на проблему или неправильную конфигурацию. Вы можете увидеть некоторые желтые прямоугольники, в которых упоминаются отсутствующие модули PostgreSQL. Мы можем спокойно их игнорировать, поскольку мы используем MySQL, а не PostgreSQL. Нажмите * Далее *, чтобы продолжить.

Icinga Web Authentication

На четвертой странице мы можем выбрать способ аутентификации пользователей Icinga Web. Если вы хотите интегрироваться со службой LDAP для аутентификации, это будет место, чтобы выбрать это. Мы будем использовать по умолчанию * Database * для хранения пользователей в нашей базе данных MySQL. Нажмите * Далее *, чтобы продолжить.

Настройка базы данных пользователей

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

Большинство значений по умолчанию в порядке, но нам также нужно выбрать комбинацию имени базы данных и пользователя / пароля:

  1. Название ресурса:

  2. Тип базы данных:

  3. Ведущий:

  4. Порт:

  5. Имя базы данных:

  6. Имя пользователя:

  7. Пароль:

  8. Набор символов:

  9. Стойкие:

  10. Использовать SSL:

Нажмите * Next *, чтобы продолжить.

Создать базу данных пользователей

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

Назовите провайдера аутентификации

Теперь нам нужно назвать бэкэнд аутентификации, который мы только что создали. По умолчанию * icingaweb2 * подходит. Нажмите кнопку "Далее*.

Создать учетную запись администратора

Теперь, когда мы настроили нашу пользовательскую базу данных, мы можем создать нашу первую учетную запись Icinga Web. Выберите имя пользователя и пароль и нажмите * Далее *, чтобы продолжить.

Настройки и хранилище журналов

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

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

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

Введение в настройку мониторинга

Теперь мы приступаем к настройке модуля мониторинга для Icinga Web. Нажмите * Далее *, чтобы начать.

Выберите бэкэнд мониторинга

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

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

Нам нужно ввести детали подключения для базы данных * ido-mysql *. Мы создали этот пароль во время установки.

Эта страница имеет те же параметры, что и экран настройки базы данных пользователей:

  1. Название ресурса:

  2. Тип базы данных:

  3. Ведущий:

  4. Порт:

  5. Имя базы данных:

  6. Имя пользователя:

  7. Пароль:

  8. Набор символов

  9. Стойкие:

  10. Использовать SSL:

Нажмите * Далее *, чтобы продолжить.

Выберите метод транспорта команд

Далее следует приглашение * Command Transport *. Это позволяет нам указать, как Icinga Web будет передавать команды Icinga, когда мы вручную запускаем проверки работоспособности в веб-интерфейсе. По умолчанию * Local Command File * подходит и будет работать с функцией * command *, которую мы включили в шаге 1. Нажмите * Далее *, чтобы продолжить.

Настройка безопасности интерфейса мониторинга

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

Сводка конфигурации модуля мониторинга

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

Нажмите * Войти в Icinga Web 2 * и войдите под своим именем пользователя и паролем администратора.

изображение: https: //assets.digitalocean.com/articles/icinga-ubuntu-1604/icinga-web.png [Icinga Web Interface]

Будет загружен основной интерфейс Icinga Web. Изучите немного и ознакомьтесь с интерфейсом. Если на вашем сервере не настроено пространство подкачки, вы можете увидеть красное поле * Critical Error *. Мы можем пока игнорировать это, или вы можете * Подтвердить * проблему, щелкнув красное поле, выбрав * Подтвердить * в правом столбце, заполнив комментарий и, наконец, нажав кнопку * Подтвердить проблему *.

Теперь, когда мы закончили настройку Icinga и Icinga Web, давайте настроим почтовые уведомления.

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

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

Сначала установите + ssmtp + и некоторые вспомогательные почтовые утилиты:

sudo apt-get install ssmtp mailutils

И теперь мы редактируем файл конфигурации + ssmtp + с нашими SMTP-данными. Они должны быть предоставлены вашим интернет-провайдером, провайдером электронной почты или ИТ-отделом. Вам понадобятся имя пользователя, пароль и адрес вашего SMTP-сервера:

sudo nano /etc/ssmtp/ssmtp.conf

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

/etc/ssmtp/ssmtp.conf

mailhub=:465
UseTLS=yes
FromLineOverride=yes
AuthUser=
AuthPass=

Сохраните и закройте файл. Чтобы проверить соединение, используйте команду + mail +:

echo "" | mail -s ""

Вы должны увидеть письмо в вашем почтовом ящике в ближайшее время. Теперь нам нужно обновить несколько настроек Icinga для отправки почты.

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

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

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

Измените строку + email + на адрес, на который вы хотите получать уведомления:

/etc/icinga2/conf.d/users.conf

. . .
email = ""
. . .

Перезапустите Icinga в последний раз:

sudo systemctl restart icinga2

Хост * icinga-master * уже настроен на отправку уведомлений при возникновении проблем. Давайте создадим проблему и посмотрим, что произойдет. Мы будем использовать команду под названием «+ стресс +», чтобы увеличить нагрузку на систему и вызвать предупреждение.

Установить «+ стресс»:

sudo apt-get install stress

+ress + может манипулировать нагрузкой, дисковым вводом-выводом, памятью и другими системными показателями. Конфигурация Icinga по умолчанию вызовет предупреждение, когда загрузка системы превысит пять. Давайте сделаем это сейчас:

stress --cpu 6

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

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

Нажмите + CTRL-C +, чтобы выйти из команды + стресс +. Загрузка системы восстановится довольно быстро и вернется к * Ok * в веб-интерфейсе Icinga. Вы также получите другое электронное письмо с сообщением о том, что проблема устранена.

Заключение

В этом руководстве мы успешно настроили Icinga и Icinga Web, включая функцию уведомления электронной почты Icinga. В настоящее время мы контролируем только сам хост Icinga. Продолжите наш следующий учебник с Icinga на Ubuntu 16.04], где мы настроим удаленный мониторинг.

Related