• [ GEEKHERO:2021 ]
  • Категории
  • Files 42

Воистину гений

СТАТЬЯ ИЛИ СОН?
Развертывание Icinga с нуля для новичков. | GEEKHERO
dantist140 10 мая 2021 г. 14:34 | обновлен 13 мая 2021 г. 9:56

Развертывание Icinga с нуля для новичков.

Иконка категории
В категории "Linux"

Все статьи связаны непосредственно с ОС Linux: разработка сайтов, поддержка серверов, утилиты и лайфхаки при работе с данной ОС.

Метки: linux, sql, icinga, apache, mysql, mariadb, monitoring


0 - Пролог

Требование: Вы должны понимать Linux, хотя-бы на базовом уровне...достаточном для того что-бы понять вывод команд и что именно вам надо загуглить.
Если у вас проблемы при установке Linux - вам еще рано это читать.)
Если вы не знаете как и где редачить репы, не умеете работать в терминале и у вас плохо с грамотным написанием английских букав - вам еще рано это читать.)

Источники:
Статья: https://serverspace.ru/support/help/ustanovka-icinga2-na-debian9/
Документация: https://icinga.com/docs/icinga-2/latest/doc/02-installation/
Книга: Russell J. T. Dyer - Learning MySQL and MariaDB
И само собой Гугл -  в случае ошибки не описанной в документации - надо понимать что искать. Более того, придется еще и фильтровать решения из интернетов и подгонять под свою среду. Бездумный копипаст в лучше случае не сработает, в худшем - все сломает, а обнаружится может намного позже.

Скорее всего вы сначала ничего не поймете)) Но спустя несколько дней ковыряния...КАК ПОЙМЕТЕ)

Все работы проводились на ОС Debian 10

fffcb5a1c73e0d39134418a5ed6e300a6b7a1d85.jpg

PS: Возможны где-то опечатки...

 

1 - Первоначальные требования

Многие из команд в этом руководстве требуют привилегий суперпользователя. Если при использовании команды sudo появляется ошибка

bash: sudo: command not found

вам необходимо активировать режим суперпользователя, установить команду sudo и добавить своего пользователя в файл sudoers.

 

1.1 Войдите под рутом. Введите команду su и пароль рута:

su

 

1.2 Откройте на редактирование sudoers файл (я использую nano, вы можете любой другой редактор):

nano /etc/sudoers

 

1.3 Добавьте строчку после root, заменив user на имя вашего пользователя:

root ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL

 

1.4 Сохраните файл(Ctrl+S), выйдите из-под рута.

Теперь вы можете использовать команду sudo.

1.5 На виртуальном сервере должен быть установлен LAMP

Последовательно выполняем команды обновления данных о репозиториях и индексах пакетов, обновляем пакеты и компоненты системы до актуальных и перезагружаем сервер, если потребуется:

sudo apt-get update
sudo apt-get upgrade
sudo reboot

 

Устанавливаем компоненты сервера — Apache2, MariaDB, PHP7.3,:

sudo apt-get install apache2
sudo apt-get install mariadb-server mariadb-client
sudo apt-get install php7.3-mysql php7.3-curl php7.3-json php7.3-cgi php7.3 libapache2-mod-php7.3 php7.3-xml

 

1.6 В ходе установки MariaDB, программа запросит ввод пароля для пользователя root и его подтверждение. 

 

Модули PHP:

В стандартных настройках, корень сайта располагается по пути /var/www/html. Любым текстовым редактором, например nano создадим php-файл:

Прим. dantist140: Вместо терминального редактора vi или nano можно использовать любой другой, например pluma или gedit.

cd /var/www/html
sudo touch info.php
sudo pluma info.php

Запишем в файл следующие строки: Именно так, а не одной строкой!

<?php
phpinfo();
?>

Скриншот:

e47f1d77b30aa4c6072013cefe0596b22afb21f9.jpg

Сохраняем файл и закрываем.

Открываем браузер и переходим на страницу http://localhost/info.php

Если все сделали правильно, увидите следующее:

e0816ad1211c937e0e08915cf836e9dbaec19af1.jpg

