Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Template manager

Общее описание модуля расширения

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

  1. Мониторинг и сбор данных включает в себя:

    • Мониторинг доступности по протоколу SNMP;
    • Получение серийного номера, вендора, модели;
    • Сбор данных операционной системы, температуры, электропитания, информации о сетевых интерфейсах;
    • Сбор данных сенсоров;
    • Сбор инвентарной информации;
    • Сбор сообщений лога с удаленных машин и проверка их на соответствие шаблону.

Разработка собственного Template модуля расширения

Используемые технологии

gRPC

gRPC (Remote Procedure Calls) — это система удалённого вызова процедур (RPC) с открытым исходным кодом, первоначально разработанная в Google в 2015 году. В качестве транспорта используется HTTP/2, в качестве языка описания интерфейса — Protocol Buffers. Данный протокол используется для межсервисного общения в системе. Для корректной работы протокола необходимо, чтобы отправляющая и принимающая сторона имели одинаковые прото-файлы. прото-файлы описывают классы и их аттрибуты, используемые для общения и вяглядят следующим образом:

syntax = "proto3";

package tool_cluster.v4;

import "shared_common.proto";

// Описание источника сбора данных.
message DeviceDataIdentity
{
  // Идентификатор устройства.
  string device_id = 1;
  // Идентификатор объекта прав доступа.
  string access_object_id = 2;
  // Идентификатор rpc, с которого были собраны данные.
  ServiceSource source = 3;
}

Более подробно прочитать о протоколе можно перейдя по следующим ссылкам: https://ru.wikipedia.org/wiki/GRPC https://learn.microsoft.com/ru-ru/dotnet/architecture/cloud-native/grpc

SNMP

SNMP (англ. Simple Network Management Protocol — простой протокол сетевого управления) — стандартный интернет-протокол для управления устройствами в IP-сетях. К поддерживающим SNMP устройствам относятся маршрутизаторы, коммутаторы, серверы, рабочие станции, принтеры, модемные стойки и другие. Протокол обычно используется в системах сетевого управления для контроля подключённых к сети устройств на предмет условий, которые требуют внимания администратора. На устройствах поддерживающих данный протокол хранятся таблицы с данными, состоящей из пути и значения. При отпрваке запроса к необходимому пути, оборудование присылает значение лежащее в соответствующей ячейки таблицы.

Пример таблицы

.1.3.6.1.2.1.1.1.0 = STRING: "RouterOS CHR"
.1.3.6.1.2.1.1.3.0 = Timeticks: (225250400) 26 days, 1:41:44.00
.1.3.6.1.2.1.1.4.0 = ""
.1.3.6.1.2.1.1.5.0 = STRING: "RouterOS"
.1.3.6.1.2.1.1.6.0 = ""
.1.3.6.1.2.1.1.7.0 = INTEGER: 78
.1.3.6.1.2.1.2.1.0 = INTEGER: 4
.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.2.1 = STRING: "ether1"

Общий вид используемого SNMP-запроса выглядит следующим образом:

snmpbulkwalk -OentU -v version -l security_name -u Login -a auth_protocol -A auth_key -x private_protocol -X private_key -c community -n context address oid

Составляющие запроса:

  • snmpbulkwalk Команда для получения данных
  • -OentU Параметры вывода информации
  • -v version Версия протокола
  • -l security_name Уровень аутентификации: noAuthNoPriv / authNoPriv / authPriv
  • -u Login Логин безопасности (только для версии 3)
  • -a auth_protocol Используемый протокол аутентификации (только для версии 3)
  • -A auth_key Ключ для аутентификации (только для версии 3)
  • -x private_protocol Используемый алгоритм шифрования (только для версии 3)
  • -X private_key Ключ для шифрования (только для версии 3)
  • -c community Community слово (пароль для версий 1 и 2)
  • -n context Контекст подключения (только для версии 3)
  • -address IP адрес устройства
  • -oid Идентификатор (путь) к запрашиваемому атрибуту

Пример запроса

snmpbulkwalk -OentU -v '2' -c 'public' '192.168.1.27' '.1.3.6.1.2.1.1.1.0'
STRING: "RouterOS CHR"

Ответ на него

'STRING: "RouterOS CHR"'

Более подробно прочитать о протоколе можно перейдя по следующим ссылкам: https://ru.wikipedia.org/wiki/SNMP https://learn.microsoft.com/ru-ru/windows/win32/snmp/simple-network-management-protocol-snmp-