Rsyslog は、機能しないファイル監視の重大度を条件付きで上げます。

Rsyslog は、機能しないファイル監視の重大度を条件付きで上げます。

次のrsyslog設定は、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
}

これはPHPコードを使用してテストされました。header("HTTP/1.1 500 Internal Server Error")

これを使用してcurl -I localhost/phpinfo.php500を返します。

ただし、rsyslogはそれを記録しますSeverity NOTICE。記録する機能はですLOCAL0

Errorメッセージに期待どおりに機能しない内容がある場合は、重大度を変更して500「通知」として記録したいと思います。

ありがとうございます。

答え1

それを把握できました。

# 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

$InputRunFileMonitor条件文の後に入れてください。

関連情報