作为一个功能强大和高度配置化的系统日志守护进程,rsyslog可以在日志服务器或日志客户端这两种不同的环境中运行。作为日志服务器,rsyslog可以从网络中的其他主机收集日志数据;作为日志客户端,可以过滤并发送内部日志消息至可路由的远程rsyslog服务器。
岢岚网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
以下是rsyslog的一些关键特性:
这些特性使rsyslog成为处理和管理系统日志的强大工具。
rsyslog日志类型用来定义日志消息的来源,方便对日志进行分类:
rsyslog日志等级定义不同消息的级别:
图片
为了将内部日志消息发送到远程rsyslog服务器,我们可以采用以下拓扑配置:
通过上述配置,我们可以实现内部日志的集中管理和存储,以便进行后续的分析和监控。
图片
3.1 rsyslog日志服务端配置
- 检查是否安装了rsyslog服务
ps -ef | grep rsyslog
rsyslogd -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/rsyslogd
udp6 0 0 :::514 :::* 551/rsyslogd
如果rsyslog守护进程被设置在TCP连接端口,可以看到类似下面的输出:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1891/rsyslogd
tcp6 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查看日志信息,可以看到日志文件中有客户端发送的内容:
图片
为了提高安全性,可以通过使用TLS进行安全的远程日志记录。使用TLS进行安全的远程日志记录具有以下一些安全优势:
下面将使用两个不同的节点演示如何使用带有TLS证书的rsyslog进行安全的远程日志记录。这两个节点分别是client和server,client节点作为rsyslog客户端,server节点作为远程日志服务器。
要创建用于将syslog安全转发到远程日志服务器的自签名证书,需要先安装certtool工具,它是GnuTLS的一部分:
yum -y install gnutls-utils
生成私钥,并设置权限以确保创建的密钥只对root用户可读:
certtool --generate-privkey --outfile ca-key.pem
chmod 400 ca-key.pem
创建自签名CA证书:
certtool --generate-self-signed --load-privkey ca-key.pem --outfile ca.pem
关于证书有效性,当该证书过期时,需要重新创建所有证书,我们可以设置一个比较长的时间3650天(大约10年)。
图片
如图所示,ca-key.pem是证书颁发机构的私钥,ca.pem是分发给其他节点的公钥。
图片
在此步骤中,我们将生成服务器端(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
接下来,我们将密钥复制到远程节点服务端node3。
在复制密钥之前,在服务器节点上创建一个目录rsyslog-key来存储这些密钥,将密钥从client复制到server。
为了在服务端接受消息,需进行相应的配置:
在/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
配置客户端实现将日志安全地传输到远程日志服务器,在客户端创建目录,存储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
在客户端rsyslog client输入:logger "hello world",截图信息可知远程日志服务器接收到了客户端发送的消息。
图片
rsyslog是一个强大而安全的日志处理系统,被广泛用于不同Linux发行版中,如Ubuntu 14.04、CentOS 6及以后的版本。它提供了丰富的功能,可以从不同的源收集日志,并提供过滤和格式化日志的能力。
通过使用rsyslog,我们能够轻松管理和记录系统日志。rsyslog可以集中处理和存储登录认证、系统日志等重要信息,并将其发送到远程日志服务器上。这样做有助于减轻系统的负载并确保日志的集中管理。此外,通过rsyslog,我们可以随时获取最新的日志信息,以进行监控和分析,帮助我们了解系统的运行状况。
总的来说,rsyslog在日志收集方面提供了强大的功能,使我们能够更好地管理和利用系统日志。它是一个可靠且广泛使用的工具,有助于提高系统的安全性、可靠性和可管理性。
新闻标题:浅谈rsyslog配置和日志转发
文章路径:http://www.shufengxianlan.com/qtweb/news47/480147.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联