Все статьи связаны непосредственно с ОС Linux: разработка сайтов, поддержка серверов, утилиты и лайфхаки при работе с данной ОС.
Требование: Вы должны понимать 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
PS: Возможны где-то опечатки...
Многие из команд в этом руководстве требуют привилегий суперпользователя. Если при использовании команды 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();
?>
Скриншот:
Сохраняем файл и закрываем.
Открываем браузер и переходим на страницу http://localhost/info.php
Если все сделали правильно, увидите следующее:
Важно! Если сайт не доступен, проверьте включен ли iptables и существует ли разрешающее правило для 80 TCP-порта. Если правило не существует, то добавьте его:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
На этом установка LAMP закончена.
Обновляем пакеты:
sudo apt-get update && sudo apt-get upgrade
Прим. 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 - возможность назначать права другим. Если вы забудете эту опцию и удалите рута - вы столкнетесь с ситуацией, когда создавать пользователей вы сможете, а вот назначить им права НЕТ.
Как следствие, все новосозданные пользователи не смогут ровно ничего.
Добавляем репозиторий:
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 и проверяем доступность наших баз.
3.1 Установите Icinga 2 и модуль Icinga 2 MySQL для доступа к базе данных MariaDB:
apt-get install icinga2 icinga2-ido-mysql
Во время установки возникнет вопрос использования модуля IDO MySQL. Выберите Yes в командной строке:
3.2 После установки Icinga 2 запустите службу Icinga 2 и проверьте состояние демона:
systemctl start icinga2.service
systemctl status icinga2.service
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.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,
нужно добавить соответствующую зону в 2 файла конфигурации:
/etc/php/7.3/cli/php.ini
/etc/php/7.3/apache2/php.ini
В этих двух файлах ищем параметр date.timezone и указываем значение Europe/Moscow. Убираем перед параметром точку с запятой, тем самым убирая комментирование.
Скриншот:
Перезапускаем icinga и apache2 командами
systemctl restart icinga2.service
systemctl restart apache2
5.7 На следующем экране в качестве типа аутентификации выберите Database:
Используйте информацию из второй базы данных, созданной ранее, чтобы добавить учетные данные, необходимые для доступа к базе данных Icinga 2 для хранения пользователей и групп.
В качестве имени для этого ресурса используйте icingawebdb.
Параметры Host и Port должны иметь значения localhost и 3306 соответственно. Не включайте постоянные и SSL-опции. Нажмите кнопку Validate configuration, чтобы подтвердить базу данных. После успешной проверки базы данных нажмите Next, чтобы перейти к следующему этапу процесса настройки Icinga 2:
Определите имя для базы данных аутентификации и нажмите Next:
Добавьте имя пользователя с надежным паролем для входа в веб-интерфейс Icinga 2 и нажмите Next:
Далее настройте приложение и выполните настройку регистрации ошибок, используя следующие параметры:
- Отметьте Show Stacktraces;
- Storage Type = Database;
- Logging Type = File;
- Logging Level = Error;
- File path = /var/log/icingaweb2/icingaweb2.log.
Просмотрите информационный отчет и, если ошибок нет, нажмите Next для продолжения:
Добавьте имя для Icinga 2 Backend, выберите IDO в качестве Backend Type и нажмите Next:
Добавьте учетные данные базы данных для настройки среды ресурса IDO. После добавления нажмите кнопку Validate Configuration, чтобы проверить ресурс IDO мониторинга Icinga.
После появления сообщения Successfully validated нажмите Next:
Выполните настройку транспортного модуля, используя следующие параметры:
Transport Name = icinga2 Transport Type = Local Command File Command File = /var/run/icinga2/cmd/icinga2.cmd
Настройте переменные среды безопасности мониторинга (можно оставить значения по умолчанию):
На следующем экране показан подробный отчет о текущей конфигурации. Проверьте конфигурацию и нажмите Готово, чтобы завершить процесс установки:
После завершения процесса установки и настройки появится сообщение о том, что Icinga Web 2 успешно настроена:
Выполните вход в панель Icinga 2 по адресу http://localhost/icingaweb2/dashboard
Если вы все сделали правильно и не ошиблис, вы увидите вот это:
Это дефолтный конфиг мониторинга в Исинге. Дальше вам следует наполнить ее теми узлами, за которыми вы хотите наблюдать.
В данной статье хотелось бы затронуть мобильную тематику в популярной RouterOS, а именно подключение 3G/4G(LTE) модемов к роутерам компании MikroTik
Продолжить Чтение...Развернутая инструкция по настройке nginx, Gunicorn и SSL для вашего Django проекта в продакшене.
Продолжить Чтение...Кратчайшая минималистичная инструкция по сборке кластера на ESXI и немного про резервирование
Продолжить Чтение...