rsyslog.conf para o dmesglog não funciona

1

Temos placa personalizada da Beaglbone Black com chip Wifi | Temos a seguinte entrada no rsyslog.conf

# Redirect all kernel messages including dmesg to /var/log/dmesglog
kern.*                         :omfile:$dmesg_log_rotation

O dmesglog é inundado por logs wifi que começam com mlan0 Então eu mudei a regra da seguinte maneira,

# Redirect all kernel messages including dmesg to /var/log/dmesglog
kern.*, !contains, "mlan0" :omfile:$dmesg_log_rotation

No entanto, esses registros ainda continuam a inundar o dmesglog.

Alguém pode me sugerir o que há de errado com esse registro?
Alguma outra sugestão de regra? alguma ponteira?

EDITAR :
Após algumas pesquisas, descobri que rsyslogd -N1 pode ser usado para verificar o rsyslog.conf . E esse cheque apontou erro. Eu estou tentando corrigir a regra de alguma forma.

EDIT2
Eu mudei a regra da seguinte forma, mas agora eu não vejo nada no dmesglog

# Redirect all kernel messages including dmesg to /var/log/dmesglog
if ( 'kern.*' contains "mlan0" ) then{ action( type="omfile" file="*" ) } else { action( type="omfile" file="$dmesg_log_rotation" )}
    
por AnkurTank 28.11.2017 / 15:07

1 resposta

1

Tente isto:

# Redirect all kernel messages including dmesg to /var/log/dmesglog
:msg, contains, "mlan0" ~
kern.*                         :omfile:$dmesg_log_rotation

De acordo com a documentação do rsyslogd , você deve primeiro descartar as mensagens selecionadas.

Se você deseja colocar as mensagens filtradas em um arquivo separado, pode escrever algo como:

# Redirect all "mlan0" to /var/log/mlan.log
:msg, contains, "mlan0" :omfile:/var/log/mlan.log
:msg, contains, "mlan0" ~
# Redirect all kernel messages including dmesg to /var/log/dmesglog
kern.*                         :omfile:$dmesg_log_rotation

Infelizmente, o rsyslog não suporta a filtragem exatamente pelo nome do módulo do kernel, mas você pode tentar propriedades diferentes ( msg é apenas uma delas), e você pode especificar a regra de filtro com mais precisão regras " startswith ", " é igual " ou " regex ". A lista completa de propriedades e regras é aqui ( veja abaixo " Propriedades Disponíveis ".
Então você deve tentar, por exemplo:

:programname, startswith, "mlan" :omfile:/var/log/mlan.log

Ou:

:syslogtag, regex, "^mlan[0-9]" :omfile:/var/log/mlan.log

Não sei Se alguma propriedade conteria o modo kernel. De qualquer forma, você sempre pode filtrar por msg com regex .

:msg, regex, "^write-regex-matching-your-module-log-output" :omfile:/var/log/mlan.log
    
por 28.11.2017 / 18:04