在 CentOS 中,syslog 转发通常指把本机日志发送到远程日志服务器(如集中式日志系统)。CentOS 不同版本使用的 syslog 服务不同:
rsyslog(默认)rsyslog(默认,systemd 环境)下面是最常见、实用的 rsyslog 转发配置方法。
rpm -qa | grep rsyslog
systemctl status rsyslog
如未运行:
systemctl start rsyslog
systemctl enable rsyslog
编辑配置文件(推荐新建文件,避免改坏主配置):
vim /etc/rsyslog.d/forward.conf
*.* @192.168.1.100:514
@:UDP192.168.1.100:日志服务器 IP514:端口*.* @@192.168.1.100:514
@@:TCPauth.* @@192.168.1.100:514
*.err @192.168.1.100:514
*.* @@192.168.1.100:514
$ActionQueueType LinkedList
$ActionQueueFileName fwdRule1
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
systemctl restart rsyslog
在日志服务器上:
vim /etc/rsyslog.conf
启用 UDP / TCP 接收:
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
重启:
systemctl restart rsyslog
防火墙放行:
firewall-cmd --add-port=514/tcp --permanent
firewall-cmd --add-port=514/udp --permanent
firewall-cmd --reload
在客户端执行:
logger "test syslog forward"
在服务器查看:
tail -f /var/log/messages
看到 test syslog forward 即成功。
vim /etc/systemd/journald.conf
ForwardToSyslog=yes
systemctl restart systemd-journald
setsebool -P syslogd_can_send 1
如果你有具体场景(比如:
可以告诉我,我可以给你更精确的配置。