|
Netmond V2. Директива Method
Директива Method совместно с параметрами
Polling,
Timeout и
Retries
определяет и характеризует всю работу с поллингом
обьектов в Netmond. С помощью поллинга определяется
работоспособность обьекта и устанавливаются значения его
переменных.
Когда директива Method применяется на верхнем уровне
конфигурации Netmond, она декларирует уникальное имя метода и описывает
собственный способ опроса обьекта в сети по заданному сценарию в протоколах
TCP и UDP или по протоколу ICMP-echo.
Такое предварительное описание удобно когда данный метод будет использоваться
многократно для опроса разных обьектов в сети. В этом случае на обьекте
просто делается ссылка на имя ранее продекларированного метода, при этом
в аргументах ему можно передать какие-то индивидуальные параметры данного
обьекта. Метод опроса можно полностью описать и непосредственно в блоке
данного обьекта.
В Netmond предусмотрен ряд встроенных методов, не нуждающихся в
каком-либо дополнительном описании. Такие методы вызываются по собственному
имени (без окружающих апострофов) прямо из блока обьекта с возможной передачей
аргументов.
Существует три основные формы использования данной директивы:
- Method "name" {
- ( TCP | UDP ) Port port
- [ LocalPort min_port [ max_port ] ]
- [ Address "address" ]
- [ Timeout seconds ]
- [ Retries counter ]
- [ ChatScript {
- [ Send "string" ] ...
- [ Expect "regex"
[ { $Variable ... } ] ] ...
- } ]
- }
- Декларирует TCP или UDP метод опроса и определяет его
параметры, где
- name
- Уникальное собственное имя метода опроса.
- port
- Номер удаленного запрашиваемого порта.
- min_port и max_port
- Границы номеров локальных портов, по-умолчанию порт выбирается системой.
При имитации remote shell они должны быть от 512 до 1023.
- address
- Адрес удаленного запрашиваемого хоста. Используется только для
перенаправления опросных сценариев - запрос данных об обьекте производится
через специально предусмотренного посредника.
- seconds
- Время ожидания ответа в секундах.
Смотри также Timeout.
- counter
- Колличество перезапросов в одной серии. Смотри также
Retries.
- string
- Строка посылаемого текста. Строка может быть пустой (посылка текста не
требуется) или содержать специальные
символы.
- regex
- Ожидаемая последовательность символов в regex(3)
формате. Строка может быть пустой, если ожидание ответа не требуется.
- Variable
- Определение новой или ссылка на существующую
переменную обьекта - владельца данного метода,
для сохранения полученного значения. В regex выражении при этом должны
использоваться соответствующие теги.
Строки string и regex могут содержать ссылки на входные
аргументы метода. Такие ссылки обозначаются как $0..$9, где
$0 является ссылкой на собственное имя метода.
- Method "name" {
- ICMP
- [ Size bytes ]
- [ Send packets [ Expect packets ] ]
- [ Timeout seconds ]
- [ Retries counter ]
- }
- Декларирует ICMP-echo метод опроса и определяет его параметры, где
- name
- Уникальное собственное имя метода опроса.
- bytes
- Размер пакета в байтах, минимальный по-умолчанию.
- packets
- Общее колличество пакетов, по-умолчанию 0.
- seconds
- Время ожидания ответа в секундах.
Смотри также Timeout.
- counter
- Колличество перезапросов в одной серии. Смотри также
Retries.
При применении ICMP-echo метода к обьекту производится
последовательная посылка в серии из Send контрольных запросов,
каждый размером Size байт. Обьект получает состояние UP
только в случае когда получено Expect откликов. По-умолчанию,
Expect равно Send. Если Send
равно 0, то метод просто взводит обьект в UP.
Колличество пакетов Send коррелирует с колличеством
перезапросов Retries, установка Retries в 1
дает "чистый" ожидаемый результат. Результаты работы фиксируются в переменных
обьекта по имени метода:
- $name
- Среднее время отклика в милисекундах, тип float - число с точкой.
- $name.send
- Колличество посланных пакетов.
- $name.recv
- Колличество ответных пакетов.
Метод ICMP-echo не использует IP опцию Record Route, для
получения топологии можно параллельно использовать встроенный метод
Ping.
- Method
( Ping | Router |
SNMP | DNS | Radius |
Tacacs | "name" ) [ "arguments" ]
- Применение метода опроса к данному обьекту, указывется только внутри блока
обьекта. При этом у обьекта появляется переменная с именем метода опроса,
которая содержит строку с последней диагностикой его работы.
- name
- Ссылка на имя предварительно определенного в предыдущей форме метода.
- arguments
- Строка со списком передаваемых аргументов. Аргументы разделяются
между собой пробельными символами и нумеруются последовательно от
1 до 9, 0 - собственное имя метода.
Как мы видим из синтаксиса, опрос обьектов в сети может производиться
с помощью встроенных в Netmond способов:
- Ping
- ICMP-echo запрос с IP опцией Record Route. Метод
используется для определения состояния обьекта в сети (UP или DOWN),
замера времени отклика и установки топологических зависимостей до него.
В переменной $PING возвращается замер времени отклика в милисекундах.
ВНИМАНИЕ: Не все операционные системы корректно реагируют на эту
опцию, Ping пожет не проходить именно по этой причине,
ипользуйте системную утилиту ping -R для выяснения этого факта.
- Router
- SNMP v1 комплексный (сессионный) опрос обьекта с индексированием.
Метод используется для опроса предопределенных SNMP переменных обьекта,
имеющего Interface порты,
BGP сессии и температурные датчики
Env Temp. С его помощью
определяется состояние таких подобьектов, их параметры, фиксируется трафик
на интерфейсах, снимаются значения температуры и пр. Метод снимает значения
SNMP переменных обьекта $sysObjID, $sysUpTime и
$sysName, если применяется на роутере или свиче Cisco, то
дополнительно снимает с него значения $ciscoFreeMem, $ciscoAvgBusy
и $ciscoWhyReload.
В arguments может быть передано SNMP-Community данного
обьекта, по-умолчанию это "public".
- SNMP
- SNMP v1 Get запрос. Метод используется для получения значений
произвольных SNMP переменных обьекта, например:
- $sysContact 1.3.6.1.2.1.1.4.0
- $sysLocation 1.3.6.1.2.1.1.6.0
- Method SNMP "community" { $sysContact $sysLocation }
- DNS
- Стандартный DNS запрос. Метод используется для определения
состояния сервера и расположенных на нем доменных зонах.
Аргументом метода является имя проверямой на авторитетность SOA
доменной зоны. По-умолчанию запрашивается A запись зоны "."
(список корневых серверов). В переменной $DNS возвращается строка
диагностики.
- Radius
- Radius запрос на аутентификацию. Используется для определения
состояния AAA сервера. Метод запрашивает Service-Type =
Authenticate-Only для имени пользователя netmon с паролем как
secret key, указанным в качестве arguments.
Оба возвращаемых кода ответа - Access-Accept и Access-Reject
являются правильным ответом. Считается, что раз сервер ответил что-то
членораздельное, то он однозначно работает! При этом в переменной $RADIUS
фиксируется строка диагностики, которую сервер может возвращать в атрибутах
ответа. А вот если secret key указан не верно, то сервер проигнорирует
такой запрос и мы пометим его состояние в DOWN.
- Tacacs
- Метод Tacacs действует практически также как Radius,
запрашивается PAP-Authentication. Метод без аргумента проверяет
только наличие коннекта на порту сервера. Диагностика находится в переменной
$TACACS.
Методы формируются в опросный список обьекта в порядке их указания.
Колличество методов в одном списке ограничено лишь временнем последовательной
обработки всего списка, которое не должно превышать интервал поллинга
Polling этого обьекта.
Смотри также:
Директива Object
Regular expression (regex)
Пример настройки опроса обьекта методом Remote Shell
© 1998-2002, Rinet Software
|