Сегодня: 19 Июн, 2021
Заметки сисадмина

Интерактивная карта Zabbix

Все, кто знаком с Zabbix, знают, какие там карты сетей. Мне захотелось более "крутую" карту. Я начал искать и наткнулся на 1 очень интересную реализацию - Интерактивную карту.

Интерактивная карта Zabbix


Итак, саму карту я нашел вот тут. Там же есть описание на английском и там же ее можно скачать.

Что из себя представляет данная карта? Это карта местности, хотите Яндекс, хотите Гугл, хотите OpenStreet. На карту наносятся наши объекты и вы можете мониторить их видя где они находятся и в каком они состоянии. Есть ли там тригерры или нет. Вот примеры данной карты:

zabbix-imap

zabbix-imap1

Установка данной карты очень простая.

Установка zabbix imap


  1. Необходимо скачать саму карту и положить ее в папку zabbix-морды. Какую именно скачивать зависит от вашей версии заббикс-сервера. Вот ссылки для 2.2-2.4 и 3.0-3.2 и 3.4
  2. Редактируем файл include/menu.inc.php добавляя туда для версии 2.2-.2.4 - в самый конец вставить:
    require_once dirname(__FILE__).’ /../imap/menu.inc.php’ ;

    для версии 3.x примерно на 314 строке находим "$denied_page_requested = false;" и перед этой строчкой вставляем:
    require_once dirname(__FILE__).’ /../imap/menu3.inc.php’ ;

    Сохраняем и выходим.
  3. Теперь у нас в мониторинге появилось меню "Интерактивная карта".
Все, основное уже есть и работает. Есть множество дополнительных настроек, все они с комментариями в файле, не вижу смысла их еще раз переписывать, я думаю сами почитаете. чтобы они заработали, необходимо выполнить следующее: найдите в папке imap файл settings.js.template, переименуйте в settings.js в данном файле теперь можете менять настройки.

Так же можно устанавливать свои значки на устройства.

Чтобы работали связи между узлами, необходимо добавить пару таблиц в базу:

Изменения в базе данных для работы связей


Для MySQL


Для работы связей между хостами нам нужно добавить две таблицы в базу данных Zabbix.

В папке imap лежит файл tables.sql Вы можете открыть phpmyadmin, выбрать базу данных Zabbix, и выбрать этот файл в разделе Import

Второй способ для любителей командной строки:

mysql -u user -p zabbixbd < /usr/share/zabbix/imap/tables-mysql.sql
Замените zabbixbd на название таблицы с данными zabbix, user на имя пользователя с правами добавления таблиц в базу и введите пароль.

Для PostgreSQL


От рута запустить
sudo -u zabbix psql -U zabbix -W -d zabbix < table-postgresql.sql
где

sudo -u zabbix - действия от имени системного пользователя zabbix (иначе PosgreSQL не аутентифицирует пользователя),

-U zabbix - владелец БД,

-d zabbix - название БД.

Размещение объектов на карте


Давайте рассмотрим как же разместить объекты на карте. В первую очередь необходимо в настройках узла выставить "инвентарные данные" в положение "вручную".

Далее у нас есть 2 способа размещения объектов.

Первый способ - прописывание точных координат в самих инвентарных данных. Для этого листаем вниз и находим 2 поля "широта" и "долгота" и в них вписываем координаты.

Второй способ - размещение непосредственно на самой карте. Тут мы переходим на интерактивную карту и справа видим надпись "Узлы сети". При наведении на нее мышкой раскрывается список узлов. Те узлы, которые еще не нанесены на карту будут перед названием иметь значок "мишень", которые уже нанесены на карту - соответственно будут без этой иконки.

Чтобы разместить узел, нажимаете на эту "мишень" и далее просто тыкаете левой кнопкой мыши на то место, куда необходимо разместить данный узел.

Вот и все. На этом размещение узла закончено. Если вы не будите переставлять узел в другое место, то можно вернуть инвентарные данные опять в положение "Авто", если это Вам требуется.

Связи между узлами на интерактивной карте


Какая же карта узлов сети, если между ними нету связей? Давайте рассмотрим как это сделать.

На самом деле делается это очень просто!

Находим на карте один из узлов сети, который будет участвовать в связи с другим/другими (все узлы, которые будут участвовать в связи должны быть предварительно нанесены на карту) и кликаем на него левой кнопочкой мыши.

Тут мы можем (слева на право):

  1. Задать новое расположение на карте
  2. Убрать узел сети с карты
  3. Установить связь (что нам и потребуется)
  4. Задать тип оборудования (об этом поговорим чуть ниже)
