Rsyslog的三种传输协议简要介绍

rsyslog的三种传输协议

rsyslog 可以理解为多线程增强版的syslog.

 rsyslog提供了三种远程传输协议,分别是:

1. UDP 传输协议

基于传统UDP协议进行远程日志传输,也是传统syslog使用的传输协议;

可靠性比较低,但性能损耗最少, 在网络情况比较差,

或者接收服务器压力比较高情况下,可能存在丢日志情况。

在对日志完整性要求不是很高,在可靠的局域网环境下可以使用。

2.TCP 传输协议

基于传统TCP协议明文传输,需要回传进行确认,可靠性比较高;

但在接收服务器宕机或者两者之间网络出问题的情况下,会出现丢日志情况。

这种协议相比于UDP在可靠性方面已经好很多,并且rsyslog原生支持,配置简单,

同时针对可能丢日志情况,可以进行额外配置提高可靠性,因此使用比较广。

3.RELP 传输协议

RELP(Reliable Event Logging Protocol)是基于TCP封装的可靠日志消息传输协议;

是为了解决TCP 与 UDP 协议的缺点而在应用层实现的传输协议,也是三者之中最可靠的。

需要多安装一个包rsyslog-relp以支持该协议。

配置文件一般不会直接修改主配置文件,在/etc/rsyslog.d目录下创建新的配置文件,rsyslog会自动来加载

4.示例

(1)UDP传输配置

服务端创建配置文件udp.conf

# server configure

$Modload imudp

$UDPServerRun 514

$AllowedSender UDP, 10.0.0.0/16   #设置白名单

$template log_location, /var/log/%fromhost-ip%/%$YEAR%-%$MONTH%-%$DAY%.log

$template log_format, "%fromhost-ip% %msg%
"

#把非本地传输的日志按照指定的文件路径及格式保存

:fromhost-ip, !isequal, "172.0.0.1" -?log_location;log_format

#已经匹配处理的内容,不再进行其他处理

& ~

 

客户端配置:

*.*       @10.0.0.1:514

(2)TCP传输配置

服务端修改UDP为TCP

客户端修改:

*.*       @@10.0.0.1:514

(3)RELP传输配置

$ sudo yum install rsyslog-relp(客户端和服务端)

服务端修改

$Modload imrelp

$UDPServerRun 514

客户端修改

*.* :omrelp:10.0.0.1:514
原文地址:https://www.cnblogs.com/cherishry/p/6780178.html