Icinga 2 - это широко используемая система мониторинга сетевых ресурсов с открытым исходным кодом, а Icinga Web 2 является официальным веб-интерфейсом для Icinga 2.
В этом уроке я объясню, как установить их на сервер Ubuntu 16.04.
Предпосылки
- Недавно развернутый экземпляр сервера Vultr Ubuntu 16.04.
- Пользователь sudo. Чтобы узнать больше о создании пользователя sudo в Ubuntu, см. Инструкции по Debian в другом учебнике по Vultr .
Шаг 1: Обновите систему
Войдите с терминала SSH как пользователь sudo, а затем обновите систему до последнего стабильного состояния, используя следующие команды:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
После перезагрузки используйте того же пользователя sudo для входа в систему.
Шаг 2: Установите Apache
Установите Apache, используя следующую команду:
sudo apt-get install apache2 -y
Удалите страницу приветствия Ubuntu Apache по умолчанию:
sudo rm /var/www/html/index.html
В целях безопасности вы должны запретить Apache /var/www/html
предоставлять посетителям файлы и каталоги в корневом веб-каталоге :
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Запустите сервис Apache и запустите его при загрузке:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
По умолчанию брандмауэр UFW отключен на вновь развернутом экземпляре сервера Vultr Ubuntu 16.04. Используйте следующие команды, чтобы включить брандмауэр UFW и разрешить входящий трафик SSH, HTTP и HTTPS:
sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
sudo ufw enable
Шаг 4: Установите MariaDB
4.1) Используйте следующую команду для установки MariaDB:
sudo apt-get install mariadb-client mariadb-server -y
4.2) Запустите сервис MariaDB:
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
4.3) Безопасная установка MariaDB:
sudo /usr/bin/mysql_secure_installation
Во время интерактивного процесса ответьте на вопросы один за другим, как показано ниже:
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Примечание : замените <your-password>
свой собственный пароль root MySQL.
4.4) Измените плагин аутентификации root
пользователя MySQL :
sudo mysql -u root -p
Для входа используйте пароль root MariaDB, который вы установили ранее.
В оболочке MySQL:
UPDATE mysql.user SET authentication_string=PASSWORD('<your-password>'), plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
Примечание : замените <your-password>
свой собственный пароль root MySQL.
Шаг 5: Установите PHP
Установите PHP 7.0 и несколько расширений для Icinga 2 и Icinga Web 2:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-intl php7.0-xml php7.0-ldap php7.0-mysql php7.0-pgsql php-imagick -y
Установите текущую версию Composer:
cd
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Примечание . Указанные выше команды могут устареть в будущем, поэтому вы всегда должны получать последнюю версию с официального сайта Composer .
По сути удобства перемещения сценария Composer composer.phar
к /usr/local/bin
и переименовать его composer
:
sudo mv ~/composer.phar /usr/local/bin/composer
Установите zip и распакуйте:
sudo apt-get install zip unzip -y
Установите компонент ZendFramework Db с помощью Composer:
composer require zendframework/zend-db
Затем вам нужно установить правильный часовой пояс для вашего компьютера, который можно определить на официальном сайте PHP . Например, если ваш экземпляр сервера находится в центре данных Vultr Los Angeles, то значение часового пояса для него равно America/Los_Angeles
.
Откройте файл конфигурации PHP с помощью редактора vi:
sudo vi /etc/php/7.0/apache2/php.ini
Найдите строку:
;date.timezone =
Измените это на:
date.timezone = America/Los_Angeles
Сохранить и выйти:
:wq!
Перезапустите службу Apache, чтобы новые настройки вступили в силу:
sudo systemctl restart apache2.service
Шаг 6: Установите Icinga 2 и его плагины
Настройте репо Icinga APT:
cd
wget -O - http://packages.icinga.org/icinga.key | sudo apt-key add -
sudo add-apt-repository 'deb http://packages.icinga.org/ubuntu icinga-xenial main'
sudo apt-get update
Установите Icinga 2 и несколько плагинов с помощью репозитория Icinga APT:
sudo apt-get install icinga2 nagios-plugins -y
Чтобы узнать больше о плагинах Icinga 2, посетите веб-сайт проекта «Плагины мониторинга» .
Запустите сервис Icinga 2:
sudo systemctl start icinga2.service
sudo systemctl enable icinga2.service
По умолчанию программа Icinga 2 включает три функции: проверку, основной журнал и уведомление. Вы можете подтвердить это с помощью следующей команды:
sudo icinga2 feature list
Шаг 7: Настройте модули Icinga 2 IDO
7.1) Установите модули IDO (Icinga Data Output) для MySQL
sudo apt-get install icinga2-ido-mysql
В Configuring icinga2-ido-mysql
мастере, когда вас спросят, хотите ли вы включить функцию ido-mysql Icinga 2, выберите <No>
. Мы вручную включим эту функцию позже.
Когда вас спросят, хотите ли вы настроить базу данных для icinga2-ido-mysql, выберите <No>
. Вместо этого вы можете вручную создать базу данных, как описано в шаге 7.2.
7.2) Создание базы данных для Icinga 2
Войдите в оболочку MySQL от имени пользователя root:
sudo mysql -u root -p
Используйте пароль root MariaDB, который вы установили в шаге 4 для входа.
В оболочке MySQL создайте базу данных с именем icinga
и пользователь базы данных icinga
с паролем icinga
, а затем предоставьте привилегии для этой базы данных этому пользователю базы данных.
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
FLUSH PRIVILEGES;
EXIT;
7.3) Импорт схемы Icinga 2 IDO
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
При появлении запроса введите корневой пароль MariaDB, чтобы завершить работу.
7.4) Включить модуль IDO MySQL
sudo vi /etc/icinga2/features-available/ido-mysql.conf
Найдите эти строки:
user = "icinga2",
password = "",
host = "localhost",
database = "icinga2"
Измените их, как показано ниже:
user = "icinga"
password = "icinga"
host = "localhost"
database = "icinga"
Сохранить и выйти:
:wq!
Включите функцию ido-mysql:
sudo icinga2 feature enable ido-mysql
sudo systemctl restart icinga2.service
Шаг 8: Установите Icinga Web 2
8.1) Настройка внешнего командного канала
sudo icinga2 feature enable command
sudo systemctl restart icinga2.service
sudo icinga2 feature list
Прежде чем вы сможете отправлять команды Icinga 2 с помощью веб-интерфейса, вам необходимо добавить www-data
пользователя в icingacmd
группу:
sudo groupadd icingacmd
sudo usermod -a -G icingacmd www-data
Используйте следующую команду для подтверждения вашей настройки:
id www-data
8.2) Установить пакеты Icinga Web 2
sudo apt-get install icingaweb2 icingaweb2-module-monitoring icingaweb2-module-doc icingacli -y
Укажите корневой веб-каталог Apache на местоположение, указанное в Icinga Web 2:
sudo icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
sudo systemctl restart apache2.service
8.3) Настройка базы данных Icinga Web 2
sudo mysql -u root -p
CREATE DATABASE icingaweb2;
EXIT;
8.4) Загрузите схему базы данных Icinga Web 2
mysql -u root -p icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql
8.5) Создание токена настройки для последующего использования в мастере веб-установки Icinga Web 2
sudo icingacli setup token create
8.6) Запустите мастер установки Icinga 2 в веб-интерфейсе.
Укажите в своем веб-браузере следующий URL:
http://<your-serve-ip>/icingaweb2/setup
8.7) На странице приветствия введите созданный ранее токен настройки, а затем нажмите Next
кнопку.
8.8) На странице «Модули» выберите один или несколько модулей, которые вы хотите включить (по крайней мере, Monitoring
модуль необходим), а затем нажмите Next
кнопку.
8.9) На странице «Требования» убедитесь, что все необходимые элементы выполнены, а затем нажмите Next
кнопку.
8.10) На странице Аутентификация вам нужно выбрать метод аутентификации при доступе к Icinga Web 2. Здесь вы можете выбрать Database
, а затем нажать Next
кнопку.
8.11) На странице ресурсов базы данных заполните все обязательные поля, как показано ниже, и нажмите Next
кнопку.
- Имя ресурса *: icingaweb_db
- Тип базы данных *: MySQL
- Host *: localhost
- Имя базы данных *: icingaweb2
- Имя пользователя *: root
- Пароль *: <MariaDB-root-пароль>
8.12) На странице «Аутентификационный бэкэнд», используя имя бэкенда по умолчанию icingaweb2
, нажмите Next
кнопку для продолжения.
8.13) На странице администрирования настройте первую административную учетную запись Icinga Web 2 (допустим, что это так icingaweb2admin
) и пароль (допустим, что это так icingaweb2pass
), а затем нажмите Next
кнопку.
8.14) На странице «Конфигурация приложения» вы можете настроить параметры конфигурации приложения и ведения журнала в соответствии со своими потребностями. На данный момент вы можете использовать значения по умолчанию, перечисленные ниже, и нажать Next
кнопку, чтобы продолжить.
- Показать стеки: проверено
- Тип хранилища пользовательских настроек *: База данных
- Тип ведения журнала *: системный журнал
- Уровень ведения журнала *: ��шибка
- Префикс приложения *: icingaweb2
8.15) На странице обзора дважды проверьте свою конфигурацию, а затем нажмите Next
кнопку.
8.16) На странице приветствия конфигурации модуля мониторинга нажмите Next
кнопку.
8.17) На странице «Мониторинг бэкэнда» используйте имя icinga
и тип бэкэнда по умолчанию IDO
, а затем нажмите Next
кнопку.
8.18) На странице «Мониторинг ресурсов IDO» введите данные базы данных IDO, которые вы настроили ранее, и нажмите Next
кнопку.
- Название ресурса *: icinga_ido
- Тип базы данных *: MySQL
- Host *: localhost
- Имя базы данных *: icinga
- Имя пользователя *: icinga
- Пароль *: icinga
8.19) На странице Command Transport все еще используйте эти значения по умолчанию, перечисленные ниже. Нажмите на Next
кнопку, чтобы двигаться дальше.
- Транспортное имя *: icinga2
- Тип транспорта *: Локальный командный файл
- Командный файл *: /var/run/icinga2/cmd/icinga2.cmd
8.20) На странице безопасности мониторинга по-прежнему используйте значение по умолчанию:
- Защищенные пользовательские переменные: * pw *, * pass *, community
Нажмите Next
кнопку, чтобы перейти на следующую страницу.
8.21) На странице обзора дважды проверьте свою конфигурацию и нажмите Finish
кнопку.
8.22) С поздравлениями! нажмите Login to Icinga Web 2
кнопку, чтобы перейти на страницу входа в Icinga Web 2. Для входа используйте учетную запись администратора Icinga Web 2 и пароль, которые вы установили ранее. Не стесняйтесь изучать панель инструментов Icinga Web 2.
На этом мы завершаем наш урок. Спасибо за чтение.