
リモートサーバーにログを送信するには、次のRsyslog設定があります。問題は、リモートサーバーに多くの情報メッセージを送信するためにそのノイズを望まないことです。すべての重大度ログは送信しますが、情報は送信しないようにフィルタを設定しようとしています。
# 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
私のオペレーティングシステムはCentos7.5 Linuxです。
答え1
これがここで起こるものです。私の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'
答え2
まだ行っていない場合は、フィルタで更新した後にrsyslogサービスを再起動する必要があります。
rsyslog.confファイルを更新したら、rsyslogサービスを再起動します。
# service rsyslog restart # CentOS/RHEL 6
# systemctl restart rsyslog