|
Netmond V2. Директива Save
Директива Save совместно с параметром
Saving
определяет и характеризует в Netmond всю работу по
сохранению данных, накопленных в процессе
поллинга и трапинга обьектов в сети.
С ее помощью организуется анализ текущих значений
переменных и осуществляется вывод полученных данных во внешние приложения
или в файлы.
Когда директива Save применяется на верхнем уровне
конфигурации Netmond, она декларирует уникальное имя метода и описывает
собственный способ анализа и вывода данных обьекта в определенном формате.
Такое предварительное описание удобно когда данный метод будет использоваться
многократно для анализа и сохранения данных разных обьектов в сети. В этом
случае на обьекте просто делается ссылка на имя ранее продекларированного
метода, при этом в аргументах ему можно передать какие-то индивидуальные
параметры данного обьекта. Метод сохранения можно полностью описать и
непосредственно в блоке данного обьекта.
В Netmond предусмотрен ряд встроенных методов сохранения, не
нуждающихся в каком-либо дополнительном описании. Такие методы вызываются по
собственному имени (без окружающих апострофов) прямо из блока обьекта, никаких
передаточных аргументов для них не предусмотрено.
Существует две основные формы использования данной директивы.
- Save "name" {
- ( File | Pipe | Exec )
"file"
- [ Data "format" ]
- [ State "format" ]
- [ When "evaluate" seconds
[ "format" ] ]
- }
- Декларирует метод сохранения данных и определяет его параметры, где
- name
- Уникальное собственное имя метода сохранения.
- file
- Имя файла в который производится вывод данных. Это имя может быть
сформировано с помощью strftime(3) формата
представления текущего времени. Если в имени файла отсутствует абсолютный путь,
то при способе File он адресуется относительно каталога текущего
обьекта в иерархии Netmond, к которому применяется этот метод сохранения;
а при способах Pipe и Exec он будет вызван
с помощью /bin/sh -c file.
- format
- Строка с форматом выводимого текста. Строка может содержать ссылки на
имена переменных обьекта, к которому применяется этот метод сохранения, с
целью подстановки их текущих значений. Если такая переменная не существует
на обьекте, то она остается в тексте в том виде как была указана.
- evaluate
- Строка выражения, по которому производится вычисление условий сохранения
данных. Строка может содержать ссылки на имена переменных обьекта, к которому
применяется этот метод сохранения, с целью подстановки их текущих значений.
Если такая переменная не существует на обьекте, то она остается в тексте в том
виде как была указана. Результирующая строка обрабатывается встроенным
арифметико-логическим калькулятором. Сохранение
данных производится только когда результат вычислений отличен от нуля в течении
времени seconds.
- seconds
- Протяженность времени в секундах, в течении которого заданные в evaluate
условия должны выполняться. Ноль означает мнгновенную реакцию.
Как мы видим из синтаксиса, вывод данных может осуществляться одним из
трех способов:
- File
- Вывод в файл, данные построчно дописываются в указанный файл. Файл будет
создан, если он не существовал. Вывод производится синхронно или, если
Netmond собран с POSIX Threads, в отдельном триде.
- Pipe
- Вывод в пайп с указанной программой. Данные поступают строкой на
stdin этой программы. Вывод производится асинхронно с помощью
vfork(2),execve(2) или, если Netmond собран с POSIX
Threads, в отдельном триде.
- Exec
- Запуск указанной программы. Данные передаются как аргументы. Запуск
производится асинхронно с помощью vfork(2),execve(2) или, если
Netmond собран с POSIX Threads, в отдельном триде.
Операторы Data, State и When
могут быть указаны в методе сохранения совместно, в любом сочетании:
- Data
- Данные выводятся периодически за время сохранения
Saving обьекта, к которому применяется этот метод. При
этом, если периоды Saving и
Polling обьекта кратны, данные
выводятся непосредственно за очередным кратным опросом, иначе периодическое
сохранение происходит автономно от поллинга.
- State
- Данные выводятся только в момент изменения состояния обьекта (NONE,
UP, DOWN и тд), к которому применяется этот метод сохранения.
Вывод происходит непосредственно в момент обнаружения такого изменения в
результате очередного поллинга или на основании соответствующего трапа.
- When
- Данные выводятся только в случае выполнения указанных условии на обьекте,
к которому применяется этот метод сохранения. Вывод происходит в тот момент,
как это определено параметром seconds.
Любые строковые параметры директивы Save могут содержать
ссылки на входные аргументы метода. Такие ссылки обозначаются как
$0..$9, где $0 является ссылкой на собственное
имя метода сохранения.
- Save
( Router | Interface | BGP |
Temp | "name" ) [ "arguments" ]
- Применение метода сохранения к данному обьекту, указывется только внутри
блока обьекта.
- name
- Ссылка на имя предварительно определенного в предыдущей форме метода.
- arguments
- Строка со списком передаваемых аргументов. Аргументы разделяются
между собой пробельными символами и нумеруются последовательно от
1 до 9, 0 - собственное имя метода.
Как мы видим из синтаксиса, сохранение данных обьектов может производиться
с помощью встроенных в Netmond способов:
- Router
- Метод периодически в соответствии с Saving
сохраняет значения переменных в файл "%Y.%m.%d"
в формате:
- "$time $sysUpTime $ifNumber $ciscoFreeMem.ave $ciscoAvgBusy.ave"
- И при изменении состояния роутера в формате:
- "$time $state $ciscoWhyReload"
- Interface
- Метод периодически в соответствии с Saving
сохраняет значения переменных в файл "%Y.%m.%d"
в формате:
- "$time $ifInOctets.delta $ifOutOctets.delta $ifInUcastPkts.delta
$ifOutUcastPkts.delta $ifInDrops.delta $ifOutDrops.delta $ifInErrors.delta
$ifOutErrors.delta"
- При изменении состояния интерфейса в формате:
- "$time $state $ciscoIfReason"
- При условии "$ifSpeed.old && $ifSpeed != $ifSpeed.old" в формате:
- "$time BW $ifSpeed.old -> $ifSpeed"
- BGP
- Метод сохраняет значения переменных в файл "%Y.%m.%d"
только при изменении состояния bgp пира в формате:
- "$time $name $state"
- Temp
- Метод сохраняет значения переменных в файл "%Y.%m.%d"
только при изменении состояния температурного датчика в формате:
- "$time $name $state $ciscoEnvTempValue"
Методы формируются в список сохранения обьекта в порядке их указания.
Колличество методов в одном списке ограничено лишь временнем последовательной
обработки всего списка, которое должно находиться в разумных пределах.
Смотри также:
Date and time representation (strftime)
Evaluated expression (calculator)
Пример настройки сбора статистики по портам
© 1998-2002, Rinet Software
|