Rhel

如何禁用遠端緊急事件淹沒 rsyslog 接收器上的控制台?

  • December 13, 2017

在集中式日誌記錄設施中,如何防止遠端緊急消息淹沒使用者控制台,同時仍允許預設設置

*.emerg    :omusrmsg:*

對於任何本地緊急事件?

特別是,我想將遠端緊急消息記錄到日誌文件中,並可能發送一封電子郵件,但遠端電腦不應中斷主伺服器上的工作。

主伺服器是 RHEL 7.4 x86_64

rsyslog 版本:8.24.0

伺服器端配置(截斷):/ etc/

rsyslog.conf:

$ModLoad imuxsock
$ModLoad imjournal
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
*.emerg    :omusrmsg:*
$OmitLocalLogging on

/etc/rsyslog.d/listen.conf:

$systemLogSocketName /run/systemd/journal/syslog

創建了一個新的 /etc/rsyslog.d/remote-emerg.conf 文件:

$template myFormat0,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg:::drop-last-lf\n"
if $fromhost-ip != '127.0.0.1' and $syslogseverity-text == 'emerg' then {
*.emerg /var/log/remote/PANIC;myFormat0
stop
}

注意:我嘗試使用 %HOSTNAME% 而不是 %FROMHOST-IP% 但它總是列印 localhost 即使遠端主機名配置正確。

要在本地和遠端主機上測試執行:

logger -p daemon.emerg "TEST from $HOSTNAME"

本地執行列印到 cosole,遠端僅記錄到文件 PANIC

引用自:https://unix.stackexchange.com/questions/410684