Важно! Если сайт не доступен, проверьте включен ли iptables и существует ли разрешающее правило для 80 TCP-порта. Если правило не существует, то добавьте его:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save

На этом установка LAMP закончена.

Обновляем пакеты:

sudo apt-get update && sudo apt-get upgrade

 

2 - Настройка баз данных

Прим. dantist140:  Перво наперво, определитесь с базами, их именами и пользователями. Запишите куда нибудь, сделайте план. В дальнейшем это поможет не потеряться при конфигурировании.

2.1 Установите СУБД, необходимую веб-приложению Icinga 2 для мониторинга, и интерфейсу Icinga Web 2 для хранения пользователей, контактов и других собранных данных. Выполните следующую команду, чтобы установить базу данных MariaDB и модуль PHP, необходимые для доступа к базе данных MySQL в Debian 9:

apt install php7.3-mysql mariadb-server mariadb-client

2.2. ВНИМАНИЕ: Точка с запятой в конце команд при работе с MariaDB - обязательны, иначе не сработает!

2.3 Далее выполните сценарий безопасности MySQL:

sudo mysql_secure_installation

Измените пароль от root.

Во всех следующих пунктах нужно нажимать Y.  Утилита отключит анонимный вход, запретит удалённую авторизацию для суперпользователя, удалит временные таблицы и перезагрузит настройки полномочий.

 

2.4 Войдите в консоль базы данных и создайте базу данных для Icinga2:

sudo mysql -p
create database icingadb;

 

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

В этом примере необходимо заменить icingadb, icingadbuser и strongpassword своим собственным именем базы данных и учетными данными:

create user 'icingddbuser';
grant all privileges on icingadb.* to 'icingadbuser' identified by 'strongpassword';
flush privileges;

 

2.6 Создайте вторую базу данных MySQL, используемую Icinga 2 Web для хранения пользователей и групп. Как и в предыдущем шаге замените имя базы данных и учетные данные. Вы можете использовать одну и ту же учетную запись пользователя MySQL для одновременного управления обеими базами данных (icinga_user’@’localhost):

create database icinga_users;
create user icinga_users_user
grant all privileges on icinga_users.* to 'icinga_users_user' identified by 'strongpassword';
flush privileges;

 

2.7 Создайте админского пользователя и выдайте ему все привилегии на все базы, с возможностью управлять привилегиями.

create user 'Admin'
grant all privileges on *.* to 'Admin' identified by 'strongpassword' with grant option;
flush privileges;

 

2.8 Войдите  под новой учеткой для проверки.

mysql -u Admin -p

Прим. dantist140:  По умолчанию в MariaDB встроена учетка root, пароль для которого вы задаете в шаге 2.3. Если вам нужно, вы можете ее удалить и использовать учетку созданную в шаге 2.7.
Важно, что-бы у новой админской учетки было право  GRANT OPTION - возможность назначать права другим. Если вы забудете эту опцию и удалите рута - вы столкнетесь с ситуацией, когда создавать пользователей вы сможете, а вот назначить им права НЕТ.
Как следствие, все новосозданные пользователи не смогут ровно ничего.

Список наиболее часто используемых привилегий MySQL:

  • ALL PRIVILEGES - пользователь имеет полный доступ к базе данных.
  • CREATE - пользователю разрешено создавать базы данных и таблицы.
  • DROP - пользователь имеет право удалять базы данных и таблицы.
  • DELETE - пользователь может удалять строки из определенной таблицы.
  • INSERT - пользователь может вставлять строки в определенную таблицу.
  • SELECT - пользователю разрешено читать базу данных.
  • UPDATE - пользователь может обновлять строки таблицы.

 

OPTION: Установка PHPMyAdmin:

 

Добавляем репозиторий:

nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ stretch main contrib non-free
deb-src http://deb.debian.org/debian/ stretch main contrib non-free

 

Устанавливаем PHPMyAdmin

apt-get update
apt-get install phpmyadmin

