一、Rsyslog简介
ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地。
二、Rsyslog的传输方式有三种:
- UDP 传输协议
基于传统UDP协议进行远程日志传输,也是传统syslog使用的传输协议;
可靠性比较低,但性能损耗最少
在网络情况比较差,或者接收服务器压力比较高情况下,可能存在丢日志情况。 - TCP 传输协议
基于传统TCP协议明文传输,需要回传进行确认,可靠性比较高;
但在接收服务器宕机或者两者之间网络出问题的情况下,会出现丢日志情况。 - RELP 传输协议
RELP(Reliable Event Logging Protocol)是基于TCP封装的可靠日志消息传输协议;
是为了解决TCP 与 UDP 协议的缺点而在应用层实现的传输协议,也是三者之中最可靠的。
对于线上服务器,为了日志安全起见,建议使用还是使用 RELP 协议进行传输。
实践
本次实验使用的是Cnetos6系统,通过udp协议走默认端口514进行日志传输
rsyslog收集服务器的ip为:192.168.50.131
UDP协议
1、使用如下三条命令修改默认配置文件中的内容开放协议和添加日志收集服务器路由:
sed -i 's/^#\$ModLoad imudp/\$ModLoad imudp/' /etc/rsyslog.conf
sed -i 's/^#\$UDPServerRun 514/\$UDPServerRun 514/' /etc/rsyslog.conf
sed -i '/#*.* @@remote-host:514/a\*.* @192.168.50.131:514' /etc/rsyslog.conf # 一个@表示使用udp协议
vim /etc/rsyslog.conf 编辑文件可查看更改内容
2、然后重启rsyslog服务即可:
service rsyslog restart # Centos6.x
systemctl restart rsyslog # Centos7.x
TCP协议
1、使用如下三条命令修改默认配置文件中的内容开放协议和添加日志收集服务器路由:
sed -i 's/^#\$$ModLoad imtcp/\$ModLoad imtcp/' /etc/rsyslog.conf
sed -i 's/^#\$InputTCPServerRun 514/\$InputTCPServerRun 514/' /etc/rsyslog.conf
sed -i '/#*.* @@remote-host:514/a\*.* @@192.168.50.131:514' /etc/rsyslog.conf # 两个@@符号表示tcp协议
2、重启服务
service rsyslog restart # Centos6.x
systemctl restart rsyslog # Centos7.x
RELP协议 (未实践)
本文不做讲解,感兴趣的可查看本文参考的博文
点击跳转