rsyslog один удаленный журнал регулярное выражение разделить на несколько файлов - PullRequest
0 голосов
/ 31 марта 2020

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.

...