Page tree
Skip to end of metadata
Go to start of metadata

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

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

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

  • http://<<ip_address>>:<<port>>/GetAPList Список ТД в формате JSON
  • http://<<ip_address>>:<<port>>/GetAPDetail/{MAC_ADDRESS} - Детализация информации по ТД
  • http://<<ip_address>>:<<port>>/GetAPAvailable/{MAC_ADDRESS} - Доступность ТД
  • http://<<ip_address>>:<<port>>/GetAPPerformance/{MAC_ADDRESS} - Метрики по ТД

GetAPList

Предоставляет список ТД в формате JSON, который содержит:

  • apID - mac адрес устройства;
  • apName - имя устройства;
  • grCity - Город
  • grRegion - Область/регион
  • grTB - Территориальный банк
  • vspAddress - графа из справочника с адресом расположение ТД.
  • vspNumber - Номер ВСП
  • apGroup - сформированное по справочнику месторасположение ТД;
  • apRtcGroup - домен , в котором располагается устройство (за исключением скрываемой части - domain_search.regex, см. Настройки сервиса);

Пример

{
    "data": [
        {
            "apGroup": "Поволжский банк/Волгоградская область/Доп.офис №8621-0304",
            "apID": "a8-f9-4b-b5-a4-a0",
            "grTB": "Поволжский банк",
            "grCity": "г.Волгоград, Краснооктябрьский район",
            "vspNumber": "8621-00304",
            "apRtcGroup": "Ug/Volgogradskiy_filial/Volgogradskaya_obl/Volgograd/Sberbank/8621-0304_pr-kt_Metallurgov_15",
            "vspAddress": "400007, г.Волгоград, пр.Металлургов, 15",
            "apName": "sberbank_ug_vgg_volgograd_8621-0304_a8:f9:4b:b5:a4:a0",
            "grRegion": "Волгоградская область"
        },
	]
}

Возможные параметры запроса

  • grTB - фильтр по полю grTB. При указании этого параметра в ответе от eltex-bob будут содержваться только те объекты, значение grTB которых совпадает с указанным. Если значение параметра пустое, фильтр будет игнорироваться.
    пример запроса:

    http://localhost:9190/GetAPList?grTB='Сибирский банк'


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

Настройки

nginx и ACL

 Для ограничения доступа к сервису по 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=[a-zA-Z0-9]*.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 .


  • No labels