Rsyslog的全称是 rocket-fast system for log,它提供了高性能,高安全功能和模块化设计。rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。
日志是任何软件或操作系统的关键组件。 日志通常会记录用户的操作、系统事件、网络活动等等,具体取决于它们的用途。 Linux 系统上使用最广泛的日志系统之一是 rsyslog 。
Rsyslog 是一个强大、安全和高性能的日志处理系统,它接受来自不同类型源(系统/应用程序)的数据并输出为多种格式。
它已经从一个常规的 syslog 守护进程发展成为一个功能齐全的企业级日志系统。 它采用客户端/服务器模型设计,因此可以配置为客户端和/或其他服务器、网络设备和远程应用程序的中央日志服务器。
功能特性:
多线程
可以通过许多协议进行传输UDP,TCP,SSL,TLS,RELP;
直接将日志写入到数据库;
支持加密协议:ssl,tls,relp
强大的过滤器,实现过滤日志信息中任何部分的内容
自定义输出格式
Rsyslog提供了三种远程传输协议:
UDP 传输协议
基于传统UDP协议进行远程日志传输,也是传统syslog使用的传输协议; 可靠性比较低,但性能损耗最少, 在网络情况比较差, 或者接收服务器压力比较高情况下,可能存在丢日志情况。 在对日志完整性要求不是很高,在可靠的局域网环境下可以使用。
TCP 传输协议
基于传统TCP协议明文传输,需要回传进行确认,可靠性比较高; 但在接收服务器宕机或者两者之间网络出问题的情况下,会出现丢日志情况。 这种协议相比于UDP在可靠性方面已经好很多,并且rsyslog原生支持,配置简单, 同时针对可能丢日志情况,可以进行额外配置提高可靠性,因此使用比较广。
RELP 传输协议
RELP(Reliable Event Logging Protocol)是基于TCP封装的可靠日志消息传输协议; 是为了解决TCP 与 UDP 协议的缺点而在应用层实现的传输协议,也是三者之中最可靠的。 需要多安装一个包rsyslog-relp以支持该协议。
Rsyslog架构阐述:
环境准备
属性 Rsyslog服务器 Rsyslog客户端节点 rsyslog-server rsyslog-client
系统 CentOS Linux release 7.5.1804 (Minimal) CentOS Linux release 7.5.1804 (Minimal)
内核 3.10.0-862.el7.x86_64 3.10.0-862.el7.x86_64
SELinux setenforce 0 | disabled setenforce 0 | disabled
IP地址 172.16.70.186 172.16.70.187
Rsyslog服务端/客户端前提设置。
[root@rsyslog-server ~]# rpm -qa | grep rsyslog [root@rsyslog-server ~]# yum install -y rsyslog [root@rsyslog-server ~]# rsyslogd -v # 查看版本 rsyslogd 8.24.0-57.el7_9, compiled with: PLATFORM: x86_64-redhat-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes Number of Bits in RainerScript integers: 64 See for more information. [root@rsyslog-server ~]# rpm -qc rsyslog # 相关配置文件 /etc/logrotate.d/syslog /etc/rsyslog.conf /etc/sysconfig/rsyslog [root@rsyslog-server ~]# setenforce 0 [root@rsyslog-server rsyslog]# getenforce Permissive # 防火墙允许tcp/udp的514端口 [root@rsyslog-server ~]# firewall-cmd --permanent --add-port=514/udp [root@rsyslog-server ~]# firewall-cmd --permanent --add-port=514/tcp [root@rsyslog-server ~]# firewall-cmd --reload [root@rsyslog-server ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: ssh dhcpv6-client ports: 514/tcp 514/udp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: