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

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

最終更新日:Aug 27, 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

SD-ID は logservice に固定されており、変更できません。sls、sls@17055、またはその他の識別子を SD-ID として使用しないでください。誤った SD-ID で送信されたログは、TCP+TLS 接続を確立できても、Simple Log Service によってサイレントにドロップされ、LogStore では受信されません。次の完全なフォーマットを使用してください:[logservice project="<ProjectName>" logstore="<LogStoreName>" access-key-id="<yourAccessKeyID>" access-key-secret="<AccessKey Secret>"]

[logservice project="test-project-1" logstore="test-logstore-1" access-key-id="<yourAccessKeyID>" access-key-secret="<AccessKey Secret>"]

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 をインストールできます。

説明

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

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

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

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

    ### LogService 用の syslog-ng ログ設定 ### 
    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); # デフォルトでは s_sys を使用
         destination(d_logservice); 
    }; 
    ### LogService 用の syslog-ng ログ設定の終了 ###
  3. syslog-ng を再起動します。

    sudo /etc/init.d/syslog-ng restart、sudo 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 のログエントリがプレビュー結果に表示されます。コンテンツ列の Syslog フィールド (_hostname_、_severity_、_facility_、_message_id_、_unixtimestamp_、_program_、_priority_ など) が解析されます。これは、ログが正常にアップロードされ、解析されたことを示します。

  • ネットワーク接続の確認

    前の手順の ncat コマンドがまったく出力を生成しない場合 (エラーメッセージなしで ncat プロセスがすぐに終了する場合)、ネットワークが問題であると判断する前に、まず telnet を使用してポート 10009 が到達可能かどうかを確認してください。

    1. 次のコマンドを実行してポートの接続性を確認します:

      telnet <yourProject>.<yourEndpoint> 10009

      コマンドの例:

      telnet test-project-1.cn-hangzhou.log.aliyuncs.com 10009
    2. 出力に Connected to... が含まれている場合、ネットワークは到達可能です。この場合、問題は AccessKey またはプロジェクトの設定が正しくない可能性があります。ログアップロードのテストの ncat テストを続行するか、このセクションのSyslog アップロードの失敗のトラブルシューティングをご参照ください。

    3. 接続がタイムアウトするか拒否された場合、ネットワークは到達不能です。セキュリティグループ、ファイアウォール、またはネットワークルートの設定を確認してください。

    説明

    Simple Log Service は共有アクセス層を使用しています。プロジェクト名が正しくない場合でも、telnet は Connected を返すことがあります。telnet はネットワーク層の接続性のみを検証します。ネットワークが到達可能であってもログのアップロードが失敗する場合は、AccessKey とプロジェクト名を確認してください。

  • 収集エラーの診断

    Logtail Syslog プラグインを介して Syslog データを収集し、手動でのログアップロードが失敗した場合、収集エラーを診断することで特定のエラーメッセージを表示できます。詳細については、「Logtail 収集エラー情報の表示方法」をご参照ください。この診断機能は、Logtail 収集シナリオにのみ適用されます。本トピックで説明されているように、Syslog プロトコルを使用して直接ログをアップロードする場合、データは Logtail を経由しないため、この診断機能は適用されません。代わりに、このセクションのSyslog アップロードの失敗のトラブルシューティングをご参照ください。

  • Syslog アップロードの失敗のトラブルシューティング

    Syslog プロトコルを使用して送信されたログが LogStore で受信されない場合は、次の項目を順に確認してください:

    1. STRUCTURED-DATA の SD-ID が logservice に固定されていることを確認します。sls や sls@17055 などの他の識別子を使用すると、接続は成功しますが、ログはサイレントにドロップされます。

    2. データが TLS 1.2 を使用して TCP 経由で送信されていることを確認します。

    3. 対象の LogStore に対する AccessKey ペアの書き込み権限があることを確認します。

    4. ncat --ssl <ProjectName>.<Endpoint> 10009 を実行して、ポートが到達可能であることを確認します。

    5. Simple Log Service コンソールの LogStore クエリページに移動し、ログを検索して到着したかどうかを確認します。