1、我们将不同主机的日志发送至同一个服务器的意义?
假设,我们的工作人员每天需要查看大量的日志文件,十台服务器来回的登录查看,还能接受,那要是一万台服务器,是不是非常的繁琐,此时我们将每一台服务器的日志发送至同一台服务器,那么我们的工作人员就只用在一台服务器上查看所有的服务器日志,大大减少了繁琐程度。
2、那么我们如何设置日志服务器呢?
首先rsyslog守护进程可以被分配成两种:
(1)rsyslog日志收集器,用于收集其他其他主机上的日志服务器。
(2)rsyslog客户端,用于将本机内部的日志信息路由到远程的rsyslog日志收集服务器。
首先配置rsyslog日志收集服务器:
1、在 GLOBAL DIRECTIVES 前面添加以下内容:
$template IpTemplate,"/var/log/%FROMHOST-IP%.log"
使 rsyslog 后台进程将日 志消息写到 /var/log 下的单独的本地日志文件中,其中日志文件的名称是基于远 程日志发送机器的主机名以及生成该日志的应用程序名进行定义的
*.* ?IpTemplate
IpTemplate 模板应用到所有接收到的日志上。
2、rsyslog 接收远程日志且去掉日志头配置如图所示:

3、取消UDP,TCP协议的注释,如图:

4、然后重启rsyslog服务:
systemctl restart rsyslog
至此rsyslog日志收集服务器配置完成
然后配置rsyslog客户端(发送端):
1、客户端只需要配置需要发送的IP地址即可
一般采用tcp更为稳定的协议。而rsyslog服务器端也将采用tcp连接,需要在发送的IP前加一个@。如图:

第一行:表示使用tcp协议
第二行:表示使用udp协议,以及只发送info级别的日志文件
2、重启服务
systemctl restart rsyslog
3、测试日志服务
测试使用logger:
logger是shell命令接口,通过接口可以使用syslog的日志模块。
logger 的使用:
-i 每行都记录进程ID
-t 日志中的每一行都加一个error标签
-p 指定自定义的日志设备
使用案例:logger -it error -p local5.info "hello world"
在客户端使用logger "hello world"
在服务器端,进入/var/log/下,cat对应的服务器端 IP.log
本文介绍了如何通过rsyslog将多台服务器的日志集中到一台服务器,详细讲解了配置rsyslog收集器和客户端的过程,包括设置模板、协议选择和测试方法。

被折叠的 条评论
为什么被折叠?