Выйдет новое окно в мастере установки, запрашивающее разрешение на использование «dbconfig-common». Данный параметр позволит настроить базу данных и пользователя с правами администратора для программы phpMyAdmin. Поэтому выбираем пункт «Да» и идем дальше.

Cоздаем собственный пароль. Теперь ждем, когда все пакеты ПО будут до конца установлены. Для проверки в адресной строке браузера вбиваем адрес

http://localhost/phpmyadmin/index.php

Логинимся под пользователем, которого создавали для MariaDB в шаге 2.7 и проверяем доступность наших баз.

e9b17eafa802b8bfd33414874da8b309ec124595.jpg

 

3 - Установка Icinga 2

3.1 Установите Icinga 2 и модуль Icinga 2 MySQL для доступа к базе данных MariaDB:

apt-get install icinga2 icinga2-ido-mysql

Во время установки возникнет вопрос использования модуля IDO MySQL. Выберите Yes в командной строке:

76_34_1.png

3.2 После установки Icinga 2 запустите службу Icinga 2 и проверьте состояние демона:

systemctl start icinga2.service
systemctl status icinga2.service

4 - Установка веб-интерфеqса Icinga 2

4.1 Для управления Icinga 2 через веб-интерфейс установите пакеты веб-интерфейса Icinga 2 и интерфейса командной строки (CLI):

apt-get install icingaweb2 icingacli

 

4.2 Перезапустите демон Icinga 2 и проверьте его статус:

systemctl restart icinga2.service
systemctl status icinga2.service

 

4.3 Для установки схемы MySQL требуется база данных Icinga 2:

Прим. dantist140: Я так и не понял что это за схема и зачем она нужна.

 

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

После этого нужно сделать симлинк из папки доступных плагинов в папку активных. Иначе при настройке через Веб морду, если вы выбрали ручную настройку IDO - будут ошибки подключения к IDO.

ln -s /etc/icinga2/features-available/ido-mysql.conf /etc/icinga2/features-enabled/

 

4.4 Откройте файл конфигурации Icinga 2 MySQL IDO:

nano /etc/icinga2/features-enabled/ido-mysql.conf

 

4.5 Добавьте учетные данные базы данных Icinga 2 как показано на примере ниже. Используйте учетные данные первой базы данных, созданной на предыдущем этапе создания базы данных:

library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icingadbuser",
password = "strongpassword",
host = "localhost",
database = "icingadb"
}

 

4.6 Сохраните файл и перезапустите демон Icinga 2:

systemctl restart icinga2.service

 

4.7 Создайте каталог журналов Icinga Web 2 и добавьте соответствующие разрешения файловой системы, чтобы предоставить разрешения записи групп:

mkdir -p /var/log/icingaweb2/
chgrp -R icingaweb2 /var/log/icingaweb2/
chmod -R 775 /var/log/icingaweb2/

 

5 - Настройка Icinga 2 через веб-интерфейс

5.1 Сгенерируйте токен установки. Сохраните его в легкодоступном месте. Вам нужно будет использовать его для доступа к настройке Icinga 2:

icingacli setup token create

 

5.2 Вывод этой команды должен быть примерно таким:

The newly generated setup token is: c0f22932e763ac41

Показать сгенерированный токен, если вы его забыли, можно с помощью команды:

icingacli setup token show

 

5.3 Откройте порт HTTP для подключения к веб-интерфейсу:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

 

5.4 Заходите на страницу: http://localhost/icingaweb2/setup

Вводите токен полученный ранее.

 

5.5 На следующем экране отметьте галочкой модули Doc и Monitoring и нажмите Next для продолжения.

Icinga 2 проверит ваши системные требования и модули PHP, чтобы убедиться, что все требования выполнены, прежде чем продолжить процесс установки и настройки. Если не хватает некоторых модулей, то их необходимо доустановить.

Прим. dantist140 - для исправления ошибки с Default Timezone,

93b0256048b27f41f19c014db000b79423f8f426.jpg

нужно добавить соответствующую зону в 2 файла конфигурации:

/etc/php/7.3/cli/php.ini
/etc/php/7.3/apache2/php.ini

В этих двух файлах ищем параметр date.timezone и указываем значение Europe/Moscow. Убираем перед параметром точку с запятой, тем самым убирая комментирование.

