172173.com

分享博文:
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

 评论