すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:標準 Syslog 形式データの解析

最終更新日:Jun 17, 2026

Syslog は、デバイスログを記録するための業界標準プロトコルで、ネットワーク管理、セキュリティ管理、ログ監査で広く使用されています。Simple Log Service (SLS) のドメイン固有言語 (DSL) で GROK 関数を使用すると、さまざまな形式の Syslog ログを効率的に解析できます。

概要

Syslog は、Unix 系オペレーティングシステムのシステムログで広く使用されています。Syslog メッセージは、ローカルファイルに記録することも、ネットワーク経由で受信サーバーに送信することもできます。サーバーは、複数のデバイスからの Syslog メッセージを一元的に保存したり、その内容を解析してさらに処理したりできます。

問題

長い間、Syslog 形式を規定する標準が存在しなかったため、形式が一貫していないか、定義された形式がまったくない状態でした。このため、Syslog メッセージはプログラムによる解析が困難で、多くの場合、プレーン文字列としてしか扱えませんでした。したがって、さまざまな形式の Syslog ログを解析する方法を理解することが不可欠です。

Syslog プロトコル標準の概要

業界では、RFC 5424 (2009 年公開) と RFC 3164 (2001 年公開) という 2 つの一般的な Syslog プロトコルが使用されています。以下のセクションでは、これら 2 つのプロトコルの違いについて説明します。これらの違いを理解すると、GROK を使用して Syslog ログを柔軟に解析できるようになります。

  • RFC 5424 プロトコル

    RFC 5424 プロトコルには、次のフィールドが含まれています。詳細については、「公式プロトコルドキュメント」をご参照ください。

    PRI VERSION SP TIMESTAMP SP HOSTNAME SP APP-NAME SP PROCID SP MSGID

    以下の例で、これらのフィールドについて説明します。

    """
    Example1:
    <34>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 -- None
    MSGID -- ID47
    MESSAGE -- 'su user' failed for lonvick on /dev/pts/8
    """
    Example2:
    <165>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-11T22: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
    <165>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...
  • RFC 3164 プロトコル

    RFC 3164 プロトコルには、次のフィールドが含まれています。詳細については、「公式プロトコルドキュメント」をご参照ください。

    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.

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: <13>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: <13>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 DSL ルール

      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 を使用すると、Fluentd で使用される 2 つの一般的でない Syslog 形式 (FluentRFC5424 と FluentRFC3164) を解析できます。

  • FluentRFC5424 形式

    • 生ログ

        receive_time: 1558663265
        __topic__:
        content: <16>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<extradata>(\[(.*)\]|[^ ])) %{GREEDYDATA:message}'))
    • 処理結果

        receive_time: 1558663265
        __topic__:
        content: <16>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!
        priority: 16
        version: 1
        timestamp: 2019-02-28T12:00:00.003Z
        hostname: 192.168.0.1
        ident: aliyun
        pid: 11111
        msgid: ID24224
        extradata: [exampleSDID@20224 iut='3' eventSource='Application' eventID='11211']
        message: Hi, from Fluentd!
  • FluentRFC3164 形式

    • 生ログ

        receive_time: 1558663265
        __topic__:
        content: <6>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<pid>(\[[a-zA-Z0-9._-]+\]|[^:])): (?P<level>(\[(\w+)\]|[^ ])) %{GREEDYDATA:message}'))
    • 処理結果

      receive_time: 1558663265
        __topic__:
        content: <6>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: [11111]
        level: [error]
        message: Syslog test
  • プライオリティの拡張解析

    FluentRFC5424 または FluentRFC3164 形式の Syslog ログを解析した後、プライオリティフィールドをさらに解析して、ファシリティと重要度の情報を抽出できます。詳細については、「e_syslogrfc」をご参照ください。以下に例を示します。

    • 生ログ

      receive_time: 1558663265
        __topic__:
        content: <13>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: <13>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