14.9. 配置可靠的远程日志记录
通过可靠的事件日志记录协议(RELP),您可以降低消息丢失的风险通过 TCP 发送和接收 syslog
消息。RELP 提供可靠的事件消息交付,这对于无法接受消息丢失的环境中非常有用。要使用 RELP,请配置服务器上运行的 imrelp
输入模块并接收日志,以及在客户端上运行的 omrelp
输出模块,并将日志发送到日志记录服务器。
先决条件
-
您已在服务器和客户端系统中安装了
rsyslog
、librelp
和rsyslog-relp
软件包。 - 在 SELinux 中允许指定的端口并在防火墙中打开。
流程
配置客户端系统以可靠远程记录:
在客户端系统上,在
/etc/rsyslog.d/
目录中创建一个新的.conf
文件,例如relpclient.conf
,并插入以下内容:module(load="omrelp") *.* action(type="omrelp" target="_target_IP_" port="_target_port_")
其中:
-
target_IP
是日志记录服务器的 IP 地址。 -
target_port
是日志记录服务器的端口。
-
-
保存对
/etc/rsyslog.d/relpclient.conf
文件的更改。 重新启动
rsyslog
服务。# systemctl restart rsyslog
可选:如果没有启用
rsyslog
,请确保rsyslog
服务在重启后自动启动:# systemctl enable rsyslog
配置服务器系统以可靠远程记录:
在服务器系统中,在
/etc/rsyslog.d/
目录中创建一个新的.conf
文件,例如reserv.conf
,并插入以下内容:ruleset(name="relp"){ *.* action(type="omfile" file="_log_path_") } module(load="imrelp") input(type="imrelp" port="_target_port_" ruleset="relp")
其中:
-
log_path
指定存储消息的路径。 -
target_port
是日志记录服务器的端口。使用与客户端配置文件中相同的值。
-
-
保存对
/etc/rsyslog.d/relpserv.conf
文件的更改。 重新启动
rsyslog
服务。# systemctl restart rsyslog
可选:如果没有启用
rsyslog
,请确保rsyslog
服务在重启后自动启动:# systemctl enable rsyslog
验证
要验证客户端系统向服务器发送信息,请按照以下步骤执行:
在客户端系统中发送测试信息:
# logger test
在服务器系统中,查看指定
log_path
的日志,例如:# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
其中
hostname
是客户端系统的主机名。请注意,该日志包含输入 logger 命令的用户的用户名,本例中为root
。
其他资源
-
rsyslogd(8)
和rsyslog.conf(5)
手册页。 -
在
/usr/share/doc/rsyslog/html/index.html
文件中通过rsyslog-doc
软件包安装的文档。