Зміст

Мапа обладнання та користувачів

В Ubilling починаючи з релізу 0.3.4 з'явилася можливість розміщувати на карті наявні світчі, точки доступу та інше активне мережеве обладнання, зареєстроване у відповідному довіднику. Сам модуль карт має мінімальні налаштування і керується за допомогою конфіга ymaps.ini. Для ввімкнення-вимкнення цього модуля існує опція SWYMAP_ENABLED конфігу alter.ini

ymaps.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&param=traffdiff"

Важливо

content/dn має існувати, бути порожньою, нікуди не сімлінкнутою директорією і мати права 777. Також очевидно потрібна ввімкнена опція DN_FULLHOSTSCAN.