14.4. 通过 TCP 配置远程日志记录到服务器
您可以配置系统,以通过 TCP 协议将日志消息转发到服务器。omfwd 插件通过 UDP 或 TCP 提供转发。默认协议是 UDP。因为插件内置在内,所以不必加载它。
先决条件
-
rsyslog软件包安装在应该向服务器报告的客户端系统上。 - 您已为远程日志记录配置了服务器。
- 在 SELinux 中允许指定的端口并在防火墙中打开。
-
系统包含
policycoreutils-python-utils软件包,它为 SELinux 配置中添加非标准端口提供semanage命令。
流程
在
/etc/rsyslog.d/目录中创建一个名为 的新文件,如10-remotelog.conf,并插入以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
-
queue.type="linkedlist"设置启用 LinkedList 内存中队列, -
queue.filename设置定义磁盘存储。备份文件是使用example_fwd前缀,在之前全局workDirectory指令指定的工作目录中创建的。 -
action.resumeRetryCount -1设置防止rsyslog在服务器没有响应而重试连接时丢弃消息, -
如果
rsyslog关闭,queue.saveOnShutdown="on"设置会保存内存中的数据。 最后一行将所有收到的消息转发到日志记录服务器。端口规格是可选的。
使用这个配置,
rsyslog会向服务器发送消息,但如果远程服务器无法访问,则会将消息保留在内存中。只有rsyslog耗尽配置的内存队列空间或需要关闭时,才能创建磁盘上的文件,从而让系统性能受益。
注意rsyslog 按照一般顺序处理配置文件
/etc/rsyslog.d/。-
重新启动
rsyslog服务。systemctl restart rsyslog
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证客户端系统向服务器发送信息,请按照以下步骤执行:
在客户端系统中发送测试信息:
logger test
# logger testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在服务器系统上,查看
/var/log/messages日志,例如:cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中 hostname 是客户端系统的主机名。请注意,日志包含输入
logger命令的用户的用户名,本例中为root。