Eu sei que isso é um pouco tarde, mas é possível. Eu não sei como você está recebendo esses logs (uma rede sugerida de pesquisa rápida, talvez), mas eu tenho uma configuração semelhante. Você pode usar os conjuntos de regras , para fazer (curiosamente) novos conjuntos de regras que não são t usado como padrão. E na linguagem de script inbuild, RainerScript , existe uma função re_match
, que retorna true ou falsa.
ruleset(name="stormshield") {
if re_match($msg, "your POSIX ERE regex") then {
action(type="omfile" file="/your/file/name/here")
stop
} else if re_match(...) then { ... }
else { ... }
}
$msg
é uma referência ao log atual.
omfile
é para o módulo de saída, então se você precisar de bancos de dados ou qualquer outra coisa, existem outras opções também.
E depois de ter terminado o if..else if...else
outras coisas podem ir para lá. o stop
é necessário para descartar a mensagem assim que terminar, caso contrário, ela também irá para outras regras. Eu acho que você pode adicionar um til ~
após a ação também para isso, mas você terá que verificar.
Como direcionar os logs para o conjunto de regras ( bind
para ele, como dizem os documentos) depende da origem. para fontes de rede ou arquivo, há a função input
e os módulos de entrada como "imtcp"
e "imfile"
que possuem um parâmetro de conjunto de regras. Você pode ter que obter pacotes extras para alguns dos módulos:
input(type="imfile" File="/input/file/here.log" Tag="..." Ruleset="ruleset name")
input(type="imtcp" Port="1234" Name="name" Ruleset="ruleset name")
e, finalmente, se você precisar enviar uma instalação específica, poderá usar call
: local0.* call rulesetName
(sem aspas para o nome que parece) por exemplo (escolha o que precisa de registro conforme necessário)
Eu acho que tenho muito disso ok. Acabei de ver os arquivos conf, então peço desculpas por qualquer erro ..