5.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。