rsyslog relp - evitando que logs remotos sejam gravados em meu / var / log local

1

Eu configurei um servidor de registro usando rsyslog com relp. Funciona muito bem até receber logs remotos e colocá-los em / var / spool / rsyslog.

Meu problema é: a maioria dessas mensagens também está aparecendo no meu arquivo / var / log / messages, o que pode ficar bastante grande, razoavelmente rápido.

Minha configuração no servidor de registro:

    #### MODULES ####

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

# RELP config
$ModLoad imrelp
$InputRELPServerRun 2514

#### GLOBAL DIRECTIVES ####

# Filter duplicated messages
$RepeatedMsgReduction on

# Set the default permissions for all log files.
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

# Where to place spool files
$WorkDirectory /var/spool/rsyslog

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

# global templates
# DONT CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING
$ActionFileDefaultTemplate RSYSLOG_ForwardFormat
$template precise,"%syslogpriority% %syslogfacility% %timegenerated% %HOSTNAME% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate precise

# This should place all remote log items into /var/spool/rsyslog
$template RemoteHost,"/var/spool/rsyslog/%programname%.log"

# My brain says: this prevents anything coming in from a remote host from
# being written in /var/log/whatever - MY BRAIN LIES TO ME!
if ($hostname != 'my.server.name') then ?RemoteHost
&~

Minha leitura da página man diz que a verificação do nome do host e o "til comercial" devem impedir que coisas remotas corrompam meus arquivos de log.

pistas?

DISTRIB_DESCRIPTION="Ubuntu 12.04.3 LTS"

    
por lysdexia 24.09.2013 / 20:31

3 respostas

1

você deve ter algo parecido no seu arquivo de configuração do rsyslog

*.*;auth,authpriv.none          -/var/log/syslog

Se você der uma olhada, você está registrando TODAS as gravidades de todos os recursos, para o arquivo syslog, exceto as facilidades auth e authpriv.

Basta adicionar a facilidade que você não deseja registrar, além da gravidade "nenhum". I.E: local6:

*.*;auth,authpriv.none;local6.none          -/var/log/syslog

É claro que você deve reiniciar ou recarregar o daemon rsyslog após modificar os arquivos de configuração.

Espero que isso ajude, até agora, simplesmente usando filtros rsyslog complexos.

    
por 18.05.2015 / 10:20
0

Não tenho certeza se você é capaz de usar nomes de host nesse ponto.

pessoalmente eu usei $ fromip == 'x.x.x.x' como condição para diferentes nomes de arquivos.

abaixo é um bom exemplo que funciona para minha configuração, embora possa ser um problema se você tiver muitos intervalos de ip diferentes.

isto é copiado de

link

Armazenando mensagens de um sistema remoto em um arquivo específico Terça-feira, 23 de fevereiro de 2010

Este é um cenário de consolidação de logs. Existem pelo menos dois sistemas, um servidor e pelo menos um cliente. O servidor destina-se a coletar dados de log de todos os clientes. Os clientes podem (ou não) processar e armazenar mensagens localmente. Se eles fizerem isso, não importa aqui. Veja a receita Enviando Mensagens para um Servidor Syslog Remoto para saber como configurar os clientes.

Mensagens de hosts remotos na rede 192.0.1.x devem ser gravadas em um arquivo e mensagens de hosts remotos na rede 192.0.2.x devem ser gravadas em outro arquivo. Coisas para pensar sobre

TCP recpetion não é um recurso integrado. Você precisa carregar o plugin imtcp para ativá-lo. Isso precisa ser feito apenas uma vez no rsyslog.conf. Faça bem no topo.

Observe que o endereço da porta do servidor especificado em $ InputTCPServerRun deve corresponder ao endereço da porta para a qual os clientes enviam mensagens. Config Statements

$ModLoad imtcp
$InputTCPServerRun 10514
# do this in FRONT of the local/regular rules
if $fromhost-ip startswith '192.0.1.' then /var/log/network1.log
& ~
if $fromhost-ip startswith '192.0.2.' then /var/log/network2.log
& ~
# local/regular rules, like
*.* /var/log/syslog.log
    
por 20.12.2013 / 14:26
0

Isso é o que está funcionando para mim.

Para aceitar informações de syslog de hosts remotos

$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:03