加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • Part 01●  什么是rsyslog ●
    • Part 02●  rsyslog日志类型及等级 ●
    • Part 03●  如何快速搭建rsyslog ●
    • Part 04●  如何快速搭建到远程日志服务器的安全日记 ●
    • Part 05●  结语  ●
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

浅谈rsyslog配置和日志转发

2023/10/31
1.5万
阅读需 17 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

作者:陈玲,单位:中国移动智慧家庭运营中心

rsyslog是一个开源的日志处理程序,被广泛应用于Linux系统中以提供日志转发和接收功能。本文浅谈linux配置rsyslog以及日志转发。

Part 01●  什么是rsyslog 

作为一个功能强大和高度配置化的系统日志守护进程,rsyslog可以在日志服务器或日志客户端这两种不同的环境中运行。作为日志服务器,rsyslog可以从网络中的其他主机收集日志数据;作为日志客户端,可以过滤并发送内部日志消息至可路由的远程rsyslog服务器。

以下是rsyslog的一些关键特性:

多线程支持:rsyslog提供多线程支持,以实现更高的并发处理能力。

多协议支持:rsyslog可以使用UDPTCP、SSL、TLS、RELP等协议收集信息。

数据库集成:rsyslog能将日志数据存储在MySQL、pgsql、Oracle等多种数据库管理系统中。

强大的过滤器rsyslog提供了强大的自定义过滤器,可以对日志信息进行过滤。

自定义输出格式:用户可以根据需要设置rsyslog的输出格式。

日志集中管理:通过rsyslog,用户可以进行日志集中管理。

C/S架构:在rsyslog的客户端/服务器架构中,客户端会将其日志上传至服务器,用户可以通过查询服务端日志,实现对所有客户端日志的集中管理。

这些特性使rsyslog成为处理和管理系统日志的强大工具。

Part 02●  rsyslog日志类型及等级 

rsyslog日志类型用来定义日志消息的来源,方便对日志进行分类:

rsyslog日志等级定义不同消息的级别:

Part 03●  如何快速搭建rsyslog 

为了将内部日志消息发送到远程rsyslog服务器,我们可以采用以下拓扑配置:

将IP地址为172.21.44.93的虚拟机配置为rsyslog客户端,用于发送日志消息。

将IP地址为172.21.44.245的虚拟机配置为rsyslog日志服务器,用于接收和存储日志消息。

通过上述配置,我们可以实现内部日志的集中管理和存储,以便进行后续的分析和监控。

3.1 rsyslog日志服务端配置

- 检查是否安装了rsyslog服务

ps -ef | grep rsyslogrsyslogd -v

- 编辑配置文件

vi /etc/rsyslog.conf$ModLoad imudp$UDPServerRun 514

这个配置使rsyslog守护进程能够通过UDP端口514接收日志消息。UDP是一种速度比TCP更快的协议,但不具备TCP协议的可靠性。如果需要使用可靠的传输机制,可以设置在TCP端口514上接收日志消息。

需要注意的是,可以同时启用TCP和UDP来监听TCP/UDP连接:

$ModLoad imtcp$InputTCPServerRun 514

除了配置接收日志信息的协议和端口外,还需要创建日志接收模板,以告知rsyslog守护进程如何记录从其他客户端机器接收到的消息。

使用文本编辑器打开/etc/rsyslog.conf文件,在GLOBAL DIRECTIVE块之前添加以下模板配置。使用指令$template RemoteLogs指示rsyslog后台进程将日志消息写入独立的本地日志文件/var/log/rsyslogTest中。

$template RemoteLogs,"/var/log/rsyslogTest/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"  *.* ? RemoteLogs

- 编辑完配置文件后,重启守护进程使更改生效

systemctl restart rsyslog

可以使用netstat命令来验证rsyslog守护进程是否正常工作,运行以下命令:

$ sudo netstat -tulpn | grep rsyslog 如果rsyslog守护进程正在使用UDP监听端口,可以看到类似下面的输出:udp 0 0 0.0.0.0:514 0.0.0.0:* 551/rsyslogdudp6 0 0 :::514 :::* 551/rsyslogd 如果rsyslog守护进程被设置在TCP连接端口,可以看到类似下面的输出:tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1891/rsyslogdtcp6 0 0 :::514 :::* LISTEN 1891/rsyslogd以上输出表明rsyslog守护进程正在监听相应的端口,并处于活动状态。

