Модуль NagVis в Icinga2
Общая
NagVis является удобным модулем визуализации карты сети. Позволяет создавать как малые карты, касаясь одного здания или комнаты так и карты на земном шаре, используя подложку сервиса карт Openstreetmap.
В данной статье рассматривается установка системы NagVis, ее настройка с использованием базы данных Icinga2 включая авторизацию средствами Icinga2
Подготовка к установке модуля.
Перед установкой удовлетворим зависимости
Для PHP5:
apt install rsync php-mbstring php5-sqlite
Для PHP7:
apt install rsync php7.0-mbstring php7.0-sqlite
Установка модуля
Скачать последнюю версию NagVis можно тут
Далее необходимо распаковать папку на сервере icinga2 и войти в нее.
Выполнить скрипт install.sh
и ответить на необходимые вопросы - в моем случае ответы были такие:
Please enter the path to the nagios base directory: /etc/icinga2
Do you want to use backend mklivestatus?: n (отвечаем "Нет")
Do you want to use backend ndo2db?: n (отвечаем "Нет")
Do you want to use backend ido2db?: y (отвечаем "Да")
Далее все ответы по умолчанию
https://itcrowd.top/nagvis#sigProIdb414d84655
После установки инсталятор создаст файл конфигурации для веб-сервер Apache2 в папке /etc/apache2/conf-available
- его необходимо перенести в папку /etc/apache2/sites-available
а после активировать
a2ensite имф_файла
Устанавливаем модуль NagVis для Iicinga2
Данный модуль позволяет интегрировать NagVis в веб-интерфейс Icinga2, а так же позволяет использовать автоматическую авторизацию при входе в систему мониторинга. Модуль можно скачать туcт.
После скачивания необходимо распаковать в папку /usr/share/icingaweb2/modules/
Далее модуль необходимо активировать в "Настройки - Расширения
"
Настройка NagVis
Настройка файла /usr/local/nagvis/etc/nagvis.ini.php
Необходимо изменить следующее:
[global]
authmodule="CoreAuthModIcingaweb2"
authorisationmodule="CoreAuthorisationModIcingaweb2"
logonmodule="LogonIcingaweb2"
;
[paths]
htmlcgi="/icingaweb2"
;
[defaults]
; This selects the backend_ndomy_1 defined below
backend="ndomy_1"
;
urltarget="_top"
hosturl="[htmlcgi]/monitoring/host/show?host=[host_name]"
hostgroupurl="[htmlcgi]/monitoring/list/hostgroups?hostgroup_name=[hostgroup_name]"
serviceurl="[htmlcgi]/monitoring/service/show?host=[host_name]&service=[service_description]"
servicegroupurl="[htmlcgi]/monitoring/list/servicegroups?servicegroup_name=[servicegroup_name]"
mapurl="[htmlcgi]/nagvis/show/map?map=[map_name]"
headermenu="0"
stylesheet="icingaweb-nagvis-integration.css"
;
[backend_ndomy_1]
backendtype="ndomy"
dbhost="localhost"
dbport=3306
dbname="Имя базы Icinga2"
dbuser="Имя пользователя для подключения к базе Icinga2"
dbpass="Пароль"
dbprefix="icinga_"
dbinstancename="default"
Интеграция PHP кода
В файле /usr/local/nagvis/share/server/core/functions/index.php
в самом начале файла, после строки <?php
вносим следующее:
/**
* Icinga Web 2 integration
*/
use Icinga\Application\EmbeddedWeb;
require_once 'Icinga/Application/EmbeddedWeb.php';
require_once EmbeddedWeb::start('/usr/share/icingaweb2', '/etc/icingaweb2')
->getModuleManager()
->getModule('nagvis')
->getLibDir() . '/nagvis-includes/init.inc.php';
Интеграция CSS
Необходимо скопировать в папку /usr/local/nagvis/share/userfiles/styles
файл icingaweb-nagvis-integration.css
, расположенный в папке public/css/
, скаченного модуля.
Создание меню в Icinga2
Для создания меню необходимо в папке /etc/icingaweb2/modules
создать подпапку nagvis
, в которой создать файл config.ini
с текстом:
[global]
default-map = demo-overview
# Map ID = Alias
[menu]
demo-germany = Germany
demo-ham-racks = Hamburg
Дополнительные настройки при использовании Icinga2 версии 2.2.0 и выше.
В файл /etc/icingaweb2/config.ini
вносим:
[cookie]
path = /
Связано это с тем, что браузер не передает кукисы сессий системе Nagvis.
После потребуется очистить cookies вашего браузера!
После всех операций необходимо выйти из Icinga2 в вашем браузере и перезапустить сервер Apache2.
Проделав все операции в Icinga2 появится пункт меню "Maps" где будут доступны демокарты.
Возможные ошибки и их исправление
Ошибка Javascript error occured: Uncaught ReferenceError: checkHideMenu is not defined
при открытии карты
Для ее устранения необходимо закомментировать или удалить строки в /usr/local/nagvis/share/frontend/nagvis-js/js/NagVisCompressed.js
if (checkHideMenu)
g_map.on('mousedown', checkHideMenu);
g_map.on('mousedown', context_handle_global_mousedown);
Скриншоты примеров создаваемых карт.
https://itcrowd.top/nagvis#sigProId945f591a9b
- Просмотров: 19262