答案:通过配置rsyslog服务端和客户端,使用TCP协议将多台主机日志集中到中心节点。服务端启用imtcp模块监听514端口,设置模板按主机名存储日志;客户端添加转发规则指向服务端地址;开放防火墙端口并验证日志汇聚,实现高效统一监控与故障排查。

在大规模 Linux 环境中,手动逐台查看日志效率极低。使用 rsyslog 将多台主机的日志集中到一个中心节点,是实现统一监控和故障排查的有效方式。整个过程分为服务端配置(接收日志)和客户端配置(发送日志),基于 UDP 或 TCP 协议传输,推荐使用 TCP 保证可靠性。
中心服务器需要启用网络监听功能,接收来自客户端的日志消息。
编辑主配置文件:
sudo vim /etc/rsyslog.conf取消以下行的注释以启用 TCP 和 UDP 接收(根据需要选择,建议开启 TCP):
module(load="imtcp") input(type="imtcp" port="514") # module(load="imudp") # input(type="imudp" port="514")若需为不同主机的日志分开存储,可添加模板规则。例如按主机名分目录:
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%SYSLOGFACILITY-TEXT%.log" *.* ?RemoteLogs创建日志存储目录并设置权限:
sudo mkdir -p /var/log/remote sudo chown -R syslog:adm /var/log/remote重启服务生效:
sudo systemctl restart rsyslog每台需要上报日志的机器都应配置将日志转发至中心服务器。
在客户端的 /etc/rsyslog.conf 文件末尾添加转发规则:
*.* @@(o)central-logger.example.com:514说明:
若需保留本地日志同时转发,规则不变,rsyslog 默认会复制处理。
重启客户端服务:
sudo systemctl restart rsyslog确保服务端的 514 端口在防火墙中开放:
sudo ufw allow from 192.168.10.0/24 to any port 514 proto tcp或使用 firewalld:
sudo firewall-cmd --permanent --add-port=514/tcp sudo firewall-cmd --reload确认服务端监听状态:
ss -tuln | grep 514输出应包含 0.0.0.0:514 或 :::514
在任意客户端执行测试日志写入:
logger "Test log message to central server"在服务端检查对应主机的日志路径:
tail /var/log/remote/client-hostname/auth.log或全局搜索关键字:
grep "Test log message" /var/log/remote/*/*若能看到消息,说明链路正常。
基本上就这些。配置完成后,所有客户端的系统日志会自动流向中心节点,便于集中分析。后续可结合 logrotate 管理日志体积,或接入 ELK 做可视化展示。
以上就是Linux 运维:如何使用 rsyslog 汇总系统日志到集中节点的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号