3.2 rsyslog日志客户端配置

- 安装rsyslog守护进程

CentOS 7上,rsyslog守护进程已经预先安装。可以执行以下命令来验证rsyslog是否已安装到CentOS系统上:

# rpm -qa | grep rsyslog# rsyslogd -v、

如果处于某种原因,rsyslog守护进程没有出现在系统中,可以使用以下命令来安装:

# yum install rsyslog

- 修改配置文件

用文本编辑器打开位于/etc路径下的rsyslog主配置文件:

# vim/etc/rsyslog.conf 开启文件用于编辑后,将IP地址替换为远程rsyslog服务器的IP地址:*.* @172.21.44.245:514 该配置指示rsyslog守护进程将系统上各个设备的各种日志消息路由到远程rsyslog服务器的UDP端口514(IP地址为172.21.44.245)。如果出于某种原因,需要更为可靠的协议TCP,可以如下配置:*.* @@172.21.44.245:514

3.3 编辑完配置文件后,重启守护进程使更改生效

systemctl restart rsyslog.service

- 验证远程日志记录

在rsyslog客户端上输入命令:logger -t kern -p err "addddddddddd",该命令将在客户端上创建一个带有kern类型和err等级的日志消息,内容为"addddddddddd"。

rsyslog service查看日志信息,可以看到日志文件中有客户端发送的内容:

Part 04●  如何快速搭建到远程日志服务器的安全日记 

为了提高安全性,可以通过使用TLS进行安全的远程日志记录。使用TLS进行安全的远程日志记录具有以下一些安全优势:

在网络传输期间,系统日志消息已加密。

syslog发送方向syslog接收方进行身份验证,因此接收者知道与其通信的是谁。

syslog接收方向syslog发送方进行身份验证,因此发送者可以验证是否确实发送给了预期的接收方。

双向身份验证可防止中间人攻击。

下面将使用两个不同的节点演示如何使用带有TLS证书的rsyslog进行安全的远程日志记录。这两个节点分别是client和server,client节点作为rsyslog客户端,server节点作为远程日志服务器。

4.1 生成CA证书

要创建用于将syslog安全转发到远程日志服务器的自签名证书,需要先安装certtool工具,它是GnuTLS的一部分:

yum -y install gnutls-utils

生成私钥,并设置权限以确保创建的密钥只对root用户可读:

certtool --generate-privkey --outfile ca-key.pemchmod 400 ca-key.pem

创建自签名CA证书:

certtool --generate-self-signed --load-privkey ca-key.pem --outfile ca.pem

关于证书有效性,当该证书过期时,需要重新创建所有证书,我们可以设置一个比较长的时间3650天(大约10年)。

如图所示,ca-key.pem是证书颁发机构的私钥,ca.pem是分发给其他节点的公钥。

4.2 生成机器证书

在此步骤中,我们将生成服务器端(server)的私钥和证书。--outfile反映了将要使用私钥的服务器名称,我们将server端名称命名为node3:

certtool --generate-privkey --outfile node3-key.pem --bits 2048

通过私钥获取签名请求,加载服务端私钥node3-key.pem,并将该私钥签名到node3-request.pem:

certtool --generate-request --load-privkey node3-key.pem --outfile node3-request.pem

完成上述操作后,日志服务器的密钥生成过程已经完成。证书颁发机构的私钥(ca-key.pem)将对即将使用的证书进行签名。

certtool --generate-certificate --load-request node3-request.pem --outfile node3-cert.pem --load-ca-certificate ca.pem --load-ca-privkey ca-key.pem

4.3 分发TLS证书以启用安全的远程日志记录

接下来,我们将密钥复制到远程节点服务端node3。

在复制密钥之前,在服务器节点上创建一个目录rsyslog-key来存储这些密钥,将密钥从client复制到server。

4.4 服务器配置以安全转发系统日志

为了在服务端接受消息,需进行相应的配置:

