Centos的rsyslog日志系统(五):解析syslog各种标准格式

1.概况

syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。

2.syslog协议标准

目前业界存在常见两种syslog日志协议,一个是2009年起草协议RFC524,另外一个是2001年的RFC3164协议。以下,为大家介绍这两种协议的不同之处,以便能够在以后实践中能够灵活应用grok解析syslog日志。

2.1 RFC5424协议

RFC5424协议包含以下字段信息,具体信息可以参考官方协议(https://tools.ietf.org/html/rfc5424)

PRI VERSION SP TIMESTAMP SP HOSTNAME SP APP-NAME SP PROCID SP MSGID
以下通过几个示例来解释以上字段代表信息:

<34>1 2019-07-11T22:14:15.003Z aliyun.example.com ali - ID47 - BOM'su root' failed for lonvick on /dev/pts/8

"""
PRI -- 34
VERSION -- 1
TIMESTAMP -- 2019-07-11T22:14:15.003Z
HOSTNAME -- aliyun.example.com
APP-NAME -- ali
PROCID -- 无
MSGID -- ID47
MESSAGE -- 'su root' failed for lonvick on /dev/pts/8
"""

2.2 RFC3164协议

RFC3164协议包含以下字段信息,具体信息可以参考官方协议(https://tools.ietf.org/html/rfc3164)

PRI HEADER[TIME HOSTNAME] MSG
以下通过几个示例来解释以上字段代表信息:

<30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.
"""
PRI -- 30
HEADER
- TIME -- Oct 9 22:33:20
- HOSTNAME -- hlfedora
MSG
- TAG -- auditd[1787]
- Content --The audit daemon is exiting.
- 
"""

3.在syslog配置文件中为用户定制了几种常用格式的syslog

3.1 TraditionalFormat格式

日志内容形式如下:

May  5 10:20:57 iZbp1a65x3r1vhpe94fi2qZ systemd: Started System Logging Service.

FileFormat格式
日志内容形式如下:

2019-05-06T09:26:07.874593+08:00 iZbp1a65x3r1vhpe94fi2qZ root: 834753

RSYSLOG_SyslogProtocol23Format格式
日志内容形式如下:

<13>1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ root - - - twish

RSYSLOG_DebugFormat格式
日志内容形式如下:

2019-05-06T14:29:37.558854+08:00 iZbp1a65x3r1vhpe94fi2qZ root: environment

FluentRFC5424格式
日志内容形式如下:

<16>1 2013-02-28T12:00:00.003Z 192.168.0.1 fluentd 11111 ID24224 [exampleSDID@20224 iut='3' e

FluentRFC3164格式
日志内容形式如下:

<6>Feb 28 12:00:00 192.168.0.1 fluentd[11111]: [error] Syslog test

4.rsyslog预留的模板名

/etc/rsyslog.conf配置文件中系统模板配置项

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalForwardFormat
  • 以”RSYSLOG_”开头的模板名是位rsyslog预留使用的,自定义的模板不要使用这些名字,否则有可能产生冲突导致未知故障。下面就是一直预留共使用的系统模板
  • RSYSLOG_TraditionalFileFormat - 传统风格的使用不怎么精确的时间戳的默认日志文件格式
  • RSYSLOG_FileFormat - “现代风格”的日志文件格式,与TraditionalFileFormat类似,但是使用的是更高精度的时间戳和时区信息
  • RSYSLOG_TraditionalForwardFormat - 传统风格的转发格式,时间戳精度低,通常用于将日志消息转发给其他的syslogd或者低于3.12.5版本的rsyslogd
  • RSYSLOG_SysklogdFileFormat - sysklogd兼容的日志格式。如果使用选项SpaceLFOnReceive on,SpaceLFOnReceiveon,EscapeControlCharactersOnReceive off和$DropTrailingLFOnReception off,那么日志格式就会遵从sysklogd的日志格式
  • RSYSLOG_ForwardFormat - 类似传统的风格,但是有更高精度的时间戳和时区信息。建议在将日志消息转发给3.12.5或更高的rsyslog版本的时候使用
  • RSYSLOG_SyslogProtocol23Format - 在IETF的internet-draft ietf-syslog-protocol-23中指定的格式,可能会成为新的RFC日志标准格式。这种格式加入了一些改进。rsyslog的消息分析程序(message parser)可以读懂这种格式,所以它可以在最近版本的rsyslog中使用,对于不支持的syslog版本可能会直接拒绝这种格式,所以使用之前最好检查一下。【注】在最终的RFC标准出台的时候,格式可能不会发生改变,但也有可能会发生一些变化
  • RSYSLOG_DebugFormat - 一种特殊的用于调试property故障的格式,不要在生产环境或者远程转发的情况下使用这种格式

参考文章:
https://developer.aliyun.com/article/712362

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值