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

Simple Log Service:Syslog プロトコルを使用したログのアップロード

最終更新日:Jun 23, 2026

このトピックでは、必要な手順について説明します。

制限事項

  • Syslog プロトコルは、標準の RFC 5424 である必要があります。他の Syslog プロトコルを使用する場合は、「Linux システムからの Syslog の収集」をご参照ください。

  • ログエントリの最大サイズは 64 KB です。

  • データ転送のセキュリティを確保するため、Transport Layer Security (TLS) 1.2 を使用して TCP 経由でデータを転送する必要があります。

設定

重要

VPN やルーターなどのほとんどのオンプレミスデバイスは、TLS プロトコルや RFC 5424 フォーマットをサポートしていません。これらのデバイスからデータを収集するには、Logtail の Syslog プラグインを使用することを推奨します。詳細については、「Linux システムからの Syslog の収集」をご参照ください。

Syslog プロトコルを使用してログをアップロードするには、ProjectName.Endpoint:SyslogPort 形式でログアップロードアドレスを設定する必要があります。例:test-project-1.cn-hangzhou-intranet.log.aliyuncs.com:10009。プロジェクトが配置されているリージョンに基づいてエンドポイントを選択します。詳細については、「エンドポイント」をご参照ください。Syslog ポートは 10009 です。また、Simple Log Service プロジェクトや Logstore、ご利用の Alibaba Cloud アカウントの AccessKey ペアなど、STRUCTURED-DATA フィールドでパラメーターを設定する必要もあります。

パラメーター

説明

STRUCTURED-DATA

値は logservice に固定されています。

logservice

project

Simple Log Service プロジェクトの名前。事前にプロジェクトを作成しておく必要があります。詳細については、「プロジェクトの管理」をご参照ください。

test-project-1

logstore

Logstore の名前。事前に Logstore を作成しておく必要があります。詳細については、「Logstore の作成」をご参照ください。

test-LogStore-1

access-key-id

AccessKey ID。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「承認」をご参照ください。

LTAI****************

access-key-secret

AccessKey Secret。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「承認」をご参照ください。

yourAccessKeySecret

例:syslog-ng を使用したログの収集

syslog-ng は、UNIX および UNIX ライクシステム向けの Syslog プロトコルのオープンソース実装です。sudo yum install syslog-ng または sudo apt-get install syslog-ng コマンドを実行して syslog-ng をインストールできます。

説明

Rsyslog は、デフォルトで Linux サーバーにインストールされています。Rsyslog と syslog-ng は同時に実行できません。syslog-ng を使用する場合は、まず Rsyslog をアンインストールする必要があります。

  1. syslog-ng の設定ファイルを開きます。

    設定ファイルは通常、/etc/syslog-ng/syslog-ng.conf にあります。

  2. syslog-ng 設定ファイルの末尾に次の設定ブロックを追加し、ビジネス要件に基づいてパラメーターを設定します。

    ### Syslog-ng Logging Config for LogService ### 
    template LogServiceFormat { 
        template("<${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} [logservice project=\"test-project-1\" logstore=\"test-logstore-1\" access-key-id=\"<yourAccessKeyId>\" access-key-secret=\"<yourAccessKeySecret>\"] $MSG\n"); template_escape(no); 
    }; 
    destination d_logservice{ 
         tcp("test-project-1.cn-hangzhou.log.aliyuncs.com" port(10009) 
         tls(peer-verify(required-untrusted)) 
         template(LogServiceFormat)); 
    }; 
    log { 
         source(s_sys); # default use s_sys 
         destination(d_logservice); 
    }; 
    ### END Syslog-ng Logging Config for LogService ###
  3. syslog-ng を再起動します。

    sudo /etc/init.d/syslog-ng restartsudo service syslog-ng restart、または sudo systemctl restart syslog-ng コマンドを実行して syslog-ng を再起動します。

  4. logger コマンドを実行してテストログを生成します。

    例:logger hello world! コマンドを実行してログを生成します。

ログの例

ログをアップロードした後、Simple Log Service コンソールでログを表示するには、インデックスを設定する必要があります。詳細については、「インデックスの作成」をご参照ください。

ログフィールドの詳細については、「RFC 5424」をご参照ください。

重要

AccessKey ペアの漏洩を防ぐため、Simple Log Service はデフォルトで logservice フィールドを削除します。

03-28 11:01:01      __source__: xxx
                    __topic__: syslog-forwarder
                    _facility_: 3
                    _hostname_: xxx
                    _priority_: 30
                    _program_: systemd
                    _severity_: 6
                    _unixtimestamp_: 1553742061117098000
                    content: Started Session 59532 of user root.
03-28 11:00:15      __source__: mymachine.example.com
                    __topic__: syslog-forwarder
                    _facility_: 4
                    _hostname_: mymachine.example.com
                    _message_id_: ID47
                    _priority_: 34
                    _program_: su
                    _severity_: 2
                    _unixtimestamp_: 1553742015003000000
                    content: this is a test message

フィールド

説明

__source__

生ログの hostname フィールドの値。

__topic__

値は syslog-forwarder に固定されています。

__facility__

ファシリティ情報。ログを生成したデバイスまたはモジュールを示します。

__program__

プロセス名。

__severity__

ログの重大度。

__priority__

ログの優先度。

__unixtimestamp__

生ログからのタイムスタンプ (ナノ秒単位)。

content

生ログの msg フィールドの値。

よくある質問

  • テストログのアップロード

    Netcat を使用してログのアップロードをテストし、ネットワーク接続を確認し、AccessKey にアップロード権限があることを確認できます。

    1. ログのアップロードをテストするサーバーにログインします。

    2. 次のコマンドを実行して Netcat をインストールします:

      sudo yum install nmap-ncat
    3. 次のコマンドを実行して Simple Log Service に接続します:

      ncat --ssl <yourProject>.<yourEndpoint> 10009

      コマンドの例:

      ncat --ssl test-project-1.cn-hangzhou.log.aliyuncs.com 10009
    4. Netcat はネットワークの切断を自動的に検出しません。ncat コマンドを実行してから 30 秒以内にログメッセージを入力し、Enter キーを押してください。

      <34>1 2019-03-28T03:00:15.003Z mymachine.example.com su - ID47 [logservice project="<yourProject>" logstore="<yourLogstore>" access-key-id="<yourAccessKeyID>" access-key-secret="<yourAccessKeySecret>"] this is a test message

      コマンドの例:

      <34>1 2019-03-28T03:00:15.003Z mymachine.example.com su - ID47 [logservice project="trace-doc-test" logstore="doc-test-001-logs" access-key-id="<yourAccessKeyID>" access-key-secret="<yourAccessKeySecret>"] this is a test message
    5. Simple Log Service コンソールでログをプレビューして、ログがアップロードされたかどうかを確認します。

      詳細については、「ログのプレビュー」をご参照ください。

      プレビュー結果に、タイムスタンプが 2019-03-28 11:00:15 で、ソースが mymachine.example.com のログエントリが表示されます。content 列の _hostname__severity__facility__message_id__unixtimestamp__program__priority_ などの Syslog フィールドが解析されます。これは、ログが正常にアップロードされ、解析されたことを示します。

  • 収集エラーの診断

    手動でのログアップロードが失敗した場合、収集エラーを診断することで具体的なエラーメッセージを表示できます。詳細については、「Logtail 収集エラー情報の表示方法」をご参照ください。