详情页标题前

阿里云日志服务SLS解析Syslog标准格式数据-云淘科技

详情页1

Syslog是一种行业标准的协议,可用来记录设备的日志。常见的应用场景是网络管理工具、安全管理系统、日志审计系统。本文档介绍如何使用SLS DSL中的GROK函数高效快捷的解析不同格式的Syslog日志。

概况

在Unix类操作系统上,Syslog广泛应用于系统日志。Syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收Syslog的服务器。服务器可以对多个设备的Syslog消息进行统一的存储,或者解析其中的内容做相应的处理。

问题

长期以来,没有一个标准来规范Syslog的格式,导致Syslog的格式非常随意。甚至有些情况下没有任何格式,导致程序不能对Syslog消息进行解析,只能将它看作是一个字符串。所以如何解析不同格式的Syslog日志就变的非常重要。

Syslog协议标准简介

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

  • RFC5424协议RFC5424协议包含以下字段信息,具体信息请参见官方协议。
    PRI VERSION SP TIMESTAMP SP HOSTNAME SP APP-NAME SP PROCID SP MSGID

    通过以下示例来对以上字段进行说明:

    """
    Example1:
    1 2019-07-11T22:14:15.003Z aliyun.example.com ali - ID47 - BOM'su user' 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 user' failed for lonvick on /dev/pts/8
    """
    Example2:
    1 2019-07-11T22:14:15.000003-07:00 192.0.2.1 myproc 8710 - - %% It's time to make the do-nuts.
    """
    PRI -- 165
    VERSION -- 1
    TIMESTAMP -- 2019-07-11T05:14:15.000003-07:00
    HOSTNAME -- 192.0.2.1
    APP-NAME -- myproc
    PROCID -- 8710
    STRUCTURED-DATA -- “-”
    MSGID -- “-”
    MESSAGE -- "%% It's time to make the do-nuts."
    """
    Example3: - with STRUCTURED-DATA
    1 2019-07-11T22:14:15.003Z aliyun.example.com
               evntslog - ID47 [exampleSDID@32473 iut="3" eventSource=
               "Application" eventID="1011"] BOMAn application
               event log entry...
    """
    PRI -- 165
    VERSION -- 1
    TIMESTAMP -- 2019-07-11T22:14:15.003Z
    HOSTNAME -- aliyun.example.com
    APP-NAME -- evntslog
    PROCID -- "-"
    MSGID -- ID47
    STRUCTURED-DATA -- [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"]
    MESSAGE -- An application event log entry...
  • RFC3164协议RFC3164协议包含以下字段信息,具体信息请参见官方协议。
    PRI HEADER[TIME HOSTNAME] MSG

    通过以下示例来对以上字段进行说明:

    """
    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.

使用GROK解析Syslog常见格式

