В Ubilling починаючи з релізу 0.3.4 з'явилася можливість розміщувати на карті наявні світчі, точки доступу та інше активне мережеве обладнання, зареєстроване у відповідному довіднику. Сам модуль карт має мінімальні налаштування і керується за допомогою конфіга ymaps.ini. Для ввімкнення-вимкнення цього модуля існує опція SWYMAP_ENABLED конфігу alter.ini
; Координати центру мапи у форматі "широта, довгота". У разі порожнього CENTER буде використано гео-таргетинг. CENTER="" ; Мова інтерфейсу мапи - може бути, наприклад uk-UA або ru-RU LANG="ru-RU" ; Масштаб мапи за замовчуванням ZOOM=15 ; Тип мапи за замовчуванням, можливо, map, satellite, hybrid TYPE="map" ; Чи показувати мітку на мертвому обладнанні? DEAD_LABEL=1 ; Чи показувати мітку на живому обладнанні? ALIVE_LABEL=0 ; Чи використовувати рендер плейсмарків на canvas (дуже швидко, але бажано відключати підписи на мітках) CANVAS_RENDER=1 ; Масштаб, за якого відображатиметься мапа після кліка по "знайти пристрій на мапи" FINDING_ZOOM=17 ; Підсвічувати область під час пошуку обладнання FINDING_CIRCLE=1 ; Відключати відображення міток крізь canvas якщо на них присутні підписи (повільно) CANVAS_RENDER_IGNORE_LABELED=1 ; Сервіс мап за замовчуванням. Наразі підтримуються yandex, google і leaflet. MAPS_SERVICE="leaflet" ; Ключ JS API карт Google. ; Ось де його можна отримати: https://developers.google.com/maps/documentation/javascript/get-api-key?hl=ru GMAPS_APIKEY="YOUR_API_KEY_HERE" ;Ключ API карт Яндекса. Необов'язкова опція. Не тестувалася. ;YMAPS_APIKEY="YOUR_API_KEY_HERE" ;Кастомний провайдер мап Leaflet. ; Приклади: ; Mapbox: https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw ; OSM: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png ; Visicom: https://tms{s}.visicom.ua/2.0.0/planet3/base/{z}/{x}/{y}.png?key=YOUR_API_KEY ; Google roadmaps: http://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z} ; Google hybryd: http://{s}.google.com/vt/lyrs=s,h&x={x}&y={y}&z={z} ; Google satellite: http://{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z} ; Google terrain: http://{s}.google.com/vt/lyrs=p&x={x}&y={y}&z={z} ; KaminariTile cache server: https://your.tile.server.ua/kaminaritile/?t={s}_{z}_{x}_{y} LEAFLET_TILE_LAYER="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
Логіка відображення міток на мапі зав'язана на полі “Гео координати” для кожної одиниці активного мережевого обладнання. Для зручного розміщення об'єктів на мапі існує зручний редактор, що викликається лівим кліком миші в режимі “редагування”. Виглядає це так:
Координати у форматі “широта, довгота” слід вносити в поле “Гео координати” під час додавання або редагування обладнання:
Ось як це все має виглядати у фіналі:
Відповідно активне обладнання і обладнання, що не відповідає, відображається по-різному, з відповідними повідомленнями, зважаючи на дані, отримані з кеша опитування світчів, оновлюваного за таймаутом SW_PINGTIMEOUT за допомогою виклику swping з Remote API. Для періодичного опитування світчів можна додати наступний виклик API віддаленого виклику процедур в crontab, скажімо якось так:
*/20 * * * * /bin/ubapi "swping"
“Машина часу” мертвого обладнання також заповнюється тільки при оновленнях стану його, використовуючи вищевказаний виклик Remote API.
Також починаючи з релізу Ubilling 0.4.6 цей модуль уміє розставляти і показувати на мапі будинки, в яких мешкають ваші користувачі, а також проводити індикацію активності користувачів у цих будинках. Виглядає це наступним чином:
Опитування користувачів на жвавість відбувається за допомогою nmap а також аналізуючи зміни їхнього вихідного трафіку на колекторі. Робиться це за допомогою відповідного виклику API віддаленого виклику процедур
5 * * * * /bin/ubapi "fullhostscan¶m=traffdiff"
content/dn має існувати, бути порожньою, нікуди не сімлінкнутою директорією і мати права 777. Також очевидно потрібна ввімкнена опція DN_FULLHOSTSCAN.