rsyslog是一个开源工具,被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到一台可以路由到的远程syslog服务器上。
方法一:
在CentOS系统上配置日志转发通常涉及到使用rsyslog
服务。以下是一个基本的配置步骤和示例:
- 确保
rsyslog
已经安装并且服务正在运行。
bashsudo yum install rsyslog # 安装rsyslog
sudo systemctl start rsyslog # 启动rsyslog服务
sudo systemctl enable rsyslog # 设置rsyslog服务开机自启
- 编辑
rsyslog
配置文件来设置日志转发。
打开/etc/rsyslog.conf
文件,然后添加以下行来指定远程日志服务器的地址和端口:
conf*.* @@remote-host:514
其中*.*
代表所有的日志优先级,@@
表示使用TCP协议,remote-host
是远程日志服务器的IP地址或者主机名,514
是远程日志服务器监听的端口。
- 在远程日志服务器上,也要配置
rsyslog
来接收转发的日志。
编辑远程日志服务器上的/etc/rsyslog.conf
文件,添加以下行来监听514端口并接收转发的日志:
conf$ModLoad imudp
$UDPServerRun 514
local0.* /var/log/forwarded_logs/centos.log
这里,imudp
模块被加载以监听UDP数据包,$UDPServerRun 514
指令使得rsyslog
能够在514端口上接收UDP数据,local0.*
代表所有的local0优先级的日志,/var/log/forwarded_logs/centos.log
是本地存储转发日志的路径。
- 重启
rsyslog
服务以应用更改。
bashsudo systemctl restart rsyslog
确保在进行任何更改后检查配置文件的语法是否正确:
bashsudo rsyslogd -N1
如果没有错误,配置就生效了。
请根据实际网络环境和安全要求调整配置,例如使用TLS加密日志传输。
方法二:
在CentOS上配置Syslog的外部传输可以通过修改rsyslog.conf文件来完成。
- 首先,使用root或者有sudo权限的用户登录到CentOS服务器。
- 打开rsyslog.conf文件进行编辑:
vim /etc/rsyslog.conf
增加内容 ,(后面的*.*.*.*为日志服务器的ip)
*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @@*.*.*.*:514
*.info;mail.none;authpriv.none;cron.none @*.*.*.*:514
在最后增加一条,(后面的*.*.*.*为日志服务器的ip)
*.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info;*.debug @*.*.*.*