Навигация:  Traffic Inspector SDK > API администрирования > Интерфейсы >

ISNMP

Previous pageReturn to chapter overviewNext page

 

Интерфейс объекта управления через SNMP. Через протокол SNMP можно получать различную информацию с сетевых устройств, а также управлять ими. В текущей реализации используется SNMPv1.

 

Объект управления SNMP может быть создан методами CreateSNMPObject через общее API или для втроенных скриптов через соотв. метод объекта Host.

 

Следует отметить, что для общего API этот объект может быть создан удаленно. При этом он будет выполняться на сервере, т.е. все запросы будут идти именно с сервера.

 

Хост или IP адрес управляемого устройства задается в процессе создания SNMP объекта, в дальнейшем для данного объекта изменить его нельзя.

 

property Community (Write only)

 

Можно задать строку Community (пароль) для доступа к устройству. При создании SNMP объекта уже задано по умолчанию public. Следует отметить, что как правило в настройках SNMP устройств Community для операций ReadOnly и Read/Write разные.

 

Подготовка данных в запросе.

 

Данная реализация SNMP позволяет объединить операции для разных SNMP объектов (OID) в одном запросе, что может ускорять работу. Для формирования запроса используются методы -

 

procedure ClearRequestData

 

Очищает все ранее введенные данные запроса.

 

procedure AddNullValue(OID)

 

Добавляет в запрос идентификатор OID ввиде строки без значения. Следует использовать в запросах на получение данных (SNMP операции GET и GETNEXT).

 

procedure AddIntValue(OID, Value)

procedure AddStrValue(OID, Value)

 

Добавляет в запрос идентификатор OID ввиде строки со значением Value (целый тип или строка). Следует использовать в запросах на запись данных в устройство (SNMP операция SET).

 

Pеализация AddIntValue позволяет производить запись данных с целочисленным типом, описанным в MIB как тип данных INT. Pеализация AddStrValue позволяет производить запись данных со строковым типом, описанным в MIB как тип данных OctetString. Другие типы данных на запись не поддерживаются

 

Выполнение запроса.

 

Следующие методы выполняют запрос -

 

function SendGet

function SendGetNext

function SendSet

 

Результат выполнения - true, если запрос был выполнен, false если нет. Имеется два типа ошибочных ситуаций, которые отрабатываются отдельно -

 

Таймаут выполнения запроса. Т.е. ответ от устройства в заданное время ожидания получен не был. Время таймаута изменить нельзя, используется по умолчанию для служб SNMP Windows.
Ошибки, полученные в SNMP отклике от устройства. Как правило, это ошибки на несуществующий OID или попытки записи некорректных данных.

 

Для отработки ситуации таймаута имеются следующие возможности -

 

property ExceptOnTimeout (Read/Write)

 

Настройка задает, вызывать или нет исключение по таймауту. По умолчанию true. Если отключить, то при таймауте функции выполнения запроса вернут false, исключения при этом не будет. Проверить, что был именно таймаут, можно по свойству RespTimeout (Read only).

 

procedure SheduledTaskOnTimeout(TaskTime, TaskKey)

 

Таймаут запроса может означать, что устройство временно недоступно - например, отключено. В этом случае выполнение скрипта следует повторить через некоторое время. Эта процедура вызывается до выполнения запроса, при этом в случае таймаута этот скрипт будет поставлен в очередь заданий. См. функцию SheduledTask объекта Host для встроенных скриптов. Для скрипта, запущенного планировщиком, это не поддерживается.

 

Для отработки ошибок SNMP имеются следующие возможности -

 

property ExceptOnSNMPError (Read/Write)

 

Настройка задает, вызывать или нет исключение по ошибке SNMP. По умолчанию true. Если отключить, то возможно дальнейшее чтение различной информации об ошибках с целью их гибкой обработки:

 

property RespError (Read only)

 

Возвращает true, если произошла ошибка SNMP протокола, иначе false.

 

property RespErrorText (Read only)

 

Текст описания ошибки.

 

Получение результатов выполнения запросов.

 

Если запрос был успешно выполнен, то для операций чтения данных (GET или GETNEXT) могут быть получены данные -

 

property RespCount (read only);

 

Количество данных в отклике. Как правило, соответствует количеству данных в исходном запросе.

 

function GetRespOID(Index)

 

Получить OID элемента данных. Index - номер элемента данных, начиная с "0". Следует отметить, что OID в отклике не всегда соответствует OID в запросе.

 

function GetRespValue(Index)

 

Получить значение данных. Index - номер элемента данных, начиная с "0". Тип данных - вариантный, соответствует полученному SNMP типу данных. Если данных нет, то возвращается null.

 

Простые запросы.

 

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

 

function SimpleGet(OID)

 

Возвращает значение переменной, аналогично GetRespValue.

 

function SimpleSet(OID, Value)

 

Возвращает результат выполнения операции. true - если успешно. Значение Value (целый тип).

 

Простые запросы по MIB-II (RFC 1213)

 

Как правило, все сетевые устройства с SNMP, поддерживают управляющую базу MIB-II. Имеется ряд простых функций получения данных для этого MIB. Функции чтения общих данных об устройстве -

 

function sysDescr()

function sysObjectID()

function sysUpTime()

function sysContact()

function sysName()

function sysLocation()

function sysServices()

 

Имена функций соответствуют описаниям объектов по RFC 1213. Возвращаемое значение - вариантный тип.

 

Для чтения данных с сетевых интерфейсов устройства имеются простые функции -

 

function ifNumber()

 

Возвращает количество сетевых интерфейсов устройства. Для сетевых коммутаторов это порты.

 

Далее описаны функции, которые обращаются к конкретному сетевому интерфейсу (порту). Index - номер интерфейса (порта). ВНИМАНИЕ! Эта нумерация зависит от конкретного устройства. Имена функций соответствуют описаниям объектов по RFC 1213. Возвращаемое значение - вариантный тип.

 

function ifDescr(Index)

function ifType(Index)

function ifSpeed(Index)

function ifPhysAddress(Index)

 

function ifAdminStatus(Index)

 

Состояние интерфейса (порта), заданное администратором -

1 - включен,

2 - отключен.

В RFC описаны также другие возможные значения этого параметра.

 

function ifOperStatus(Index)

 

Физическое состояние интерфейса (порта) -

1 - включен,

2 - отключен.

В RFC описаны также другие возможные значения этого параметра.

 

function ifStatistics(Indexб out ifInOctets, out ifInUcastPkts,

                          out ifInNUcastPkts, out ifOutOctets,

                          out ifOutUcastPkts, out ifOutNUcastPkts)

 

Чтение данных счетчиков статистики.

 

function SetifAdminStatus(Index, Status)

 

Управление состоянием интерфейса (порта). Позволяет его включить или отключить. Значение Status соответствует -

1 - включен,

2 - отключен.

 


Текущая страница справки: http://help.smart-soft.ru/doc20/index.html?sdk_isnmp.htm

Сайт разработчиков Traffic Inspector