CentOS 7 中配置 rsyslog 日志转发至远程服务器
在 CentOS 7 系统中,若需将本地系统日志集中发送至 IP 地址为 192.168.168.168 的远程日志收集服务器,可通过配置 rsyslog 实现。以下是具体操作步骤。
确认 rsyslog 已安装
首先检查 rsyslog 软件包是否已存在:
rpm -qa | grep rsyslog
通常该服务默认已安装。若未安装,可使用以下命令补装:
yum install -y rsyslog
编辑主配置文件
打开 rsyslog 的全局配置文件进行修改:
vim /etc/rsyslog.conf
添加日志转发规则
在文件末尾加入如下行,表示将所有设施(facility)和优先级(priority)的日志通过 UDP 协议发送至目标服务器的 514 端口:
*.* @192.168.168.168:514
如需使用更可靠的 TCP 协议传输,则应使用双@符号:
*.* @@192.168.168.168:514
保存并重启服务
保存更改后退出编辑器,并重新启动 rsyslog 服务以应用新配置:
systemctl restart rsyslog
为确保开机自启,建议启用服务:
systemctl enable rsyslog
防火墙配置(可选)
如果本机启用了 firewalld,需允许 outbound 流量通过 514/udp 或 514/tcp:
firewall-cmd --add-service=syslog --permanent
firewall-cmd --reload
配置说明与高级用法
/etc/rsyslog.conf 是 rsyslog 的核心配置文件,其结构包含多个关键部分:
- 模块加载:用于启用特定输入/输出功能。例如:
module(load="imuxsock") # 支持本地进程日志采集 module(load="imtcp") # 启用 TCP 接收支持 module(load="omrelp") # 使用 RELP 协议发送日志(更可靠) - 全局参数设置:定义运行时行为,如工作目录:
$WorkDirectory /var/lib/rsyslog - 监听配置:仅当日志服务器角色需要开启接收功能时才配置。客户端无需设置。
- 选择性转发规则:可根据日志来源或内容定制转发策略。示例:
- 仅转发内核日志:
kern.* @192.168.168.168:514 - 仅转发邮件子系统日志:
mail.* @192.168.168.168:514
:msg, contains, "error" @192.168.168.168:514
@ip:port表示使用 UDP 发送,速度快但不保证送达;@@ip:port表示使用 TCP 发送,具备连接确认机制,适合对可靠性要求高的场景。
验证配置有效性
可使用以下命令测试配置语法是否正确:
rsyslogd -N1
无错误提示即表示配置合法。
完成上述配置后,本地系统的日志将按规则持续推送至中心化日志服务器。请确保目标服务器已正确部署并开放相应端口,以便接收来自客户端的数据流。