25.07.2018

Установка системы мониторинга Icinga2 на Ubuntu 16.04

При администрировании сети предприятия или ряда сервисов, которые обеспечивают работу, необходимо следить за их работоспособностью. Когда количество оборудования и/или сервисов можно пересчитать на пальцах, за их состоянием есть возможность следить "в ручном" режиме. Если их становится больше, возникает необходимость в системе мониторинга.

На данный момент, систем мониторинга существует великое множество: Nagios, Cacti, Zabbix и пр.

Я предлагаю ознакомиться с Icinga2 Официальный сайт https://www.icinga.com

1. Установка

2. Настраиваем Web-интерфейс Icinga2

2.1 Перенос Web-интерфейса Icinga2 на виртуальный хост.

2.2 Настройка Web-интерфейса

2.3 Настройка Web-интерфейса. Мастер Настройки

3. Настройка уведомлений через электронную почту

4. Устранение некоторых проблем

Для установки системы мониторинга на Ubuntu 20.04 рекомендую ознакомится с заметкой "Установка Icinga 2 на Ubuntu 20.04" в которой изложена более актуальная информация

1. Установка

Исходные данные:

  • Сервер на базе Ubuntu 16.04 и консольный доступ с правами суперпользователя
  • Установленный и настроенный пакет ПО Apache, PHP и Mysql (описано ранее в Ubuntu LAMP )
Установка:

sudo apt-get install icinga2 icingaweb2 icinga2-ido-mysql snmp

Во время установки будет запрос на настройку БД, сделаем это позже, отвечаем - "Да"

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

Проверяем

sudo service icinga2 restart

sudo service icinga2 status


● icinga2.service - Icinga host/service/network monitoring system

   Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)

   Active: active (running) since Чтв 2018-07-19 14:15:28 EEST; 1min 0s ago

  Process: 5064 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)

 Main PID: 5148 (icinga2)

    Tasks: 11

   Memory: 3.6M

      CPU: 2.737s

   CGroup: /system.slice/icinga2.service

           └─5148 /usr/lib/i386-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon -e

2. Настраиваем Web-интерфейс Icinga2

Во время установки пакета icingaweb2 создается конфигурационный файл Apache /etc/apache2/conf-enabled/icingaweb2.conf , в котором указан алиас для директории icingaweb2. По умолчанию доступ к Web-интерфейсу Icinga2 по адресу http://myhost.org/icingaweb2

2.1 Перенос Web-интерфейса Icinga2 на виртуальный хост

Для меня гораздо удобнее иметь доступ к Web-интерфейсу по отдельному доменному имени, например http://monitoring.myhost.org

Для этого необходимо описать конфигурационный файл VirtualHost для Apache. Если Вас устраивает доступ к интерфейсу http://myhost.org/icingaweb2 пропускайте данный раздел

В директории /etc/apache2/sites-available создаем конфигурационный файл monitoring.conf 

<VirtualHost *:80>

                ServerAdmin webmaster@localhost

                DocumentRoot /usr/share/icingaweb2/public

                ErrorLog ${APACHE_LOG_DIR}/monitoring-error.log

                CustomLog ${APACHE_LOG_DIR}/monitoring-access.log combined

    ServerName monitoring.myhost.org

<Directory "/usr/share/icingaweb2/public">

    Options SymLinksIfOwnerMatch

    AllowOverride None

    SetEnv ICINGAWEB_CONFIGDIR "/etc/icingaweb2"

    EnableSendfile Off

    <IfModule mod_rewrite.c>

        RewriteEngine on

        RewriteBase /

        RewriteCond %{REQUEST_FILENAME} -s [OR]

        RewriteCond %{REQUEST_FILENAME} -l [OR]

        RewriteCond %{REQUEST_FILENAME} -d

        RewriteRule ^.*$ - [NC,L]

        RewriteRule ^.*$ index.php [NC,L]

    </IfModule>

    <IfModule !mod_rewrite.c>

        DirectoryIndex error_norewrite.html

        ErrorDocument 404 /error_norewrite.html

    </IfModule>

</Directory>

</VirtualHost>

Подключаем наш конфигурационный файл и перезагружаем конфигурацию Apache

sudo a2disconf icingaweb2

sudo a2ensite monitoring.conf

sudo service apache2 reload

Если нигде не допустили ошибки, Web-интерфейс доступен по адресу http://monitoring.myhost.org

2.2 Настройка Web-интерфейса

Переходим по адресу

http://monitoring.myhost.org/setup или http://myhost.org/icingaweb2/setup  в зависимости от того, какой вариант доступа вы выбрали.

Во время настройки WEB-интерфейса следуем инструкции и подсказкам установщика.

2.3 Настройка Web-интерфейса. Мастер Настройки

2.3.1 Приветствие. Ввод токена

Создаем токен

$ sudo icingacli setup token create

The newly generated setup token is: adb340df663534d6


 

2.3.2 Выбор модулей

Оставляем значение по умолчанию


2.3.3 Проверка состояния среды

Во время установки Вы сможете увидеть ошибки и/или предупреждения, устраняем их и продолжаем


В моем случае, предупреждений было 3:

