Установка мониторинг системы Icinga 2 и Icinga Web 2

Установка мониторинг системы Icinga 2 и Icinga Web 2

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Icinga 2 популярная система мониторинга с открытым исходным кодом. Icinga Web 2 - удобный веб-интерфейс управления.

Установку будем производить на сервер под управлением CentOS 7.

Шаг 1. Установка необходимых пакетов для работы.

1
yum install epel-release wget net-tools bind-utils

Шаг 2. Установка HTTPD (Apache)

В данном примере установку будем производить на Apache сервер, но лучше всего проксировать это дело через NGINX.

Установка Apache

1
yum install httpd

Запретим просмотр корневых каталогов Apache, а также закроем страницу приветствия от Apache.

1
2
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

Запустим сервис и добавим в автозагрузку:

1
2
systemctl start httpd.service
systemctl enable httpd.service

Шаг 3. Установка MariaDB

Установим базу данных MariaDB.

Добавляем репозиторий.
В файл /etc/yum.repos.d/MariaDB.repo добавляем:

1
2
3
4
5
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Устанавливаем MariaDB:

1
yum -y install MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared

Запускаем:

1
systemctl start mariadb.service

Добавляем в автозагрузку:

1
systemctl enable mariadb.service

Выполняем первоначальную настройку:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/usr/bin/mysql_secure_installation
...
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
...
Remove anonymous users? [Y/n] y
... Success!
...
Disallow root login remotely? [Y/n] y
... Success!
...
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
...
Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Шаг 4. Установка PHP

Установим PHP и необходимые модули для нормальной работы Icinga2 и Icinga Web 2.

1
yum install php php-gd php-intl php-ldap php-ZendFramework php-ZendFramework-Db-Adapter-Pdo-Mysql php-pgsql

После установки перезагрузим Apache:

1
systemctl restart httpd.service

Шаг 5. Установка Icinga 2 и зависимых плагинов

В CentOS 7 можно установить Icinga 2 используя icinga-репозиторий.

1
2
3
rpm --import http://packages.icinga.org/icinga.key 
yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm
yum install icinga2 nagios-plugins-all -y

Запустим сервис Icinga2 и добавим в автозапуск:

1
2
systemctl start icinga2.service
systemctl enable icinga2.service

По умолчанию в Icinga2 включены 3 функции: чекер, логирование и уведомление.

Мы можем проверить это выполнив icinga2 feature list:

1
2
3
# icinga2 feature list
Disabled features: api command compatlog debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: checker mainlog notification

Шаг 6. Установка Icinga 2 IDO модуля

Установим IDO (Icinga Data Output) модуль для MySQL.

1
yum install icinga2-ido-mysql

Подключимся к MySQL и создадим новую базу данных Icinga:

1
mysql -u root -p
1
2
3
4
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
FLUSH PRIVILEGES;
EXIT;

Импортируем Icinga2 IDO схему:

1
mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql

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

1
2
3
4
user = "icinga"
password = "YPURPASSWORD"
host = "localhost"
database = "icinga"

Включим IDO модуль и перезапустим сервис Icinga2:

1
2
icinga2 feature enable ido-mysql
systemctl restart icinga2.service

Шаг 7. Установка Icinga Web 2

Включение функции внешнего командного канала

1
2
icinga2 feature enable command
systemctl restart icinga2.service

После этого мы можем отправлять команды Icinga2 используя веб-интерфейс.

Необходимо добавить пользователя apache в группу icingacmd:

1
usermod -a -G icingacmd apache

Проверить добавление в группу можно командой id apache:

1
2
# id apache
uid=48(apache) gid=48(apache) группы=48(apache),992(icingacmd),990(icingaweb2)

Установка Icinga Web 2

Установим пакеты Icinga Web 2 и icingacli

1
yum install icingaweb2 icingacli

Укажем Apache рабочие директории для Icinga Web 2:

1
2
icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
systemctl restart httpd.service

Генерация токена для установки

Генерируем токен для последующего использования при установке через веб-интерфейс.

1
icingacli setup token create

Инициализируем мастер установки Icinga 2 через веб-интерфейс

Перейдем по адресу http://<server-ip>/icingaweb2/setup

Далее следуем подсказкам мастера установки.

На странице приветствия введем токен, который мы создали ранее, и нажимаем кнопку «Далее».

На странице модули выберем модули, которые мы хотим включить (по крайней мере, необходим модуль Мониторинга), а затем нажимаем кнопку «Далее».

На странице «Требования» убедимся, что все требования выполнены, а затем нажимаем кнопку «Далее».

На странице «Идентификация» необходимо выбрать метод проверки подлинности при доступе к Icinga Web 2. Здесь мы можем выбрать «База данных», а затем нажать кнопку «Далее».

На странице «Ресурс базы данных» заполним все необходимые поля и нажимаем - «Далее».

На странице «Внутренняя страница проверки подлинности», используем стандартное имя backend-сервера icingaweb2, нажимаем кнопку «Далее».

На странице администрирования настроим первую учетную запись Icinga Web 2 (например, это icingaweb2admin) и пароль (icingaweb2pass), а затем нажмем кнопку «Далее».

На странице «Конфигурация приложения» мы можем настроить параметры конфигурации, связанные с приложениями и журналами, в соответствии с потребностями. На данный момент мы можем использовать значения по умолчанию, перечисленные ниже, и нажать кнопку «Далее», чтобы продолжить.

1
2
3
4
5
Show Stacktraces: Checked
User Preference Storage Type*: Database
Logging Type*: Syslog
Logging Level*: Error
Application Prefix*: icingaweb2

Завершаем оставшиеся три пункта оставляя значения по умолчанию и авторизуемся в веб-интерфейс Icinga Web 2.

На этом установка Icinga2 и Icinga2 Web завершена.

Troubleshooting

Для генерации API-доступов выполняем icinga2 api setup