rsyslog日志服务器的日志文件路径,使用rsyslog收集日志

rsyslog⽇志服务器的⽇志⽂件路径,使⽤rsyslog收集⽇志为什么使⽤rsyslog?
1.他是POSIX-like系统中标准的logging,有些软件,⽐如haproxy,只使⽤syslog。所以你不能完全消除它
2.通过⽹络硬件被使⽤
3.它有更复杂的设置,但更多的功能⽐竞争对⼿的更好。例如,Elastic Filebeat仍然不能使⽤inofity
4.低内存的使⽤。
5.允许在保存和转发之前更改消息
6.相⽐rsyslog的功能更加全⾯
rsyslog使⽤的协议为:syslog.
动物胶配方整个过程
消息格式
通过⽹络传输的syslog消息看起来是这样的:
TIMESTAMP HOST TAG MSG
PRI:优先级。facility * 8 + severity
facility:0-23        severity:级别
TIMESTAMP:时间格式
瓶嘴HOST:主机名
tag:包含⽣成消息的程序的名称
msg:消息
rsyslog⽇志收集的主体流程:
客户端(input--->filter---->output)===⽹络传输===>服务端(input--->filter---->output)自动拖把
客户端配置解析:
离心浓缩
input:
主要选项:
tag:指定这个值的作⽤是在template中指定rsyslogtag内容,然后传递给服务端⽤于区分⽂件名。
facility:可以不指定,默认就是local0,这个数据会传递到服务端⽤于做条件判断
涉及到读取通配符设置的⽇志⽂件和多⾏读取:
1.为什么使⽤通配符设置⽇志⽂件:如果⼀个⽬录下有很多⽇志⽂件,你都像传输到远程主机去,此时可以设置如上⾯的第⼀⾏:
格式为:
说明:使⽤*匹配所有⽂件,此时匹配的是整个路径,并开启元数据,这样元数据就会附加到消息中。然后再filter的过程中使⽤re_extract 过滤整个路径只剩下⽂件名,然后将这个⽂件名附                        加给⼀个局部属性,最后将这个局部属性附加到template,并和对应的tag部分想结合组成新的tag部分。
当然也可以不使⽤,如第2,3个将指定的⽇志⽂件传输到远程主机。
2.⽇志多⾏处理:
使⽤多⾏消息的⽂件imfile提供3个选项
readMode=1消息被空字符串分割
readMode=2新消息从⾏⾸的rhe开始。如果⾏是从空格或表格开始的,它就是消息的⼀部分。堆栈跟踪通常是这样的
<通过regexp(POSIX Extended)定义新消息
前两个选项在inotify模式下有问题,第三个选项可以全部替换为正确的regexp,所以我们会使⽤它。读取多⾏⽇志有⼀个微妙之处。新消息标记通常放在消息的第⼀⾏。因此,在新消息开始之前,我们
不能确定最后⼀条消息是否完整。因为最后⼀条消息可能永远不会被传输。为了避免这种情况,我们设置参数readTimeout,在此秒数之后,最后⼀条消息被认为已经完成。
filter  and output:
上⾯的input部分已经指定了ruleset规则集,⾥⾯可以包含多个操作,操作⾥⾯可以引⽤不同的template,同时可以指定传输的类型,在template中可以指定要传输的⽇志格式。格式之间可能有空格。
template有多种⽤法:
宣传帽1.在客户端指定传输的⽇志格式
2.在服务端指定⽇志的保存的路径已经⽂件名
此处使⽤RELP模块进⾏传输⽽不是UDP或TCP
原因:如果消息是使⽤rsyslog在主机之间传输的,那么可以使⽤RELP ,l⽽不是普通的TCP。它是为rsyslog创建的,现在其他⼀些系统也⽀持它。例如,它由Logstash和Graylog⽀持。使⽤TCP                进⾏传输。可以选择使⽤TLS加密消息。它⽐普通的TCP syslog更可靠,因为它不会在连接中断时丢失消息。它解决了多⾏消息的问题。
server:
input:使⽤imRELP模块接收⽇志并指定相应的规则集。并且引⽤指定模块消除msg之前的空格。
让我们加载所有必要的模块并关闭$EscapeControlCharactersOnReceive,否则我们将在接收到的消息中使⽤\n⽽不是新⾏.
固定的格式:设置⽬录和⽂件的权限。
如下为指定的格式,⼀般不需要修改:
filter and    写⼊新⽂件:
现在让我们创建规则集来解析传⼊的消息并将其保存到适当的⽂件和⽂件夹中。依赖于syslog的服务期望节省消息时间和其他syslog字段。因此,具有标准功能的消息以syslog格式保存。对于具有local0-local7功能的消息,我们将从tag中⽣成⽂件名,并保存没有其他syslog字段的纯消息。消息前⾯有额外空间的问题仍然存在,因为它出现在消息解析阶段。我们会把它剪掉。
为了提⾼性能,我们将使⽤异步写:asyncwrite ="on"和⼤缓冲区:ioBufferSize=64k。我们不会在每个接收到的消
息:flushOnTXEnd="off"之后刷新缓冲区,但是我们将每秒刷新⼀次,以便在⽇志服务器上拥有新⽇志:flushInterval="1"
说明:消息从上⾯的imRELP模块进⾏之后,进⼊如下的规则集,然后进⾏判断,并根据客户端传递过来的tag部分然后使⽤replace和field ⽅法进⾏分割并赋值个appname和logpath,然后进⼊操作,类型是写⼊⽂件,⽂件名是根据dynaFile获取,template指定常规模块,将⽇志写⼊到⽂件。
如上action⾥⾯的dynaFile指定⽣成动态的⽂件路径的template。temolate部分如下:
玻璃包装箱
另外还有队列,不过多说明。

本文发布于:2024-09-22 01:02:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/159167.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   指定   传输   格式   部分
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议