l3-agent
Материал из Xgu.ru
< LiLaLo
l3-agent — программа, выполняющая анализ script-файлов, и представляющая данные в форме XML-потока. Потом может записываться в файл или передаваться на сервер l3-backend'.
Агент может работать в двух режимах:
- в нормальном режиме (normal)
- в режиме демона (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
- LiLaLo
- Инсталляция LiLaLo
- Использование LiLaLo
- Устройство LiLaLo
- LiLaLo TODO
- Компоненты: l3-agent | l3-frontend | l3-backend | l3script | l3text