14.7. 通过 UDP 配置远程日志记录到服务器
您可以配置系统,以通过 UDP 协议将日志消息转发到服务器。omfwd
插件通过 UDP 或 TCP 提供转发。默认协议是 UDP。因为插件内置在内,所以不必加载它。
先决条件
-
rsyslog
软件包安装在应该向服务器报告的客户端系统上。 - 您已为远程日志记录配置了服务器,如配置服务器 以通过 UDP 接收远程日志信息。
流程
在
/etc/rsyslog.d/
目录中创建一个新的.conf
文件,如10-remotelogcli.conf
,并插入以下内容:*.* action(type="omfwd" queue.type="linkedlist" queue.filename="example_fwd" action.resumeRetryCount="-1" queue.saveOnShutdown="on" target="example.com" port="portno" protocol="udp" )
其中:
-
queue.type="linkedlist"
设置启用一个 LinkedList 内存中队列。 -
queue.filename
设置定义磁盘存储。备份文件使用之前全局workDirectory
指令指定的工作目录中的example_fwd
前缀创建。 -
action.resumeRetryCount -1
设置可防止rsyslog
在重试时丢弃消息(如果服务器没有响应)。 -
如果
rsyslog
关闭,启用的 queue.saveOnShutdown="on"
设置会保存内存中的数据。 -
portno
值是您要rsyslog
使用的端口号。默认值为514
。 最后一行将所有收到的消息转发到日志记录服务器,端口规格是可选的。
使用这个配置,
rsyslog
会向服务器发送消息,但如果远程服务器无法访问,则会将消息保留在内存中。只有rsyslog
耗尽配置的内存队列空间或需要关闭时,才能创建磁盘上的文件,从而让系统性能受益。
注意rsyslog 按照一般顺序处理配置文件
/etc/rsyslog.d/
。-
重新启动
rsyslog
服务。# systemctl restart rsyslog
可选:如果没有启用
rsyslog
,请确保rsyslog
服务在重启后自动启动:# systemctl enable rsyslog
验证
要验证客户端系统向服务器发送信息,请按照以下步骤执行:
在客户端系统中发送测试信息:
# logger test
在服务器系统中,查看
/var/log/remote/msg/hostname/root.log
日志,例如:# 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
软件包的文档。