使用GROK对几种常用格式的Syslog进行解析。具体的GROK规则请参见GROK模式参考。

  • 解析TraditionalFormat格式
    • 原始日志
        receive_time: 1558663265
        __topic__:
        content: May  5 10:20:57 iZbp1a65x3r1vhpe94fi2qZ systemd: Started System Logging Service.
    • SLS DSL规则
      e_regex('content', grok('%{SYSLOGBASE} %{GREEDYDATA:message}'))
    • 加工结果
        receive_time: 1558663265
        __topic__:
        content: May  5 10:20:57 iZbp1a65x3r1vhpe94fi2qZ systemd: Started System Logging Service.
        timestamp: May  5 10:20:57
        logsource: iZbp1a65x3r1vhpe94fi2qZ
        program: systemd
        message: Started System Logging Service.
  • 解析FileFormat格式
    • 原始日志
        receive_time: 1558663265
        __topic__:
        content: 2019-05-06T09:26:07.874593+08:00 iZbp1a65x3r1vhpe94fi2qZ user: 834753
    • SLS DSL规则
      e_regex('content',grok('%{TIMESTAMP_ISO8601:timestamp} %{SYSLOGHOST:hostname} %{SYSLOGPROG} %{GREEDYDATA:message}'))
    • 加工结果
        receive_time: 1558663265
        __topic__:
        content: 2019-05-06T09:26:07.874593+08:00 iZbp1a65x3r1vhpe94fi2qZ user: 834753
        timestamp: 2019-05-06T09:26:07.874593+08:00
        hostname: iZbp1a65x3r1vhpe94fi2qZ
        program: user
        message: 834753
  • 解析RSYSLOG_SyslogProtocol23Format格式
    • 原始日志
        receive_time: 1558663265
        __topic__:
        content: 1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twish
    • SLS DSL规则
      e_regex('content',grok('%{POSINT:priority}>%{NUMBER:version} %{TIMESTAMP_ISO8601:timestamp} %{syslogHOST:hostname} %{PROG:program} - - - %{GREEDYDATA:message}'))
    • 加工结果
        receive_time: 1558663265
        __topic__:
        content: 1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twish
        priority: 13
        version: 1
        timestamp: 2019-05-06T11:50:16.015554+08:00
        hostname: iZbp1a65x3r1vhpe94fi2qZ
        program: user
        message: twish
  • 解析RSYSLOG_DebugFormat格式
    • 日志内容
        receive_time: 1558663265
        __topic__:
        content: 2019-05-06T14:29:37.558854+08:00 iZbp1a65x3r1vhpe94fi2qZ user: environment
    • SLS SL规则
      e_regex('content',grok('%{TIMESTAMP_ISO8601:timestamp} %{SYSLOGHOST:hostname} %{SYSLOGPROG} %{GREEDYDATA:message}'))
    • 加工结果
        receive_time: 1558663265
        __topic__:
        content: 2019-05-06T14:29:37.558854+08:00 iZbp1a65x3r1vhpe94fi2qZ user: environment
        timestamp: 2019-05-06T14:29:37.558854+08:00 
        hostname: iZbp1a65x3r1vhpe94fi2qZ
        program: user
        message: environment

使用GROK解析Syslog非常见日志格式

