syslog 解析器支持 message_decoder 和 extract_sd 选项,并自动检测两种格式:RFC-6587、RFC-5424 和 RFC-3164。

配置 message_decoder 选项

syslog 分析程序可以使用所有通用选项和 message_decoder 选项。默认情况下,仅提取 timestampappname 字段。可通过将 liagent.ini 文件中的配置值设置为类似于以下示例的值,来启用 message_decoder 选项:

[filelog|data_logs]
directory=D:\Logs
include=*.txt
parser=mysyslog

[parser|mysyslog]
base_parser=syslog
message_decoder=syslog_message_decoder
debug=yes

[parser|syslog_message_decoder]
base_parser=kvp
fields=*

使用 message_decoder 选项进行分析

以下示例显示了一个示例事件,以及由配置为使用 message_decoder 选项的 syslog 分析程序添加到该事件的字段:

  • 示例事件:
    2015-09-09 13:38:31.619407 +0400 smith01 john: Fri Dec 5 08:58:26 2014 [pid 26123] [jsmith.net] status_code=FAIL oper_
    ation=LOGIN: Client "176.31.17.46"
  • 由应用了 message_decoder 选项以运行 KVP 分析程序的 syslog 分析程序返回的内容:
    timestamp=2015-09-09T09:38:31.619407 appname=john status_code=FAIL operation=LOGIN:

配置 extract_sd 选项以分析结构化数据

要分析结构化数据,请通过将 liagent.ini 文件中的配置值设置为类似于以下示例的值来启用 extract_sd 选项:

[filelog|simple_logs]
directory=/var/log
include=*.txt
parser=syslog_parser

[parser|syslog_parser]
base_parser=syslog
extract_sd=yes

使用 extract_sd 选项进行分析

以下示例显示了一个示例事件,以及由配置为使用 extract_sd 选项的 syslog 分析程序添加到该事件的字段:

  • 示例事件:<165>1 2017-01-24T09:17:15.719Z localhost evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"][examplePriority@32473 class="high"] Found entity IPSet, display name dummy ip set 1411
  • syslog 分析程序会将以下字段添加到该事件:
    timestamp=2017-01-24T09:17:15.719000
    pri_facility=20
    pri_severity=5
    procid="-"
    msgid="ID47"
    iut="3"
    eventsource="Application"
    eventid="1011"
    class="high"
    appname="evntslog"

由分析程序提取的字段

分析程序会自动从事件中提取以下字段:

RFC 分类 pri_facility pri_severity timestamp appname procid msgid
非 RFC X X
RFC-3164 X X X X
RFC-5424 X X X X X X

syslog 分析程序选项

下表介绍了可用的 syslog 选项。

选项 描述
message_decoder

定义用于分析事件消息主体的其他分析程序。它可以是内置分析程序(如“自动”),也可以是任何自定义分析程序。

extract_sd 分析结构化数据。

extract_sd 选项仅支持使用值“yes”或“no”。默认情况下,该选项处于停用状态。启用 extract_sd 选项后,它只是从结构化数据中提取所有键值对。

针对 RFC-5424 标准的分析

以下示例显示了由配置为显示用于收集器的配置的 syslog 实例分析的两个事件、一个示例事件以及由 syslog 分析程序添加到该事件的字段。
  • 配置:
    [filelog|simple_logs]
    directory=/var/log
    include=*.txt
    parser=syslog
    
  • 在监控的文件中生成的事件:

    <165>1 2017-01-24T09:17:15.719Z router1 mgd 3046 UI_DBASE_LOGOUT_EVENT [[email protected] username=\"regress\"] User 'regress' exiting configuration mode - Juniper format

  • 由 syslog 分析程序添加到该事件的字段:
    The following fields will be added to the event by Syslog parser:
    timestamp=2017-01-24T09:17:15.719000
    pri_facility = 20
    pri_severity = 5
    procid = 3046
    msgid = UI_DBASE_LOGOUT_EVENT
    appname = mgd
    
    

针对 RFC-3164 标准的分析

以下示例显示了用于收集器的配置、一个示例 RFC-3164 事件以及由 syslog 添加到该事件的字段。

  • 配置:
    [filelog|simple_logs]
    directory=/var/log
    include=*.txt
    parser=syslog
    
  • 在监控的文件中生成的 RFC-3164 事件:
    <13>2017-01-24T09:17:15.719Z router1 mgd 3046 UI_DBASE_LOGOUT_EVENT User 'regress' exiting configuration mode - Juniper format
    
  • 由 syslog 分析程序添加到该事件的字段:
     
    timestamp=2017-01-24T09:17:15.719000
    pri_facility=1
    pri_severity=5
    appname="mgd"