Rsyslog condicionalmente aumenta a severidade com o não funcionamento do filemonitoramento

0

A seguinte configuração do rsyslog é usada para monitorar o arquivo de acesso do apache.

# Apache access file:
$InputFileName /var/log/apache2/access.log
$InputFileTag apache-access:
$InputFileStateFile stat-apache-access
#$InputFileSeverity info  //This is commented because I wanted to set this based on condition.
$InputFilePersistStateInterval 20000
$InputRunFileMonitor

if $programname == "apache-access" then {
    if ($msg contains " 500 ") then $InputFileSeverity 'error';
    action(type="ommysql" server="127.0.0.1" serverport="3306" db="Syslog" uid="rsyslog" pwd="somepasswd")
    stop
}

Isso foi testado com um código php que usa header("HTTP/1.1 500 Internal Server Error")

e usou curl -I localhost/phpinfo.php , que retornou 500.

No entanto, o rsyslog está registrando como Severity NOTICE . A instalação que gravou foi LOCAL0 .

Eu estava pensando em alterar a gravidade para Error se houver um 500 na mensagem, o que não está funcionando como esperado e registre como Aviso.

Obrigado.

    
por nohup 28.07.2016 / 13:22

1 resposta

0

Conseguiu descobrir.

# Apache access file:
$InputFileName /var/log/apache2/access.log
$InputFileTag apache-access:
$InputFileStateFile stat-apache-access
#$InputFileSeverity crit
$InputFilePersistStateInterval 20000

if $programname == "apache-access" then {
    #if ($msg contains " 500 ") then  $InputFileSeverity error 
    if ($msg contains " 500 ") then  $InputFileSeverity info
    action(type="ommysql" server="127.0.0.1" serverport="3306" db="Syslog" uid="rsyslog" pwd="somepasswd")
    stop
}


$InputRunFileMonitor

Coloque o $InputRunFileMonitor após o condicional e ele funciona.

    
por 28.07.2016 / 14:19