分享博文:
https://blog.csdn.net/fishmai/article/details/51838305
一、Rsyslog
1.什么是syslog服务器?
- syslog服务器可以用作一个网络中的日志监控中心,所有能够通过网络来发送日志的设施(包含了Linux或Windows服务器,路由器,交换机以及其他主机)都可以把日志发送给它。
- 通过设置一个syslog服务器,可以将不同设施/主机发送的日志,过滤和合并到一个独立的位置,这样使得你更容易地查看和获取重要的日志消息。
2.什么是rsyslog服务器?
rsyslog 作为标准的syslog守护进程,预装在了大多数的Linux发行版中。在客户端/服务器架构的配置下,rsyslog同时扮演了两种角色:
- 作为一个syslog服务器,rsyslog可以收集来自其他设施的日志信息;
- 作为一个syslog客户端,rsyslog可以将其内部的日志信息传输到远程的syslog服务器。
二、Rsyslog 常用协议
1.UDP 传输协议
- 基于传统UDP协议进行远程日志传输,也是传统syslog使用的传输协议。
- 可靠性比较低,但性能损耗最少,在网络情况比较差,或者接收服务器压力比较高情况下,可能存在丢日志情况。
- 在对日志完整性要求不是很高,在可靠的局域网环境下可以使用。
- 输入模块:/lib64/rsyslog/imudp.so
1 2 3
| # 加载输入模块,在本地UDP514端口接收日志 $ModLoad imudp $UDPServerRun 514
|
2.TCP 传输协议
- 基于传统TCP协议明文传输,需要回传进行确认,可靠性比较高,但在接收服务器宕机或者两者之间网络出问题的情况下,会出现丢日志情况。
- 这种协议相比于UDP在可靠性方面已经好很多,并且rsyslog原生支持,配置简单。
- 同时针对可能丢日志情况,可以进行额外配置提高可靠性,因此使用比较广。
- 输入模块:/lib64/rsyslog/imtcp.so
1 2 3
| # 加载输入模块,在本地TCP514端口接收日志 $ModLoad imtcp $InputTCPServerRun 514
|
3.RELP 传输协议
- RELP(Reliable
Event Logging
Protocol)是基于TCP封装的可靠日志消息传输协议。
- 是为了解决TCP 与 UDP
协议的缺点而在应用层实现的传输协议,也是三者之中最可靠的。
- 输入模块:/lib64/rsyslog/imrelp.so
- 输出模块:/lib64/rsyslog/omrelp.so
安装relp模块
1 2 3 4 5
| # CentOS yum install rsyslog-relp
# Ubuntu apt-get install rsyslog-relp
|
加载relp模块
1 2 3 4 5 6 7
| # 加载输出模块,使用relp输出模块向rsyslog server发送日志 $ModLoad omrelp user.* :omrelp:10.10.0.19:20514
# Rsyslog Server 加载输入模块,启动TCP20514端口,监听client发送来的日志 $ModLoad imrelp $InputRELPServerRun 20514
|