Инструменты пользователя

Инструменты сайта


raspberry_pi:pi_4_model_b:raspberry_pi_os:icinga2:installation

Установка Icinga 2 на Raspberry Pi OS (64-bit)

Выбирая систему мониторинга для домашней сети на замену давно и успешно работающему потоку 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! Но по официальной документации, это совершенно не очевидно, увы.

Компиляция

  1. Авторизуемся под пользователем «root»

    sudo -s
  2. устанавливаем необходимые компоненты

    apt update && apt -y install apt-transport-https wget gnupg
  3. добавляем ключ репозитория

    wget -O - https://packages.icinga.com/icinga.key | gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
  4. добавляем файл настроек репозитория

    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
  5. обновляем списки пакетов

    apt update
  6. создаем папки и переходим

    mkdir -p /opt/build /opt/debs && cd /opt/build/
  7. проверяем и устанавливаем зависимости2)

    apt build-dep icinga2 icingaweb2 icinga-php-common icinga-php-library icinga-php-thirdparty icinga-l10n -y
  8. скачиваем исходники

    apt source icinga2 icingaweb2 icinga-php-common icinga-php-library icinga-php-thirdparty icinga-l10n
  9. создаем файл скрипта

    nano build_icinga.sh

    и вставляем в него

    compilation.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
  10. разрешаем выполнение скрипта

    chmod 744 build_icinga.sh
  11. запускаем компиляцию

    ./build_icinga.sh
  12. удаляем не нужное

    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! LOL


Дисклеймер

  • Использование материалов данной базы знаний разрешено на условиях лицензии, указанной внизу каждой страницы! При использовании материалов активная гиперссылка на соответствующую страницу данной базы знаний обязательна!
  • Автор не несет и не может нести какую либо ответственность за последствия использования материалов, размещенных в данной базе знаний. Все материалы предоставляются по принципу «как есть». Используйте их исключительно на свой страх и риск.
  • Все высказывания, мысли или идеи автора, размещенные в материалах данной базе знаний, являются исключительно его личным субъективным мнением и могут не совпадать с мнением читателей!
  • При размещении ссылок в данной базе знаний на интернет-страницы третьих лиц автор не несет ответственности за их техническую функциональность (особенно отсутствие вирусов) и содержание! При обнаружении таких ссылок, можно и желательно сообщить о них в комментариях к соответствующей статье.
1)
Запрос от 2021 года, двадцать первого, Карл, сегодня 23-й!!!
2)
Параметр «-y» автоматически положительно отвечает на все вопросы приложения.

Обсуждение

Ваш комментарий:
B V᠎ E X G​ G T S B P W P J X J T
 
Последнее изменение: 2023/03/18 13:37 — Николай Солошин