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

Simple Log Service:Syslog プロトコルを使用してログをアップロードする

最終更新日:Apr 10, 2025

syslog-ng ユーティリティを使用して、syslog プロトコルで Simple Log Service にログを収集できます。このトピックでは、syslog プロトコルを使用して Simple Log Service にログをアップロードする方法について説明します。

制限事項

  • Syslog は RFC 5424 プロトコルに基づいて保存する必要があります。他の syslog プロトコルを使用することもできます。詳細については、「Linux syslog を収集する」をご参照ください。

  • 各ログの最大サイズは 64 KB です。

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

構成方法

重要

ほとんどの場合、オンプレミスの VPN やルーターなどのデバイスから TLS プロトコルまたは RFC 5424 プロトコルを使用してログを収集することはできません。これらのデバイスからログを収集するには、Logtail の syslog プラグインを使用することをお勧めします。詳細については、「Linux syslog を収集する」をご参照ください。

syslog プロトコルを使用してログをアップロードする場合は、プロジェクト名.Simple Log Service エンドポイント:Syslog プロトコルポート番号 形式で、ログのアップロード先エンドポイントを指定する必要があります。例: test-project-1.cn-hangzhou-intranet.log.aliyuncs.com:10009。Simple Log Service プロジェクトが存在するリージョンに基づいてエンドポイントを指定することをお勧めします。詳細については、「エンドポイント」をご参照ください。syslog ポートは 10009 です。また、STRUCTURED-DATA フィールドに Simple Log Service プロジェクト、ログストア、および AccessKey ペアを指定する必要があります。次の表にパラメーターを示します。

パラメーター

説明

STRUCTURED-DATA

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

logservice

Project

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

test-project-1

Logstore

Simple Log Service ログストアの名前。ログを収集する前に、ログストアを作成する必要があります。詳細については、「ログストアを作成する」をご参照ください。

test-logstore-1

access-key-id

AccessKey ID。Resource Access Management (RAM) ユーザーの AccessKey ペアを使用することをお勧めします。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

yourAccessKeyID

access-key-secret

AccessKey シークレット。RAM ユーザーの AccessKey ペアを使用することをお勧めします。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

yourAccessKeySecret

例 1: 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 構成ファイルを開きます。

    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 restart コマンド、sudo service syslog-ng restart コマンド、または sudo systemctl restart syslog-ng コマンドを実行して、syslog-ng ユーティリティを再起動します。

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

    たとえば、logger hello world! コマンドを実行してログを生成できます。

サンプルログ

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

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

重要

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

日志样例

フィールド

説明

__source__

生のログのホスト名。

__topic__

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

__facility__

設備情報 (デバイスやモジュールに関する情報など)。

__program__

プロセス名。

__serverity__

ログの重大度レベル。

__priority__

ログの優先度。

__unixtimestamp__

生のログの UNIX タイムスタンプ。単位: ナノ秒。

content

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

FAQ とトラブルシューティング

  • ログのアップロードをシミュレートするにはどうすればよいですか?

    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 コンソールでログをプレビューして、ログがアップロードされているかどうかを確認します。

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

      ncat_output

  • ログのアップロードに失敗した場合はどうすればよいですか?

    ログのアップロードに失敗した場合は、エラーメッセージに基づいて障害のトラブルシューティングを行うことができます。詳細については、「Logtail 収集エラーを表示する方法」をご参照ください。