リモートサーバーにログを送信するために、次のRsyslog構成があります。問題は、リモートサーバーに大量のINFOメッセージを送信することであり、そのノイズは望ましくありません。 INFOではなく、すべての重大度ログを送信するようにフィルターを構成しようとしています。
# Ansible managed
$WorkDirectory /var/spool/rsyslog
$template RFC3164fmt,"<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%"
# Log shipment rsyslog target servers
$ActionQueueFileName ostack-log-01_rsyslog_container-04cb9e3a
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount 250
local7.* @172.28.1.205:514;RFC3164fmt
これは私がしたことであり、それは機能しませんでした。
local7.*;local7.!=info @172.28.1.205:514;RFC3164fmt
私のOSはCentos7.5Linuxです
これがここで起こったことです。私のsyslogメッセージはINFO
ログを示していますが、tcpdumpでsyslogの重大度がnotice
を示していることがわかり、それが私の側の混乱でした。
local7.*;local7.!=notice;local7.!=info @172.28.1.205:514;RFC3164fmt
これは、logger
ツールを使用して偽のログを生成し、このルールをテストする方法です。
logger -p 'local7.info' 'This is info logs, Reject it'
logger -p 'local7.notice' 'This is notice logs, Reject it'
logger -p 'local7.error' 'This is error logs and Accept it'