在/etc/rsyslog.config文件中输入以下信息:#将gtls驱动程序设为默认驱动程序 $ DefaultNetstreamDriver gtls#证书文件 $ DefaultNetstreamDriverCAFile /etc/rsyslog-keys/ca.pem $ DefaultNetstreamDriverCertFile /etc/rsyslog-keys/node3-cert.pem $ DefaultNetstreamDriverKeyFile /etc/rsyslog-keys/node3-key.pem#TCP侦听器$ ModLoad imtcp #在仅TLS模式下运行驱动程序$ InputTCPServerStreamDriverMode 1$ InputTCPServerStreamDriverAuthMode anno#在端口514上启动侦听器$ InputTCPServerRun 514

重启rsyslog服务,检查服务状态:

systemctl status rsyslog.service

4.5 客户端配置以安全地接收日志消息

配置客户端实现将日志安全地传输到远程日志服务器,在客户端创建目录,存储ca.pem。

在/etc/rsyslog.config文件中输入以下信息:

#tls protocol $DefaultNetstreamDriver gtls $DefaultNetstreamDriverCAFile /etc/rsyslog-keys/ca.pem $ActionSendStreamDriverAuthMode anon$ActionSendStreamDriverMode 1 *.* @@172.21.44.245:514

重启rsyslog服务,检查服务状态:

systemctl status rsyslog.service

4.6验证远程日志记录

在客户端rsyslog client输入:logger "hello world",截图信息可知远程日志服务器接收到了客户端发送的消息。

Part 05●  结语  

rsyslog是一个强大而安全的日志处理系统,被广泛用于不同Linux发行版中,如Ubuntu 14.04、CentOS 6及以后的版本。它提供了丰富的功能,可以从不同的源收集日志,并提供过滤和格式化日志的能力。

通过使用rsyslog,我们能够轻松管理和记录系统日志。rsyslog可以集中处理和存储登录认证、系统日志等重要信息,并将其发送到远程日志服务器上。这样做有助于减轻系统的负载并确保日志的集中管理。此外,通过rsyslog,我们可以随时获取最新的日志信息,以进行监控和分析,帮助我们了解系统的运行状况。

总的来说,rsyslog在日志收集方面提供了强大的功能,使我们能够更好地管理和利用系统日志。它是一个可靠且广泛使用的工具,有助于提高系统的安全性、可靠性和可管理性。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
KSZ9477STXI-TR 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下载ECAD模型
$17.3 查看
MCP2551T-I/SN 1 Microchip Technology Inc DATACOM, INTERFACE CIRCUIT, PDSO8, 0.150 INCH, LEAD FREE, PLASTIC, SOIC-8

ECAD模型

下载ECAD模型
$1.07 查看
LAN8710A-EZC 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC32, 5 X 5 MM, 0.90 MM HEIGHT, ROHS COMPLIANT, QFN-32

ECAD模型

下载ECAD模型
$1.71 查看
中国移动

中国移动

中国移动有限公司(「本公司」,包括子公司合称为「本集团」)于1997年9月3日在香港成立,本集团在中国内地所有三十一个省、自治区、直辖市以及香港特别行政区提供通信和信息服务,业务主要涵盖个人、家庭、政企和新兴市场的语音、数据、宽带、专线、IDC、云计算、物联网等,是中国内地最大的通信和信息服务供应商,亦是全球网络和客户规模最大、盈利能力领先、市值排名位居前列的世界级通信和信息运营商。

中国移动有限公司(「本公司」,包括子公司合称为「本集团」)于1997年9月3日在香港成立,本集团在中国内地所有三十一个省、自治区、直辖市以及香港特别行政区提供通信和信息服务,业务主要涵盖个人、家庭、政企和新兴市场的语音、数据、宽带、专线、IDC、云计算、物联网等,是中国内地最大的通信和信息服务供应商,亦是全球网络和客户规模最大、盈利能力领先、市值排名位居前列的世界级通信和信息运营商。收起

查看更多

相关推荐

电子产业图谱

移动Labs是中国移动的社交化新媒体平台,是面向外部行业及产业链合作伙伴的信息发布、业务发展和产业推进门户。