Выбираем "Установить связь".

Перед нами открывается окно выбора со всеми нанесенными на карту объектами. Можно найти узлы по имени или вписать его имя в строку поиска вверху. Связь можно установить как с 1 объектом, так и с несколькими сразу. Для этого всего лишь необходимо выбрать 1 или более узлов, отметив их в "чекбоксе"

Нажимаем кнопочку "Save" и наслаждаемся результатом. Вот в принципе и все.

Выбор типа оборудования (свои иконки на карте)


Для установки своей иконки требуется залить Ваши значки в папочку:
/usr/share/zabbix/imap/hardware/

После этого переходим к нашему узлу, кликаем на него левой кнопочкой мыши и выбираем последний значок "Задать тип оборудования" (похожа на микроконтроллер)

В открывшемся окошке видите ваши иконки, которые вы закачали по пути выше (к примеру):

Название отображается так же как и вы назвали иконку.

Я себе брал иконки тут - http://www.iconarchive.com

Собственно на этом все. Пробуйте, тестируйте, экспериментируйте.

Заключение


Вот в принципе и все! Надеюсь данная статья была полезна и у вас все получилось. Если возникли трудности, вы можете написать в комментарии, я постараюсь ответить на ваши вопросы.

Поделиться
Комментарии
Сергей 20.08.2017 11:23
Огромное спасибо!! Это просто великолепная статья, всё получилось с первого раза - именно то, что искал! Спасибо!
Admin 20.08.2017 14:36
Рад, что Вам помогла данная статья! Заходите к нам еще, может быть еще что пригодится.
Сергей 06.12.2017 07:57
Добрый день! Получилось привязать карту к zabbix, но не получается привязать узлы сети? Пожалуйста, помогите, как добавить узлы на карту?)
Виталий 06.12.2017 08:47
Для начала необходимо в узле сети выставить инвентарные данные с авто на "вручную" и после этого можно выставить координаты вручную в инвентарных данных или уже на самой карте можно будет его таскать. Чуть позже добавлю тут инструкцию, как располагать узлы сети на карте.
Сергей 06.12.2017 09:29
Спасибо, все получилось. Осталось выяснить, как получать связи между оборудованием и добавлять на карту свои изображения) Ждем инструкцию)
Виталий 06.12.2017 09:58
Инструкция готова )
Сос 27.12.2017 15:27
я поставил как вы писали но тагда у меня поивляется ошибка http 500 почему?
Виталий 28.12.2017 06:29
Именно при переходе на карту? Мало вводных... Какая версия Zabbix, под какую версию качали карту. Какая ОС, куда положили карту?
Сос 28.12.2017 08:22
нет вовходе zabbix версия 3.4 ОС centos7.4 Карту положили в cd/usr/share/zabbix/ а вы можете точно обеснить что мне зделать с начало?
Виталий 28.12.2017 08:33
https://github.com/RussianFox/imap/tree/Zabbix3.4 - под 3.4 надо качать эту ветку (подправил ссылки в статье)
Сос 28.12.2017 08:58
НУ Я ЭТО И СКАЧАЛ ПОСЛЕ РЕДАКТИРОВАНИЯ ЗАББИХ ВООБШЕ НЕ ОТКРИВАЕТ
Виталий 28.12.2017 09:27
Тогда Вы что то делаете не верно, раз он так себя ведет. Возможно получить ssh доступ к вашему серверу, чтобы посмотреть что Вы делаете и что происходит? Если да, ответьте мне на admin@sysadmin-note.ru постараюсь помочь
Сос 28.12.2017 11:04
могу дать доступ через teamviewer
Виталий 28.12.2017 11:09
Это тоже вариант
Сос 28.12.2017 11:22
версия 13
Виталий 28.12.2017 12:00
Подключился, помог. Надеюсь у Вас дальше получится все сделать!
Сос 28.12.2017 14:29
ВИТАЛИЙ ТЫ МНЕ ОЧЕНЬ ПОМОГ. ДАЖЕ ЗАРАБОТАЛО ТО ЧТО НЕ РАБОТАЛО. БОЛЬШОЕ СПАСИБО, ОЧЕНЬ ПРИЗНАТЕЛЕН.
Виталий 28.12.2017 16:48
На здоровье. Я рад, что у меня получилось Вам помочь!
Сос 29.12.2017 06:07
Виталий мы добавили несколько пользователей и изменили пароль админа а сегодня не можем войти не с одного user-а можешь чем-то помочь? Заранее спасибо.
Виталий 29.12.2017 07:54
Ответил на почту
Сос 30.01.2018 14:06
добрый день Виталий. У нас пропала интерактивная карта в zabbix. Возможно ли восстановить Ее с размешенными обектами.
Виталий 30.01.2018 14:22
Добрый день. Возможно вы обновили пакет frontend. Просто выполните: Редактируем файл include/menu.inc.php добавляя туда dirname(__FILE__).&/../imap/menu.inc.php&; для версии 3.x примерно на 314 строке находим «$denied_page_requested = false;» и перед этой строчкой вставляем: require_once dirname(__FILE__).&/../imap/menu3.inc.php&; И все обратно вернется.
Сос 30.01.2018 14:33
В прошлый раз вы установили ее. можете подробно показать что где надо заменить?
Виталий 30.01.2018 18:54
Ну в инструкции же подробно описано. Если у вас не получается, пришлите мне на почту ваш ID и пароль от тиимвьювера на admin[собака]sysadmin-note.ru
Сос 31.01.2018 06:36
Премного благодарен. В очередной раз выручили.
Paulo Sergio 07.02.2018 17:09
Would you help me ? With this tool I can use other maps as a figure.png? Or just by geolocation? I wanted to use a proper map for when some trigger alarms just with the mouse, it would show me a window with all the triggers of the host or some hostgroup It&s possible ?
Виталий 07.02.2018 18:07
Hey. Here you can apply your geolocation layers. More details are better to ask on the zabbix forum. It&s all i know for this question
Kat 15.02.2018 16:34
Very nice work! I was stuck with how to add hosts in the map. - Host inventory was disabled under the hosts.- Now i want to link the hosts and ideally to have the link utilisation/latency visible (like on normal maps - where you add a macro label). Do you know if this is possible?
Алексей 30.03.2018 06:52
Добрый день. Не подскажете почему у меня на интерактивной карте нету карт от google?
Виталий 30.03.2018 08:41
Добрый день. Старнно, они "по дефолту" есть. А какие у Вас есть слои вообще? И какая версия zabbix у Вас?
Алексей 30.03.2018 08:46
Версия забикса Zabbix 3.2.11 (CentOS 7). Слои которые доступны: OpenStreetMap OpenCycleMap Stamen B&W Kosmosnimki.ru OSM Yandex Yandex Satellite Yandex Hybrid
Виталий 30.03.2018 09:34
Очень странно. Попробуйте написать в телеграмм канале "Zabbix IMAP testing", я думаю там подскажут, возможно у кого то возникали такие же проблемы. Так же, в этой группе находится сам разработчик данной карты.
Алексей 06.04.2018 08:30
Добрый день. При загрузке карт гугл выбивает ошибку в консоли: Google Maps API error: MissingKeyMapError Google Maps API warning: NoApiKeys Не подскажете в каком файле нужно вписать ключ API?
Кирилл 24.04.2018 13:15
Смени значение примерно 654-ой строки "maps.google.com/maps/api/js?" в файле /usr/share/zabbix/imap/imap.php, прописав после js? параметр key=YOURKEY где YOURKEY это ключ полученный отсюда. https://developers.google.com/maps/documentation/javascript/get-api-key === Админ подскажи пожалуйста группу в телеграмме RussianFox&a.
Виталий 24.04.2018 14:13
Не могу найти, где точное имя, но попробуй вот так найти: Zabbix IMAP testing По крайней мере она называется так
Эдуард 23.05.2018 09:10
Добрый день. Кто может подсказать, как мне ограничить по размерам (мне нужен только один город) уже существующую карту(слой)?
Виталий 24.05.2018 06:23
По размеру ограничить ее нельзя. Можно задать в /usr/share/zabbix/imap/settings.js начальную точку и масштаб, чтобы открывался сразу нужный Вам участок карты
Эдуард 24.05.2018 06:44
Понял, а может есть инструкция как подгрузить свой слой?
Александр 24.05.2018 21:25
Здравствуйте, после того как вставляю строку require_once dirname(__FILE__).’/../imap/menu3.inc.php’; пропадает веб( можете помочь??
Виталий 25.05.2018 06:08
Здравствуйте! Версия zabbix? Возможно Вы что то не так вставляете? Не в ту строчку? Проверьте пожалуйста еще раз
Александр 25.05.2018 06:49
Версия 3.4.9 Уже пересмотрел много раз, и не в какую ( В логе пишет синтаксическая ошибка
Виталий 25.05.2018 10:18
Странное дело... Можно через TeamViewer глянуть в принципе. Аж самому интересно стало... Если хотите, можем связаться с вами через почту: admin@sysadmin-note.ru
Andranik 29.05.2018 09:43
Здравствуйте, в zabbix-е после того как вставляю строку require_once dirname(__FILE__).’/../imap/menu3.inc.php’; пропадает веб, в чем может бить проблема?
Виталий 29.05.2018 10:50
1) Возможно скопировано с лишним пробелом или знаком препинания 2) Предварительно не разархивировали папку IMAP в каталог WEB заббикса Это первое что приходит в голову и с чем обычно сталкивался (сам лично)
Andranik 29.05.2018 11:09
может я что-то не так сделал , если не сложно смотрите через teamviever???
Виталий 29.05.2018 16:53
напишите мне на почту admin@sysadmin-note.ru как с вами можно связаться (быстрее чем почта, например телеграм), попробуем глянуть!
at85nhk 29.08.2018 02:37
Огромное спасибо за эту статью и Ваш труд!
Игорь 11.09.2018 08:45
А подскажите пожалуйста, как подгрузить личную карту ? Не динамическую.
Andrey 15.11.2018 14:30
Почему-то не показывает узлы на интерактивной карте. У всех узлов стоит ВРУЧНУЮ и даже нескольким поставил координаты. Может в 3.4.15 zabbix что то поменялось? Или подскажите какая функия (запрос) выбирает узлы, я сам сравню с базой что там не хватает ? Заранее спасибо!
Виталий 15.11.2018 21:14
По запросу не подскажу, но в 3.4.15 у меня работает все без проблем. Где то что то сделали не так...
Dmitri 16.11.2018 03:33
Добрый день! А планируется интерактивная карта для 4 версии zabbix?
Виталий 16.11.2018 15:12
Добрый день! Ну вроде как по слухам - то планируется, но пока тишина... Как только появятся новости, я обязательно добавлю в статью ссылку на версию для 4-й версии. Так же можете сами следить на Гитхабе
Виктор 09.04.2019 16:39
Версия 3.4 в zabbix 4.0 не работает. Вываливает кучу ошибок. А уже вышла 4.2. Есть ли план на портирование imap под 4.x?
Виталий 10.04.2019 08:57
Добрый день. https://sysadmin-note.ru/zapuskaem-interaktivnuyu-kartu-zabbix-na-versii-zabbix-4-x/ По поводу портирования - ожидаем... Общался с разработчиком данной карты, есть у человека некие проблемы со свободным временем...
Oven 25.06.2019 15:25
Очень хотелось бы для Zabbix 4.2 такую штуку. Очень.
Виталий 27.06.2019 07:49
Она работает на Версии 4.2 но только с ошибками в фильтрах, пока, к сожалению так. Ожидаем, возможно автор все же допилит ее для 4.x версии
Oven 29.06.2019 11:53
Странно. Нашел строку «$denied_page_requested = false;» Выше неё пустая строка. На место этой пустой строки аккуратно вставил: require_once dirname(__FILE__).&/../imap/menu3.inc.php&; Без лишних пробелов. После этого Zabbix не запускается. Если убрать вставленную строку - снова работает. Zabbix 3.4, imap качал для этой версии. Архив распаковал и содержимое вставил в каталог /usr/share/zabbix.
Виталий 29.06.2019 13:37
Да, действительно странно. Только позавчера копировал от сюда же эту строчку - все работает...
Oven 29.06.2019 19:48
Нужно сделать так как на скриншоте? https://prnt.sc/o8enl2
Виталий 01.07.2019 11:16
https://prnt.sc/o8zpx0 Вот скриншот, как это выглядит у меня на 4.2 На 3.x Было так же (только возможно другой номер строки)
Oven 03.07.2019 06:29
Скажите пожалуйста, на какой максимально новой версии Zabbix у вас работала Imap без ухищрений (без скрытия ошибок)? Может быть версия 3.5, например... У меня тут с установкой Zabbix 3.4 какая-то очень странная тема началась.
Oven 03.07.2019 07:14
Хотя да... Никакой версии 3.5 не существует))
Виталий 04.07.2019 06:22
Да, 3.4 из серии 3.x последняя и на ней карта работает нормально, без всяких ошибок. Что не так у Вас с установкой 3.4 сервера?
Oven 03.07.2019 09:20
Скажите пожалуйста, какая у вас версия PHP?
Виталий 04.07.2019 06:21
# php -v PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51)
Oven 03.07.2019 09:41
Zabbix 3.4 не хочет устанавливаться ни в какую. Решил попытать удачу с версией 4.0. Поставил Zabbix, установил imap. Чтобы отключить сообщения об ошибке пришлось закоментировать немного другие строки. Ошибки пропали, но на весь экран карта не разворачивает. 552 строка видимо не отрабатывает. http://prntscr.com/o9xz3s
Виталий 04.07.2019 06:23
Не могу тут подсказать. Описывал то, что сработало у меня...
Ivan 10.10.2019 05:57
Нужно немного исправить файл imap.js В конце файла, в функции mapSize строку nheight = jQuery(window).innerHeight() - jQuery(&.footer&).outerHeight(true) - jQuery(&#imapworkarea&).offset().top - jQuery(&.msg-bad&).height() - (jQuery(&.article&).innerHeight() - jQuery(&.article&).height()); заменить на nheight = jQuery(window).innerHeight() - jQuery(&#imapworkarea&).offset().top - 10;
Артем 06.11.2019 05:45
Добрый день. Подскажите, как вылечить вывод карт на пол-экрана? После того, как закомментировал строки в imap.js, вставил новую - nheight = jQuery(window).innerHeight() — jQuery(‘#imapworkarea’).offset().top — 10; Вывод карты пропадает совсем.
Артем 06.11.2019 08:32
Нашел решение - костыль, но тем не менее работает. Нужно поправить в imap.php строку Было Стало
Артем 06.11.2019 08:36
Было div id=mapdiv style="width:100%; height:300px;" Стало div id=mapdiv style="width:100%; height:800px;"
Роман 06.01.2020 04:58
В дополнение к костылю div id=mapdiv style=»width:100%; height:78vh;» // для css3
10.07.2019 06:10
Всем привет! поставил imap на 4.2 выскочила куча ошибок, кто подскажит, как по фиксить? Undefined index: event_ack_enable [ in imap.php:201] Use of undefined constant EVENT_ACK_DISABLED - assumed &EVENT_ACK_DISABLED& [ in imap.php:201] Use of undefined constant ZBX_ACK_STS_ANY - assumed &ZBX_ACK_STS_ANY& [ in imap.php:202] Use of undefined constant EVENTS_OPTION_NOEVENT - assumed &EVENTS_OPTION_NOEVENT& [ in imap.php:203] Undefined index: event_ack_enable [ in imap.php:206] Use of undefined constant EVENT_ACK_DISABLED - assumed &EVENT_ACK_DISABLED& [ in imap.php:206] Undefined index: fullscreen [ in imap.php:554] Undefined index: fullscreen [ in imap.php:561] Undefined index: profileIdx [imap.php:592 → CView->render() → include() in include/views/common.filter.trigger.php:28] Undefined index: active_tab [imap.php:592 → CView->render() → include() in include/views/common.filter.trigger.php:29] Undefined index: show_suppressed [imap.php:592 → CView->render() → include() in include/views/common.filter.trigger.php:130]
Виталий 10.07.2019 06:21
На 4.2 пока никак. Ожидать только обновление данной карты. Либо использовать версию заббикса 3.4
Олег 15.07.2019 11:07
Всем Здравствуйте. После добавления строчки require_once dirname(__FILE__).&/../imap/menu3.inc.php&; больше zabbix не открывается, а если ее убрать то открывается. Похоже судя по всему не у меня одного такая проблема. Может кто сможет подсказать куда смотреть ?
Виталий 16.07.2019 14:28
Либо скопировали какой нить лишний пробел или еще что то... Либо не туда вставляете. Попробуйте вручную переписать данную строчку
Роман 31.12.2019 10:11
Проверь права на папки и файлы, у меня решилось
kxirillvp 01.08.2019 16:33
Вы абсолютно правы. В этом что-то есть и мне кажется это очень хорошая мысль. Полностью с Вами соглашусь.
slobodinya 02.08.2019 12:19
Сердечное Вам спасибо за Вашу помощь.
Владислав 06.03.2020 12:35
Ребят кому надо 4.2 - https://yadi.sk/d/W00qnJPO9S-q9w
Максим Орлов

Ваш покорный слуга - компьютерщик широкого профиля: системный администратор, вебмастер, интернет-маркетолог и много чего кто. Вместе с Вами, если Вы конечно не против, разовьем из обычного блога крутой технический комплекс.

Оставить комментарий

Ваш Email адрес не будет опубликован. Все обязательные поля обозначены *