rsyslog workflow / regex
текущая настройка (которая работает):
os SLES 12SP3
и rsyslog-8.24.0-3.16.1
для получения одного ossec-server
удаленного журнала, содержащего несколько строк различных агентов osse c в ossec-server.log
необходим параметр
rsyslog необходимо read
ossec-server.log
и создать новый / добавить файл журнала regex
У меня есть эти попытки в /etc/rsyslog.d/tmpl.conf
if ( $programname == "CEF" ) then {
action(type="omfile" file="/mnt/data01/var/log/ossec-alerts.log" flushOnTXEnd="off")
stop
}
$Template tpl,"%msg:R,ERE,0,FIELD:cs2=\(h+[0-9]+[a-b]+[host]--end%\n"
set $.client = exec_template("tpl");
# static string works, but only on local logs
#if $msg contains 'cs2=(h01bhost' then /mnt/data01/var/log/h01bhosttyp011_ossec-alerts.log
if $msg contains $.client then /mnt/data01/var/log/h01ahosttyp011_ossec-alerts.log
if ( $msg contains $.client ) then {
action(type="omfile" file="/mnt/data01/var/log/test_ossec-alerts.log" flushOnTXEnd="off")
stop
}
if ($msg contains $.client) then {
action(type="omfile" file="/mnt/data01/var/log/important.log" flushOnTXEnd="off")
stop
}
Итак, что я должен кодировать, чтобы найти строки в ossec-server.log
с помощью регулярного выражения ERE, а затем создать файл журнала, используя переменную Dynami c, как показано $.client
.