使用GROK解析不常见的两种Syslog日志格式,即fluent软件采用的FluentRFC5424格式和FluentRFC3164格式。

  • FluentRFC5424格式
    • 日志内容
        receive_time: 1558663265
        __topic__:
        content: 1 2019-02-28T12:00:00.003Z 192.168.0.1 aliyun 11111 ID24224 [exampleSDID@20224 iut='3' eventSource='Application' eventID='11211] Hi, from Fluentd!
    • SLS DSL规则
      e_regex('content',grok('%{POSINT:priority}>%{NUMBER:version} %{TIMESTAMP_ISO8601:timestamp} %{SYSLOGHOST:hostname} %{WORD:ident} %{USER:pid} %{USERNAME:msgid} (?P(\[(.*)\]|[^ ])) %{GREEDYDATA:message}'))
    • 加工结果
        receive_time: 1558663265
        __topic__:
        content: 1 2019-02-28T12:00:00.003Z 192.168.0.1 aliyun 11111 ID24224 [exampleSDID@20224 iut='3' eventSource='Application' eventID='11211] Hi, from aliyun!
        priority: 16
        version: 1
        timestamp: 2019-02-28T12:00:00.003Z
        hostname: 192.168.0.1
        ident: aliyun
        pid: 1111
        msgid: ID24224
        extradata: [exampleSDID@20224 iut='3' eventSource='Application' eventID='11211]
        message: Hi, from aliyun!
  • FluentRFC3164格式
    • 日志内容
        receive_time: 1558663265
        __topic__:
        content: Feb 28 12:00:00 192.168.0.1 aliyun[11111]: [error] Syslog test
    • SLS DSL规则
      e_regex('content', grok('%{POSINT:priority}>%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} %{WORD:ident}(?P(\[[a-zA-Z0-9._-]+\]|[^:])): (?P(\[(\w+)\]|[^ ])) %{GREEDYDATA:message}'))
    • 加工结果
       receive_time: 1558663265
        __topic__:
        content: Feb 28 12:00:00 192.168.0.1 aliyun[11111]: [error] Syslog test
        priority: 6
        timestamp: Feb 28 12:00:00
        hostname: 192.168.0.1
        ident: aliyun
        pid: [1111]
        level: [error]
        message: Syslog test
  • 拓展解析priority解析FluentRFC5424格式和FluentRFC3164格式的Syslog过后的日志内容,还可以对priority进一步解析,并且匹配解析出来的facility和serverity信息,关于使用RFC5424协议更多内容请参见e_syslogrfc。示例如下:
    • 原始日志
      receive_time: 1558663265
        __topic__:
        content: 1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twish
        priority: 13
        version: 1
        timestamp: 2019-05-06T11:50:16.015554+08:00
        hostname: iZbp1a65x3r1vhpe94fi2qZ
        program: user
        message: twish
    • SLS DSL规则
      e_syslogrfc("priority","SYSLOGRFC5424")
    • 加工结果
        receive_time: 1558663265
        __topic__:
        content: 1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twish
        priority: 13
        version: 1
        timestamp: 2019-05-06T11:50:16.015554+08:00
        hostname: iZbp1a65x3r1vhpe94fi2qZ
        program: user
        message: twish
        _facility_: 1
        _severity_: 5
        _severitylabel_: Notice: normal but significant condition
        _facilitylabel_: user-level messages

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/163454.html

(0)
上一篇 2023年12月10日 上午5:20
下一篇 2023年12月10日 上午5:21
详情页2

相关推荐

  • 阿里云日志服务SLS日志投递MaxCompute后,如何检查数据完整性-云淘科技

    在日志服务数据投递MaxCompute场景下,需要在MaxCompute表分区维度上检查数据完整性,即MaxCompute表中某个分区中数据是否已经完整。 使用保留字段__partition_time__作为表分区列,如何判断分区数据是否已完整 __partition_time__由日志的time字段计算得到,由日志的真实时间按照时间格式字符串向下取整得出。…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS术语表-云淘科技

    本文介绍日志服务所涉及的术语。 基础资源 术语 说明 项目(Project) 项目是日志服务的资源管理单元,是进行多用户隔离与访问控制的主要边界。更多信息,请参见项目(Project)。 日志库(Logstore) 日志库是日志服务中日志数据的采集、存储和查询单元。更多信息,请参见日志库(Logstore)。 时序库(MetricStore) 时序库是日志服…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLSJSON日志-云淘科技

    本视频向您展示数据加工结构化数据JSON格式日志的解析。 简单JSON解析 复杂JSON解析 内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家阿里云企业补贴进行中: 马上申请腾讯云限时活动1折起,即将结束: 马上收藏同尘科技为腾讯云授权服务中心。 购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS查询分析程序日志-云淘科技

    本文通过查询、关联分析、统计分析等场景介绍如何使用日志服务对程序日志进行查询和分析。 背景信息 程序日志内容全、存在一定共性,它是运维程序的重要信息,但程序日志具有如下不便于存储与分析的特性: 格式随意:不同开发者的代码风格不同,对应的日志风格也不同,难以统一。 数据量大:程序日志一般比访问日志大1个数量级。 分布的服务器多:大部分应用为无状态模式,运行在不…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS自定义分析告警日志-云淘科技

    日志服务以日志形式记录告警的整个生命周期,并存储到专属的Logstore中。您可以通过告警日志,了解监控对象的整体状况、稳定性等。本文介绍在专属Logstore中进行告警日志自定义分析的操作步骤。 背景信息 在首次使用日志服务告警时,系统会提示您选择一个地域,并自动在该地域创建日志服务资源,即在您所选的地域创建一个名为sls-alert-主账号ID-区域的P…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。