Скриншот:

db34952d2a9694b9020fc5708e8b73aa39bef9b7.jpg

Перезапускаем icinga и apache2 командами

systemctl restart icinga2.service
systemctl restart apache2

5.7 На следующем экране в качестве типа аутентификации выберите Database:

18_5.png

Используйте информацию из второй базы данных, созданной ранее, чтобы добавить учетные данные, необходимые для доступа к базе данных Icinga 2 для хранения пользователей и групп.

 

В качестве имени для этого ресурса используйте icingawebdb.

 

Параметры Host и Port должны иметь значения localhost и 3306 соответственно. Не включайте постоянные и SSL-опции. Нажмите кнопку Validate configuration, чтобы подтвердить базу данных. После успешной проверки базы данных нажмите Next, чтобы перейти к следующему этапу процесса настройки Icinga 2:

 

27_6.png

Определите имя для базы данных аутентификации и нажмите Next:

38_7.png

Добавьте имя пользователя с надежным паролем для входа в веб-интерфейс Icinga 2 и нажмите Next:

 

23_8.png

Далее настройте приложение и выполните настройку регистрации ошибок, используя следующие параметры:

 

- Отметьте Show Stacktraces;

- Storage Type = Database;

- Logging Type = File;

- Logging Level = Error;

- File path = /var/log/icingaweb2/icingaweb2.log.

90_9.png

Просмотрите информационный отчет и, если ошибок нет, нажмите Next для продолжения:

 

97_11.png

Добавьте имя для Icinga 2 Backend, выберите IDO в качестве Backend Type и нажмите Next:

 

84_12.png

Добавьте учетные данные базы данных для настройки среды ресурса IDO. После добавления нажмите кнопку Validate Configuration, чтобы проверить ресурс IDO мониторинга Icinga.

 

После появления сообщения Successfully validated нажмите Next:

 

12_13.png

Выполните настройку транспортного модуля, используя следующие параметры:

Transport Name = icinga2
Transport Type = Local Command File
Command File = /var/run/icinga2/cmd/icinga2.cmd

 

83_14.png

Настройте переменные среды безопасности мониторинга (можно оставить значения по умолчанию):

53_15.png

На следующем экране показан подробный отчет о текущей конфигурации. Проверьте конфигурацию и нажмите Готово, чтобы завершить процесс установки:

 

24_16.png

После завершения процесса установки и настройки появится сообщение о том, что Icinga Web 2 успешно настроена:

 

97_17.png

 

Выполните вход в панель Icinga 2 по адресу http://localhost/icingaweb2/dashboard

Если вы все сделали правильно и не ошиблис, вы увидите вот это:

 

 

Это дефолтный конфиг мониторинга в Исинге. Дальше вам следует наполнить ее теми узлами, за которыми вы хотите наблюдать.

Поделиться записью


Похожие записи:

Card image cap
MikroTik 3G 4G LTE: Мобильный роутер – из LTE в PPP

В данной статье хотелось бы затронуть мобильную тематику в популярной RouterOS, а именно подключение 3G/4G(LTE) модемов к роутерам компании MikroTik

Продолжить Чтение...
Card image cap
Запуск Django сайта на nginx + Gunicorn + SSL

Развернутая инструкция по настройке nginx, Gunicorn и SSL для вашего Django проекта в продакшене.

Продолжить Чтение...
Card image cap
Собираем кластер на ESXI

Кратчайшая минималистичная инструкция по сборке кластера на ESXI и немного про резервирование

Продолжить Чтение...
Категории
Обучение и подготовка (3)
Linux (15)
Телекоммуникации (12)
Программирование (2)
Обзоры на технику (1)
Виртуализация (1)
Web-разработка (5)
Администрирование Windows (0)

Последние записи
Быстро подключаемся к серверам по SSH из терминала
28 Фев 2023
Flask в Docker+Kuberenetes
28 Авг 2022
Готовим образ Docker для Flask приложения
26 Авг 2022

Популярные метки
Copyright 2019-2021  
Обратная связь