Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Описание сервиса

Eltex-Bob - высоконагруженный RESTful API сервис,   предназначенный для выгрузки  информации о  ТД в формате JSON  в систему мониторинга. По умолчанию к сервису можно обратиться по порту 9190, выполнив GET запрос.
Для получения информации о количестве и состоянии устройств, требуется доступ до БД MYSQL.
Для защиты от DDoS, сервис имеет собственный кеш, который позволяет не нагружать БД, список ТД сервис запрашивает раз в 1 час. Информация о доступности устройств, обновляется раз в минуту.

Доступные методы API:

GetAPList Предоставляет список ТД в формате JSON, который содержит:
APHOSTNAME - mac адрес устройства;
APVISIBLENAME - имя устройства;
APGROUP - сформированное по справочнику место расположение ТД;
APRTCGROUP - домен , в котором располагается устройство (за исключением скрываемой части - domain_search.regex, см. Настройки сервиса);
FULLADDRESS - графа из справочника с адресом рассположение ТД.

Пример :

{
    "data": [
        {
            "{#APHOSTNAME}": "a8:f9:4b:b4:99:60",
            "{#APVISIBLENAME}": "WEP-12ac",
            "{#APGROUP}": "Байкальский банк/Саха (Якутия)/Доп.офис №178-758",
			"{#APRTCGROUP}": "Dalniy_Vostok/Habarovskiy_filial/Evreyskaya_AO/Obluche/Sberbank/4157-081_Kuznechnaya_11a",
			"{#FULLADDRESS}": "678100, г.Олекминск, ул.Молодежная, 20741"
        },
	]
}


GetAPDetail Детализация информации по ТД , которая содержит :

"ip" - ip адрес устройства
"office" - значение  для найденного ВСП из справочника
"city" - значение  для найденного ВСП из справочник
"firmware-version" - версия ПО
"serial-number" - серийный номер устройства
"vsp" - значение  для найденного ВСП из справочник
"full-address" - значение  для найденного ВСП из справочник


Пример:

{
    "ip": "192.168.6.18",
 	"office": "Доп.офис №178-758",
	"city": "г.Березовский",
	"firmware-version": "1.16.0.163",
    "serial-number": "WP01000177",
	"vsp": "4157-081"
	"full-address": "678100, г.Олекминск, ул.Молодежная, 20741"
}

GetAPAvailable Доступность ТД, которая содержит:

"available" доступность ТД, где 0 - ТД доступна, 1 - ТД недоступна
"uptime" - время доступности ТД, в секундах

Пример:

{
    "available": 0,
    "uptime": 67370
}

GetAPPerformance Метрики ТД,  которые содержат:

"wifi_users" - количество подключенных  пользователей

Пример:

{
    "wifi_users": "5"
}

Для авторизации в сервисе доступно 2 способа:

  • http-basic авторизация , включается в настройках сервиса
  • ACL список в настройках конфигурации nginx, включается в конфигурационном файле nginx

Настройки

 Для ограничения доступа к сервису по ip адресу, можно выполнить настройку nginx сервера с помощью ACL.  Access Control List  добавляется в  конфигурационный файл nginx, пример :

где deny - ip address с которого запрещен доступ
allow - ip address с которого разрешен доступ

в примере,  доступ с IP адреса 192.168.1.3 и 127.0.0.1 разрешен, остальным запрещен.

location /api { 
	allow 192.168.1.3/24; 
	allow 127.0.0.1; 
	deny all; 
}

Также, если используется nginx для доступа к сервису bob, то следует настроить проксирование


server { 
	listen 80; 
	server_name bob; 
	location /api/ { 
		proxy_pass http://localhost:9190/; 
		proxy_set_header Host $host; 
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
		proxy_set_header X-Real-IP $remote_addr; 
		proxy_redirect default; 
	}
}

Настройки сервиса:

Основной конфигурационный файл находится по адресу  /etc/eltex-bob/application.properties:

# The Datasource Mysql properties
spring.application.name=bob
#Адрес сервера с базой mysql от EMS
spring.datasource.url=jdbc:mysql://localhost:3306/eltex_ems?useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=javauser
spring.datasource.password=javapassword

# Common properties
#domain_search.mask=% 
domain_search.mask=%.ap.root - домен, в по которому будет производиться выгрузка. Включает в себя дочерние домены

domain_search.regex=^root/Ap/(.*)$  - часть домена которая будет скрыта при выводе результата
domain_search.replacement=$1

mac.splitter=: - разделители октетов в мак-адресе (по умолчанию ":")


auth.enabled=true - включение авторизации по логин-паролю, false - выключено
auth.username=eltex - логин, для авторизации на сервисе bob
auth.password=eltexeltex - пароль для авторизации сервисе bob

excel.config.file=/etc/eltex-bob/excel_config.yaml - конфигурационный файл для работы со справочником ВСП.

server.port=9190 - порт, который слушает сервис


Конфигурационный файл для работы со сравочником - /etc/eltex-bob/excel_config.yam:

vspSheetName: В конкурс - имя страницы для анализа
vspExcelFile: /home/vagrant/list2.xlsx - путь до файла

type: TITLE - параметр определяет режим работы с таблицей. TITLE - поиск колонок будет происходить по их заголовкам, NUMBER - поиск колонок будет происходить по их порядковому номеру 0,1,...
columns:
  vsp: Номер ВСП - в этой колонке происходит поиск ячейки с номером ВСП совпадающим со значением ВСП из домена, например в домене .../Sberbank/4157-081_Kuznechnaya_11a..., это "4157-081"   
  bank: Территориальный банк          \
  region: Субъект РФ                   - ячейки этих столбцов будут использованы для составления APGROUP
  office: Наименование подразделения  /
  address: Фактитческий адрес Объекта  -  значение этого поля из этой колонки попадает в FULLADDRESS в выводе GetAPList

## Пример конфигурации по номерам колонок
#vspSheetName: В конкурс
#type: NUMBER
#columns:
#  vsp: 3
#  bank: 1
#  region: 10
#  office: 2
#  address: 7

По умолчанию, сервис использует 10 коннектов до БД, при необходимости можно увеличить, добавив в конфигурационный файл spring.datasource.hikari.maximum-pool-size=20, где 20 число коннектов.

Файл инициализации сервиса располагается по адресу: /etc/default/eltex-bob .





  • Нет меток