Evitar que o rsyslog registre mensagens de hosts remotos em / var / log / syslog local

4

Eu uso o rsyslog para salvar logs de hosts remotos para um servidor desta maneira:

Servidor:

# Logfile for each host
$template DynaFile,"/var/log/rsyslog/%HOSTNAME%.log"
*.* -?DynaFile

Clientes:

*.* @servername

Isso cria arquivos de log para cada host cliente nos servidores /var/log/rsyslog/ , mas registra todas as mensagens também para os servidores /var/log/syslog . Então fica realmente inchado. Como posso evitar que /var/log/syslog contenha apenas mensagens do próprio servidor?

    
por Michael 06.02.2015 / 15:34

2 respostas

0

Eu tenho trabalhado muito nisso e acho que encontrei uma solução. Encorajo os outros a tentarem isso e procurar por consequências potencialmente adversas. Sugiro que isso seja implementado em máquinas de laboratório / teste e não críticas primeiro.

$template PerHostLog,"/var/log/net-hosts/%fromhost-ip%/%fromhost-ip%.log"
$template RemoteHostFileFormat,"%TIMESTAMP% %fromhost-ip% %syslogfacility-text% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::space-cc,drop-last-lf%\n”
:inputname, isequal, "imudp" ?PerHostLog;RemoteHostFileFormat
:fromhost-ip , !isequal , "127.0.0.1" stop

As 4 linhas acima estão na parte superior do meu arquivo /etc/rsyslog.conf

Atualmente estou assistindo 2 arquivos de log:
/var/log/net-hosts/10.1.1.1
e / var / log / syslog

enquanto assisto a ambos, vejo os logs serem preenchidos no arquivo do host remoto, mas não no syslog. Eu reiniciei o apache e vi entradas de log no syslog para esta tarefa.

    
por 23.03.2016 / 23:43
0

Veja o que funciona para mim:

## For accepting syslog info from remote hosts
$template TempAuth, "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"
$template TempMsg,  "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"

if ($fromhost-ip != "127.0.0.1" ) then ?TempAuth
& ~
if ($fromhost-ip != "127.0.0.1" ) then  ?TempMsg
& ~
    
por 13.07.2017 / 19:05

Tags