Выбирая систему мониторинга для домашней сети на замену давно и успешно работающему потоку NodeRED, сперва решил попробовать Icinga 2, т.к. на скриншотах оно выглядело, как то, что нужно…
Но реальность в этот раз оказалась ко мне жестока! – мало того, что провозился с ней трое суток, так еще это и оказалось решением, которое «из коробки» не работает от слова совсем! Выругавшись, подружился с LibreNMS.
Эта статья, как дань уважению потраченному мной времени – путевые заметки, которые предоставляются частично, как сформированный текст, и частично, в совершенно сыром виде. Возможно, это кому-то чем-то сможет помочь.
Вот таким многообещающим сообщением нас встречает установка icinga2…
nikolay@servos:~ $ sudo apt install icinga2 Чтение списков пакетов… Готово Построение дерева зависимостей… Готово Чтение информации о состоянии… Готово Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите, неосуществимо, или же вы используете нестабильную версию дистрибутива, где запрошенные вами пакеты ещё не созданы или были удалены из Incoming. Следующая информация, возможно, вам поможет: Следующие пакеты имеют неудовлетворённые зависимости: icinga2 : Зависит: icinga2-bin (= 2.12.3-1) но он не будет установлен Зависит: icinga2-common (= 2.12.3-1) но 2.13.7-1+raspbian11 должен быть установлен Рекомендует: icinga2-doc (= 2.12.3-1) но он не будет установлен Рекомендует: monitoring-plugins-basic но он не будет установлен или nagios-plugins-basic Рекомендует: libreadline7 но он не может быть установлен E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
В процессе борьбы выяснилось1), что Icinga 2.13.7 не скомпилирована под arm64 и в полноценном виде она на сегодня существует только, как armhf! Но по официальной документации, это совершенно не очевидно, увы.
sudo -s
apt update && apt -y install apt-transport-https wget gnupg
wget -O - https://packages.icinga.com/icinga.key | gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \ echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/raspbian icinga-${DIST} main" > /etc/apt/sources.list.d/icinga.list echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/raspbian icinga-${DIST} main" >> /etc/apt/sources.list.d/icinga.list
apt update
mkdir -p /opt/build /opt/debs && cd /opt/build/
apt build-dep icinga2 icingaweb2 icinga-php-common icinga-php-library icinga-php-thirdparty icinga-l10n -y
apt source icinga2 icingaweb2 icinga-php-common icinga-php-library icinga-php-thirdparty icinga-l10n
nano build_icinga.sh
и вставляем в него
#!/bin/bash ICINGADIR=$(find /opt/build -maxdepth 1 -type d | grep icinga2-2) ICINGAWEBDIR=$(find /opt/build -maxdepth 1 -type d | grep icingaweb2-2) ICINGAPHPCOMMONDIR=$(find /opt/build -maxdepth 1 -type d | grep icinga-php-common) ICINGAPHPLIBRARY=$(find /opt/build -maxdepth 1 -type d | grep icinga-php-library) ICINGAPHPTHIRDPARTY=$(find /opt/build -maxdepth 1 -type d | grep icinga-php-thirdparty) ICINGAL10N=$(find /opt/build -maxdepth 1 -type d | grep icinga-l10n) cd ${ICINGADIR} dpkg-buildpackage -b -uc -us cd ${ICINGAWEBDIR} dpkg-buildpackage -b -uc -us cd ${ICINGAPHPCOMMONDIR} dpkg-buildpackage -b -uc -us cd ${ICINGAPHPLIBRARY} dpkg-buildpackage -b -uc -us cd ${ICINGAPHPTHIRDPARTY} dpkg-buildpackage -b -uc -us cd ${ICINGAL10N} dpkg-buildpackage -b -uc -us cd /opt/build mv *.deb /opt/debs
chmod 744 build_icinga.sh
./build_icinga.sh
find /opt/debs/ -name *ido-pgsql* -delete && find /opt/debs/ -name *vim* -delete
Все, что ниже, это поток сознания в заметку notepad, не судите.
Устанавливаем php 7.4, apache2 и mariadb
sudo apt install php7.4 apache2 mariadb-server
правим часовой пояс
sudo nano /etc/php/7.4/apache2/php.ini
->> date.timezone = Asia/Vladivostok
Раскомментируйте конфигурацию 'cgi.fix_pathinfo' и измените значение на '0'.
cgi.fix_pathinfo=0
перезапускаем апач
sudo systemctl restart apache2
настраиваем базу
sudo mysql_secure_installation
(у меня пароль qaz123wsx)
устанавливаем пакеты
cd /opt/debs/
sudo dpkg -i *
если ругается на зависимости то
sudo apt --fix-broken install
настройка icinga2-ido-mysql
запускаем командную стоку mysql (https://icinga.com/docs/icinga-2/2.10/doc/02-getting-started/#setting-up-icingaweb2)
mysql -u root -p
создаем базу
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
quit
импортируем схему
mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Настраиваем апач
sudo icingacli setup config directory --group icingaweb2;
Создаем токен
sudo icingacli setup token create
выбираем doc и Monitoring
проверяем, чтобы всего было вдоволь. у меня не хватало imagick
установка:
sudo apt install php-imagick
sudo nano /etc/php/7.4/apache2/php.ini
добавить в соответствующем разделе -->> extension=imagick
sudo systemctl restart apache2
далее Тип аутентификации - база данных
вводи данные для базы базы для хранения юзеров. самой базы может не существовать!
Название базы данных icinga_db
Имя пользователя icinga
Пароль icinga
Проверить конфиг.
далее мне сказали, что не могут создать базу с этими четными данными. ввел рут.
бэкэнд не меняем, хер знает, что это
вводим первого юзера
далее настройка логирования, не трогаем
проверяем, нажимаем далее.
указываем базу "icinga2" пользовать "icinga2" пароль ""
далее
настройка API
sudo icinga2 api setup
добавление пользователя api (там уже будет root)
sudo nano /etc/icinga2/conf.d/api-users.conf
---
object ApiUser "icingaweb2" {
password = "gergregregerger"
permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}
----
перезапускаем ицингу
systemctl restart icinga2
вводим узел localhost
логин и пароль созданный выше
проверка конфигурации - ок.
-------------------------
установка модуля настройки ицинги (icingaweb2 director)
https://blog.it-kb.ru/2016/11/22/deploy-and-configure-icinga-2-on-debian-8-6-part-3-installation-of-icinga-director-1-2-0-module-for-icinga-web-2/
хуй я угадал с простым вариантом! не совместим....
это не канает ->> sudo apt install icingaweb2-module-director
поэтому
sudo apt install git
sudo mkdir /usr/share/icingaweb2/modules/incubator
sudo git clone --branch v0.20.0 https://github.com/Icinga/icingaweb2-module-incubator.git /usr/share/icingaweb2/modules/incubator
sudo mkdir /usr/share/icingaweb2/modules/director
sudo git clone --branch v1.10.2 https://github.com/Icinga/icingaweb2-module-director.git /usr/share/icingaweb2/modules/director
ага выше и там и там надо сперва актуальную версию глянуть
создаем базу
mysql -u root -p
CREATE DATABASE director CHARACTER SET 'utf8';
GRANT ALL ON director.* TO 'icinga_di2'@'localhost' IDENTIFIED BY 'D1rect0rUsRPa$sw0rd';
в веб идем - настройки - приложения - ресурсы
создаем новый ресурс с базой выше и обязательным указанием набора символов "utf8"
переходим в "управление icinga" и выбираем эту базу
далее создаем схему
далее вводим имя конечной точки можно посмотреть sudo nano /etc/icinga2/constants.conf в параметре NodeName, имя пользователя root, пароль посмотреть тут sudo nano /etc/icinga2/conf.d/api-users.conf
тыкаем экспорт или что-то похожее
На этом месте я сперва все понял, а потом и окончательно сдался, да пошел дружиться с LibreNMS!
Обсуждение