Rsyslog filtrar por cliente

1

Eu configurei um servidor Rsyslog que pode receber mensagens de clientes. O problema é que tudo é concatenado em / var / log / syslog, então estou tentando configurar um servidor de filtros.

Adicionei esta linha no final de /etc/rsyslog.conf :

if $fromhost-ip == '123.123.123.123' then /var/log/clientA.log

Mas isso não funciona (mesmo que eu substitua == por != , o que é realmente estranho). Claro que não esqueci de reiniciar o serviço.

Qualquer ideia é bem-vinda.

    
por Guilhem Soulas 25.03.2014 / 00:39

2 respostas

0

Está funcionando agora. Foi uma questão de permissão. Eu fiz touch e chmod no arquivo de log para corrigi-lo.

    
por 25.03.2014 / 22:16
0

Nossa configuração tem alguma verificação de erro extra, impedindo que hosts aleatórios gerem logs.

# Templates                    
$template RemoteHost,"/data/log/remote/%HOSTNAME%/%$YEAR%/%$MONTH%-%$DAY%.log"
$template Garbage,"/data/log/remote/GARBAGE/%HOSTNAME%/%$YEAR%/%$MONTH%-%$DAY%.log"

# Discard SNMPD Connection Messages
if $programname == 'snmpd' and ( $msg contains 'Connection from UDP' or $msg contains 'Received SNMP packet(s) from UDP' ) then ~

# Archival Storage
#    All Messages, locally and remote stored to these rules
if $hostname contains '.mydomain.com' or $hostname contains '.myotherdomain.com' or $hostname contains '.local' then { 
  *.* ?RemoteHost 
} else { 
  *.* ?Garbage
}

# If not sourced locally, stop processing message.
:source , !isequal , "syslog1" ~
    
por 25.03.2014 / 04:56