Sou bastante novo no syslog-ng e tenho o seguinte problema.
Eu tenho um firewall Checkpoint que envia os logs para um servidor Splunk. Devido à enorme quantidade de dados enviados pelo firewall, tentei filtrar os logs indesejados. Como isso não foi possível nem no firewall nem no Splunk, agora envio os logs do firewall para um servidor syslog-ng que filtra as mensagens indesejadas e encaminha o restante dos logs para o Splunk via Splunk-forwarder. A definição de log no servidor Syslog-ng é semelhante a esta:
log { source { network(transport(tcp) port(12001) flags(no-parse)); };
analisador { analisador de ponto de verificação(); };
filtro {não corresponde("Application_Allow_all", valor("MESSAGE")); };
destino { arquivo("/var/log/syslog-ng/checkpoint.txt"); };
};
80% dos logs do firewall contêm "Application_Allow_all" , que não precisamos no servidor Splunk. Até aí tudo bem, o filtro funciona.
Agora vamos ao problema. Preciso ter no servidor Splunk os logs do firewall contendo "acesso ao servidor Web". Mas as entradas de log do firewall contendo "Webserver access" também contêm "Application_Allow_all" .
Não sei combinar dois filtros e o que encontrei na internet até agora não funciona. Eu tentei o seguinte:
filter { match("Webserver access", value("MESSAGE")); };
filtro {não corresponde("Application_Allow_all", valor("MESSAGE")); };
Com esses filtros, agora obtenho apenas os logs que contêm "acesso ao servidor Web" e nada mais. O segundo filtro parece ser ignorado. Esta é a aparência da entrada de log no servidor Splunk:
"rule_action=Accept | Rule_name=Webserver access | Rule_name=Application_Allow_all"
O que eu quero alcançar é que os logs contendo "Webserver Access" sejam encaminhados pelo syslog-ng para o servidor Splunk , enquanto todos os outros logs contendo "Application_Allow_all" são descartados.
Qualquer ideia é bem-vinda.
A filtragem pode ser feita pelo Splunk. Adicione o seguinte a um arquivo props.conf:
Em seguida, adicione isso ao arquivo transforms.conf no mesmo aplicativo
A transformação descarta qualquer evento que corresponda à expressão regular especificada (chave REGEX). A configuração props invoca a transformação. O nome da sub-rotina props.conf ("mysourcetype" acima) deve corresponder ao nome do tipo de origem especificado pelo sistema de envio.
Posso estar enganado, mas se bem entendi, você está procurando algo assim:
Para obter detalhes e exemplos, consulte combinação de filtros syslog-ng .
Além disso, a partir da versão 4.2, o syslog-ng pode enviar logs diretamente para o Splunk , para que você não precise usar o encaminhador universal e possa fazer a filtragem e o envio com o syslog-ng.
(o link aponta para a documentação do Axosyslog, que é uma distribuição syslog-ng pronta para nuvem mantida pelo criador original do syslog-ng)