Você pode fazer isso usando um substituto da propriedade .
Coloque no seu rsyslog.conf
ou similar uma linha definindo um modelo que seja o formato desejado do nome do arquivo, e use-o na ação quando você combinar com a linha de entrada. Por exemplo,
$template myfile,"/var/log/uid/%msg:R,ERE,1,FIELD:.*?uid=([0-9]+).*--end%"
if (re_match($msg, "uid=[0-9]+")) then {
action(type="omfile" dynaFile="myfile")
stop
}
O modelo diz que a variável de modelo myfile
é a string incluindo a propriedade msg
substituída por uma correspondência regex (R), estendida (ERE), captura de grupo 1 (1), (e se não houver correspondência, mantenha o CAMPO original). A regex real é a parte .*?uid=([0-9]+).*
. O --end
é uma parte obrigatória da sequência %...:R,...--end%
.
As linhas a seguir são o teste usual do Rainer Script para as linhas que você deseja combinar e onde colocar o resultado.