1. The PHP config `date.timezone' is not defined

Со списком поддерживаемых временных зон можно ознакомиться http://php.net/manual/ru/timezones.php

Находим свою и вносим соответствующие изменения в файл php.ini  (/etc/php/7.0/apache2/php.ini)

В моем случае

date.timezone = Europe/Kiev

Перезагружаем конфигурацию Apache

sudo service apache2 reload

2. Отсутствие PHP модуля  INTL  "The PHP module INTL is missing."

sudo apt-get install php7.0-intl

sudo  phpenmod intl

sudo service apache2 reload

3. Отсутствие PHP модуля Imagick "The PHP module Imagick is missing."

Установка описана в Установка расширения Imagick для PHP на Ubuntu

2.3.4 Тип авторизации

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


2.3.5 Параметры подключения к БД

Предварительно создаем пользователя и БД. Я создал пользователя и БД icingaweb.

Заполняем данные, проверяем, нажав "Validate Configuration" и переходим к следующему экрану

Пример заполненных данных ниже

Resource Name icingaweb_db

Database Type MySQL

Host * localhost

PortThe 3306

Database Name * icingaweb

Username * icingaweb

Password * ********

Character Set __________

PersistentCheck __________



2.3.6 Провайдер авторизации

Оставляем значение по умолчанию


2.3.7 Данные для авторизации администратора

Создаем первую учетную запись, которая будет обладать правами администратора

2.3.8 Настройка приложения

Мастер настройки предлагает выбрать параметры хранения логов.

Оставляем параметры по умолчанию



2.3.9 Проверка введенных данных


2.3.10 Настрой модуля мониторинга

Оставляем значение по умолчанию



2.3.11 Параметры подключения к БД с данными мониторинга

Заполняем поля, пароль подключения к БД указывали при установке

Resource Name * icinga_ido

Database Type * MySQL

Host * localhost

PortThe 3306

Database Name * icinga2

Username * icinga2

Password * ******

Character Set ________

PersistentCheck ________


Проверяем, нажав "Validate Configuration"

В случае получения сообщения "There is currently no icinga instance writing to the IDO. Make sure that a icinga instance is configured and able to write to the IDO."

Выполняем с консоли

$ sudo icinga2 feature enable ido-mysql

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

$ sudo service icinga2 restart

Когда все будет корректно после нажатия "Validate Configuration"

Появится сообщение "The configuration has been successfully validated."


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

Оставляем значения по умолчанию


2.3.13 безопасность мониторинга

Оставляем значения по умолчанию

2.3.14 проверка введенных параметров



2.3.15 Завершение установки

На этом установка завершена


В данный момент, ведется  мониторинг состояния только того хоста на который производили установку.

Для того, чтобы не было ошибок при отправке команд проверки с Web-интерфейса, устанавливаем права на директорию:

chmod 777 /var/run/icinga2/cmd/

3. Настройка уведомлений через электронную почту

3.1 Установка необходимых пакетов

sudo apt-get install ssmtp mailutils

Редактируем файл конфигурации /etc/ssmtp/ssmtp.conf, внося соответствующие параметры

root=reports@example.ru # от чьего имени шлем письма

mailhub=smtp.example.ru:465 # smtp-сервер и порт

hostname=localhost # имя нашего хоста, желательно вписать верное

UseTLS=Yes # используем зашифрованное соединение

AuthUser=reports@example.ru # логин

AuthPass=password # пароль

В конфигурации Icinga2 вносим e-mail пользователя от которого отправлять оповещения

Редактируем файл /etc/icinga2/conf.d/users.conf 

object User "icingaadmin" {

  import "generic-user"

  display_name = "Icinga 2 Admin"

  groups = [ "icingaadmins" ]

  email = "reports@example.ru"

}

object UserGroup "icingaadmins" {

  display_name = "Icinga 2 Admin Group"

}

После внесения всех изменений применяем новые настройки

sudo service icinga2 reload

4. Устранение некоторых проблем

При работе на ос Ubuntu 16.04 проверка диска выдает ошибку "DISK CRITICAL - /sys/kernel/debug/tracing is not accessible"

Для ее устранения редактируем файл /usr/share/icinga2/include/command-plugins.conf

Находим строку

vars.disk_exclude_type = ["none", "tmpfs", "sysfs", "proc", "devtmpfs", "devfs", "mtmfs"]

и меняем ее на

vars.disk_exclude_type = ["none", "tmpfs", "sysfs", "proc", "devtmpfs", "devfs", "mtmfs", "tracefs"]

На этом все. В дальнейшем рассмотрим добавление и настройку хостов для мониторинга

Используемые материалы:

https://www.icinga.com/docs/icinga2/latest/doc/02-getting-started/

https://www.digitalocean.com/community/tutorials/how-to-install-icinga-and-icinga-web-on-ubuntu-16-04

https://bugs.launchpad.net/ubuntu/+source/nagios-plugins/+bug/1516451

https://monitoring-portal.org/woltlab/index.php?thread/38531-icinga2-check-disk-issue-and-modifing-core-plugin-definition/

Комментариев нет:

Отправить комментарий