linux日志服务(2): syslog日志整体框架原理

在上篇中说到,Unix/Linux系统产生日志文件的方式有两种,除了少部分软件开发商自定义写入的之外,
大部分日志还是通过linux统一管理日志syslog服务写入的。

syslog是一种标准的协议,分为客户端和服务器端,客户端是产生日志消息的一方,而服务器端负责接收客户端发送来的日志消息,并做出保存到特定的日志文件中或者其他方式的处理。

在Linux中,常见的syslog服务器端程序是rsyslogd守护程序(centos6.0以后)。
如下图,这个程序可以从三个地方接收日志消息:

 syslog接收日志消息

  1. /dev/log(Unix域套接字);
  2. UDP端口514(因特网数据包套接字);
  3. 特殊的设备/dev/klog(读取内核发出的消息)。

1和2的套接字区别主要在于(1)是进程通信,不需要绑定IP。对于大多数程序而言就是向/dev/log这个套接字发送日志消息。

下面的图说明了rsyslog内部的结构以及原理

rsyslog内部结构

rsyslog的消息流是从输入模块->预处理模块->主队列->过滤模块->执行队列->输出模块。
预处理模块主要解决各种syslog协议实现间的差异,举例说明如果日志系统client端使用rsyslog、server端使用syslog-ng,如果自己不做特殊处理syslog-ng是无法识别的。
Input模块是消息来源。
Filter模块处理消息的分析和过滤,rsyslog可以根据消息的任何部分进行过滤
Output模块是消息的目的地。
Queue模块负责消息的存储,从Input传入的未经过滤的消息放在主队列中,过滤后的消息放入到不同action queue中,再由action queue送到各个输出模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值