NagVis — это аддон визуализации для известной системы мониторинга Nagios. NagVis отображает хосты и сервисы которые мониторятся при помощи Nagios в удобной форме, позволяет удобно располагать их на карте, устанавливать на карту своё фоновое изображение (например: фоткаем серверную, растаскиваем ярлыки по серверам и радуемся наглядности:), позволяет содержать несколько карт с индивидуальными настройками, легко добавлять и удалять элементы и многое другое.
Содержание:
Перед установкой необходимо установить дополнительное ПО для совместной работы NagVis и Nagios. Есть несколько программ подходящих для этого — mklivestatus (рекомендуется по умолчанию начиная с версии NagVis 1.5) и NDOUtils (для работы через БД).
По моему мнению, если нет особых требований работать через БД, лучше использовать MK Livestatus, т.к. данная программа берёт данные непосредственно из процессов Nagios, что увеличивает скорость отображения событий и к тому же рекомендуется по умолчанию разработчиками NagVis.
К тому же NDOUtils мне так и не удалось заставить работать, в то время как с MK Livestatus не возникло трудностей.
Далее все описанные действия выполнялись на ОС Centos 7.1 .
Установка MK Livestatus
Вот инструкция на официальном сайте.
Скачиваем с официального сайта последнюю версию программы mk-livestatus. На сайте мне так и не удалось найти ссылку на страничку с исходниками, но как всегда меня выручил Google)))
1 2 3 4 5 6 7 |
cd /usr/local/src wget http://mathias-kettner.com/download/mk-livestatus-1.2.6p14.tar.gz tar -xzf mk-livestatus-*.tar.gz cd mk-livestatus-* ./configure --with-nagios4 make make install |
Правим nagios.cfg и редактируем строки:
1 2 3 4 |
vi /usr/local/nagios/etc/nagios.cfg event_broker_options=-1 broker_module=/usr/local/lib/mk-livestatus/livestatus.o /usr/local/nagios/var/rw/live |
Рестартуем Nagios:
1 |
systemctl restart nagios |
При перезапуске Nagios должен создать файл /usr/local/nagios/var/rw/live .
Проверим правильно ли запустился:
1 |
less /usr/local/nagios/var/nagios.log |
Должна быть строка:
Event broker module ‘/usr/local/lib/mk-livestatus/livestatus.o’ initialized successfully.
Установка NagVis
Устанавливаем необходимые модули php:
1 2 |
yum -y install php-gd php-mbstring php-session php-json php-pdo pdo-sqlite \ php-xml php-sockets php-mysql graphviz |
Скачиваем и распаковываем последнюю версию NagVis:
1 2 3 |
cd /usr/local/src wget http://www.nagvis.org/share/nagvis-1.8.5.tar.gz tar -xvzf nagvis-1.8.5.tar.gz |
Переносим файлы и переходим в папку:
1 2 |
mv nagvis-1.8.5 /usr/local/nagvis cd /usr/local/nagvis |
Далее запускаем установочный скрипт из распакованной директории, отвечаем на вопросы установщика и получаем готовый к использованию NagVis.
1 2 |
chmod +x install.sh ./install.sh |
После установки вы получите доступ к web-интерфейсу по адресу http://<nagiosserver>/nagios/ , логин и пароль admin.
Что бы изменить доступ к web-интерфейсу нужно расскоментировать следующие строки:
1 2 3 4 |
AuthName "NagVis Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user |
Где в поле AuthUserFile указать путь к файлу где хранятся аутентификационные данные для доступа к Nagios или путь к отдельно созданному файлу для доступа к NagVis:
1 |
htpasswd -c /usr/local/nagvis/etc/htpasswd.users nagvisadmin |
Не забываем перезапускать web-сервер после изменения в конфигурации:
1 |
systemctl restart httpd |
!!!ВАЖНО!!! Конфиг для нашего web-интерфейса /etc/httpd/conf.d/nagvis.conf написан для версии web-сервера Apache 2.2, если у вас версия Apache 2.4 то необходимо отредактировать 2 строки:
1 2 |
Order allow,deny Allow from all |
заменить на:
1 |
Require all granted |
Подробнее о изменениях в синтаксисе конфигурационных файлов Apache смотреть здесь.
Ручная установка NagVis
Скопируем стандартный файл конфигурации /usr/local/nagvis/etc/nagvis.ini.php-sample:
1 |
cp etc/nagvis.ini.php-sample etc/nagvis.ini.php |
Теперь отредактируем следующие строки:
1 2 3 4 5 |
vi /usr/local/nagvis/etc/nagvis.ini.php [backend_live_1] backendtype="mklivestatus" socket="unix:/usr/local/nagios/var/rw/live" |
Путь socket=»unix:/usr/local/nagios/var/rw/live» тот же, что и в broker_module из nagios.cfg.
Далее настраиваем доступ к web-интерфейсу.
Скопируем файл конфигурации для web-сервера etc/apache2-nagvis.conf-sample в директорию с файлами конфигурации web-сервера /etc/httpd/conf.d:
1 |
cp etc/apache2-nagvis.conf-sample /etc/httpd/conf.d/nagvis.conf |
Теперь необходимо отредактировать скопированный файл, в котором надо заменить все @[email protected] на /nagvis и @[email protected] на /usr/local/nagvis/share.
А также, как было сказано выше, заменить 2 строки:
1 2 |
Order allow,deny Allow from all |
заменить на:
1 |
Require all granted |
и расскоментировать строки для изменения доступа по умолчанию к web-интерфейсу:
1 2 3 4 |
AuthName "NagVis Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user |
О том что указывается в поле AuthUserFile было сказано выше.
Далее необходимо выставить права на папку с NagVis. Владельцем этой и всех вложенных папок необходимо сделать пользователя от имени которого запускается web-сервер, в моём случае это пользователь apache:
1 |
chown apache:apache /usr/local/nagvis -R |
Перезапускаем web-сервер:
1 |
systemctl restart httpd |
После этого NagVis будет доступен по адресу http://<nagiosserver>/nagios/ .
Настраивать ваши карты Вы можете как в web-интерфейсе (для модификации объекта на карте не забываем сделать «unlock» на нём из контекстного меню мыши) так и в конфигурационных файлах из /usr/local/nagvis/etc/maps/ , подробнее, о том, какие значения доступны в конфиг файлах смотреть Map Config Format Description.
Если нужно подробнее описать процесс настройки карт пишите в комментариях.
Заметки
Отображение правильного времени нужно установить правильную timezone для PHP:
1 2 3 |
vi /etc/php.ini date.timezone = Europe/Kiev service httpd restart |
Спасибо, мэн за кошерный ман! 🙂
Долго мучился с NDOUtils, но так же запустить его не удалось. Потом нашёл ваш ман для mklivestatus. На сайте проекта нашёл более новую версию 1.2.8p1, но с ней возникли проблемы при компиляции (make): /usr/bin/ld: cannot find -lstdc++ Так и не понял, чего ему не хватило. А потом решил попробовать версию, что ставили вы: 1.2.6p14 — всё прошло на-ура… Так что, ваш ман поместил себе в закладки! Спасибо! 🙂
Спасибо за такой теплый отзыв) Старался описать всё как можно подробней) Рад что пригодилось)))
Отличная статья, спасибо! В предустанавливаемых модулях не хватает php-xml, для Ubuntu точно. При проверке перед инсталляцией не находит его. Добавьте или оговорочку сделайте.
mk-livestatus 1.2.8p23 — все работает!
Если кто смотрел мануал на офсайте нагвиза, то там прединсталляционные пакеты для php 5 версии, внимательнее!
Спасибо! Добавил))
Доброго времени суток!
И снова по вашему ману установил Нагвис. Правда, без проблем в этот раз почему-то не обошлось…
При попытке создать на карте какой-либо объект (Add Icon -> Host) вываливает длинюще сообщение с ошибкой:
Failed to get objects: Error: (0) Undefined property: CorePDOHandler::$dataURL: /nagvis/server/core/ajax_handler.php?mod=Map&act=addModify&show=MEN-Huawei&type=host&x=1215&y=330&_ajaxid=1527517276 File: /usr/local/nagvis/share/server/core/classes/CorePDOHandler.php Line: 306
#0
И так далее.
Не доводилось ли вам сталкиваться с подобной ошибкой?
Спасибо!
Разобрался сам…:)
Options -> General Configuration -> вкладка Object Defaults -> backend: выбрать live_1
У меня не заработало на Ubontu 18 как минимум по двум причинам:
1. Работает ТОЛЬКО с mk-livestatus-1.2.6p14.tar.gz Все поздние версии не инсталлируются.
2. Не работал веб. Оказалось файл nagvis.conf проинсталлился в /etc/apache2/conf-available , скопировал его в /etc/apache2/sites-enabled только тогда заработал.