l3-agent

Материал из Xgu.ru

Перейти к: навигация, поиск


< LiLaLo

l3-agent — программа, выполняющая анализ script-файлов, и представляющая данные в форме XML-потока. Потом может записываться в файл или передаваться на сервер l3-backend'.

Агент может работать в двух режимах:

  1. в нормальном режиме (normal)
  2. в режиме демона (daemon).

Режим работы определяется параметром mode:

 --mode daemon
 --mode normal

В режиме демона агент может уходить в фон или оставаться присоединённым к терминалу:

 --detach yes
 --detach no

В первом случае l3-agent считывает входной script-файл (или множество файлов), обрабатывает их, записывает результат выполнения в XML-файл и завершается.

Во втором l3-agent постоянно висит в фоне и просматривает script-файлы (находящиеся в каталоге ~/.lilalo): нет ли в них новых данных и нет ли новых script-файлов? Если данные появились, они анализируются и передаются на сервер. Если связь с сервером отсутствует, результат обработки запоминается во временном файле, и данные ждёт отправки, когда связь появится. Можно сказать, что агент в реальном времени передаёт данные на сервер, как только обнаружит и распознает их.

Периодичность проверки определяется параметром daemon_sleep_interval (в секундах). По умолчанию, он имеет значение 10 секунд.

 "daemon_sleep_interval" => "10"

С одной стороны, время появления новых команд в журнале достаточно короткое; с другой, если в терминалах выполняются интерактивные программы, выводящие большой поток данных на экран (например, top, htop или cmatrix), лучше увеличить этот интервал и снизить нагрузку, создаваемую агентом.

Список файлов, которые обрабатываются l3-agent'ом (не имеет значения, работает он как демон или нет), определяются параметрами input и input_mask. Обрабатываются все файлы, полученные в результате обработки шаблона, полученного конкатенацией этих параметров.

По умолчанию параметры имеют значения:

 --input ~/.lilalo/
 --input_mask *.script

Таким образом, обрабатываются все файлы *.script в каталоге ~/.lilalo/:

 ~/.lilalo/*.script

Если мы хотим обработать один файл сеанса, и записать результат в XML-файл /tmp/output.xml:

 $ l3-agent --cache /tmp/output.xml --input_mask 161936792530431546-1205028981.script --mode normal

(или, если файл находится не в каталоге ~/.lilalo, а. например, в текущем каталоге)

 $ l3-agent --cache /tmp/output.xml --input . --input_mask 161936792530431546-1205028981.script --mode normal

Обратите внимание, что в помимо файла .script вместе с ним в одном каталоге должен быть файл .info, с информацией о сеансе.

Данные записываются в файл, определённый параметром cache. Информация о том, до какой точки обработан каждый script-файл находится в файле, определяемом параметром cache_stat.

По умолчанию, эти файлы находятся в каталоге ~/.lilalo:

   "cache"             => "$ENV{HOME}/.lilalo/report.xml",
   "cache_stat"        => "$ENV{HOME}/.lilalo/.report.dat",

IP-адрес и порт backend-сервера — сервера, на который должны отправляться распознанные команды, определяются параметрами backend_address и backend_port.

   "backend_address"   => "xgu.ru",
   "backend_port"      => "18030",

При условии что с сервером связаться не удаётся, попытка откладывается на некоторое время, после чего повторяется, до тех пор пока данные не получится отправить. После того как данные отправлены, они удаляются из кэш-файла.

l3-agent должен выполняться от имени того пользователя, для которого ведётся запись; по одному на каждого пользователя. При использовании скрипта install из дистрибутива LiLaLo, вызов агента добавляется в файле ~/.bash_profile каждому пользователю, для которого выполняется инсталляция.

Вы можете не запускать агент автоматически, а вызывать его только тогда, когда нужно выполнить обработку накопленных данных, и передать их на сервер.

Агент можно вызывать без всяких дополнительных аргументов:

 %$ l3-agent

В этом случае он уходит в фон и начинает обработку script-файлов по описанным выше правилам.

Запустить несколько копий агента от имени одного пользователя не получится. При запуске он создаёт PID-файл, в котором указывает идентификатор собственного процесса. Путь к PID-файлу определяется параметром agent_pidfile, по умолчанию:

   "agent_pidfile"     => "$ENV{HOME}/.lilalo/l3-agent.pid"

При повторном запуске, агент отказывается работаеть, если встречает свою копию.

Агент обрабатывает сигналы:

  • сигнал 1 (HUP) — перечитать конфигурационный файл; конфигурационные файлы перечитываются, и агент начинает работать в соответствии с новой конфигурацией.
  • сигнал 15 (TERM) — завершиться. Агент завершается нормальным образом, при этом удаляет свой PID-файл.

[править] LiLaLo на Xgu.ru

Источник — «http://xgu.ru/wiki/l3-agent»