При администрировании сети предприятия или ряда сервисов, которые обеспечивают работу, необходимо следить за их работоспособностью. Когда количество оборудования и/или сервисов можно пересчитать на пальцах, за их состоянием есть возможность следить "в ручном" режиме. Если их становится больше, возникает необходимость в системе мониторинга.
На данный момент, систем мониторинга существует великое множество: Nagios, Cacti, Zabbix и пр.
Я предлагаю ознакомиться с Icinga2 Официальный сайт https://www.icinga.com
2. Настраиваем Web-интерфейс Icinga2
2.1 Перенос Web-интерфейса Icinga2 на виртуальный хост.
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://bugs.launchpad.net/ubuntu/+source/nagios-plugins/+bug/1516451
Комментариев нет:
Отправить комментарий