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

Simple Log Service:Splunk アドオンを使用して Simple Log Service のログを Splunk に転送する

最終更新日:Feb 12, 2026

本トピックでは、Alibaba Cloud Log Service Add-on for Splunk を使用して、Simple Log Service (SLS) のログを Splunk に転送する方法について説明します。

仕組み

データフローは以下の通りです。

  • このアドオンは、Splunk のデータ入力を使用して、SLS からリアルタイムでログを消費するコンシューマーグループを作成・管理します。

  • Splunk ヘビーフォワーダーは、Splunk プライベートプロトコルまたは HTTP イベントコレクター (HEC) を使用して、ログを Splunk インデクサーに転送します。

説明

これはデータ収集用のアドオンであり、Splunk ヘビーフォワーダーにのみインストールする必要があります。インデクサーやサーチヘッドにはインストールしないでください。

image

用語

image
  • データ入力とは、ログを消費するコンシューマーです。

  • コンシューマーグループには、複数のコンシューマーが含まれます。コンシューマーグループ内の各コンシューマーは、1 つの Logstore に保存されている異なるログを消費します。

  • Logstore には複数のシャードが含まれます。

    • 各シャードは、1 つのコンシューマーにのみ割り当てることができます。

    • 1 つのコンシューマーは、複数のシャードからデータを消費できます。

  • コンシューマー名は、各コンシューマーの一意の識別子であり、コンシューマーグループ名、ホスト名、プロセス ID、プロトコルを組み合わせて自動的に生成されます。これにより、同じグループ内の 2 つのコンシューマーが同じ名前を持つことはありません。

コンシューマーグループの詳細については、「コンシューマーグループを使用したログの消費」をご参照ください。

前提条件

  • SLS へのアクセスに使用する AccessKey ペアを取得します。

    Resource Access Management (RAM) ユーザーの AccessKey ペアを使用して SLS プロジェクトにアクセスします。詳細については、「AccessKey ペア」をご参照ください。

    権限アシスタントを使用して、RAM ユーザーに権限を付与します。以下に一般的なポリシーの例を示します。

    説明

    <Project name> と <Logstore name> を実際のプロジェクト名と Logstore 名に置き換えてください。ワイルドカード (*) がサポートされています。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:ListShards",
            "log:GetCursorOrData",
            "log:GetConsumerGroupCheckPoint",
            "log:UpdateConsumerGroup",
            "log:ConsumerGroupHeartBeat",
            "log:ConsumerGroupUpdateCheckPoint",
            "log:ListConsumerGroup",
            "log:CreateConsumerGroup"
          ],
          "Resource": [
            "acs:log:*:*:project/<Project name>/logstore/<Logstore name>",
            "acs:log:*:*:project/<Project name>/logstore/<Logstore name>/*"
          ],
          "Effect": "Allow"
        }
      ]
    }
  • ご利用の環境が以下の要件を満たしていることを確認します。

    • アドオンの最新バージョンが使用されていること。

    • オペレーティングシステムが Linux、macOS、または Windows であること。

    • Splunk ヘビーフォワーダーのバージョンが 8.0 以降、Splunk インデクサーのバージョンが 7.0 以降であること。

  • Splunk で HEC を設定する

    HEC を使用して Splunk インデクサーにイベントを送信する場合は、Splunk で HEC が設定されていることを確認してください。Splunk プライベートプロトコルを使用して Splunk インデクサーにイベントを送信する場合は、このステップをスキップしてください。

    説明

    HEC トークンを作成する際、トークンのインデクサー確認応答機能を有効にしないでください。

アドオンのインストール

Splunk の Web インターフェイスにログインし、アドオンをインストールします。アドオンをインストールするには、以下のいずれかの方法を推奨します。

説明

このアドオンはデータ収集にのみ使用されます。Splunk ヘビーフォワーダーにアドオンをインストールする必要があります。Splunk インデクサーやサーチヘッドにアドオンをインストールする必要はありません。

  • 方法 1

    1. Splunk-004 アイコンをクリックします。

    2. Apps ページで、[Find More Apps] をクリックします。

    3. Browse More Apps ページで、Alibaba Cloud Log Service Add-on for Splunk を検索し、[Install] をクリックします。

    4. アドオンがインストールされた後、プロンプトに従って Splunk を再起動します。

  • 方法 2

    1. Splunk-004 アイコンをクリックします。

    2. Apps ページで、[Install app from file] をクリックします。

    3. Upload app ページで、アップロードしたい TGZ ファイルを選択し、[Upload] をクリックします。

      App Search Results をクリックし、必要な TGZ ファイルをダウンロードします。

    4. [インストール]」をクリックします。

    5. アドオンがインストールされた後、プロンプトに従って Splunk を再起動します。

アドオンの設定

Splunk が Elastic Compute Service (ECS) インスタンス上で実行されていない場合は、Alibaba Cloud アカウントの AccessKey ペアを使用して SLS にアクセスします。

  1. Splunk の Web インターフェイスで、[Alibaba Cloud Log Service Add-on for Splunk] をクリックします。

  2. グローバルアカウントを設定します。

    表示されたページで、[Configuration] > [Account] を選択します。[Configuration] ページで、[Account] タブをクリックします。このタブで、[Add] をクリックします。[Add Account] ダイアログボックスで、SLS へのアクセスに使用できる AccessKey ペアを指定します。

    説明

    フィールドは次のようにマッピングされます:

    • Username:ご利用の AccessKey ID。

    • Password:ご利用の AccessKey Secret。

  3. アドオンログのレベルを指定します。

    [Configuration] > [Logging] を選択します。[Configuration] ページで、[Logging] タブをクリックします。このタブで、[Log level] ドロップダウンリストからレベルを選択します。

  4. データ入力を作成します。

    1. [inputs] をクリックして [inputs] ページを開きます。

    2. [Create New Input] をクリックします。[Add sls_datainput] ダイアログボックスで、データ入力のパラメーターを設定します。

      表 1. データ入力のパラメーター

      パラメーター

      必須/データの型

      説明

      Name

      はい、文字列

      データ入力の名前。グローバルで一意である必要があります。

      なし。

      Interval

      はい、整数

      Splunk データ入力プロセスが停止した後に再起動するまでの時間。単位:秒。

      デフォルト値:10。

      Index

      はい、文字列

      Splunk インデックス。

      なし。

      SLS AccessKey

      はい、文字列

      AccessKey ID と AccessKey Secret から構成される Alibaba Cloud AccessKey ペア。

      説明

      [Username] フィールドに AccessKey ID を、[Password] フィールドに関連する AccessKey Secret を入力する必要があります。

      グローバルアカウントの設定時に入力した AccessKey ペア。

      SLS endpoint

      はい、文字列

      SLS エンドポイント

      • cn-huhehaote.log.aliyuncs.com

      • https://cn-huhehaote.log.aliyuncs.com

      SLS project

      はい、文字列

      SLS プロジェクトの名前。詳細については、「プロジェクトの管理」をご参照ください。

      なし。

      SLS logstore

      はい、文字列

      SLS Logstore の名前。詳細については、「Logstore の管理」をご参照ください。

      なし。

      SLS consumer group

      はい、文字列

      SLS コンシューマーグループの名前。複数のデータ入力を使用して同じ Logstore に保存されているデータを消費する場合、データ入力に同じコンシューマーグループ名を指定する必要があります。詳細については、「コンシューマーグループを使用したログの消費」をご参照ください。

      なし。

      SLS cursor start time

      はい、文字列

      ログデータ消費の開始時刻。このパラメーターは、新しいコンシューマーグループを使用する場合にのみ有効です。既存のコンシューマーグループを使用する場合、データは最後のチェックポイントから消費されます。

      説明

      開始時刻はログの受信時刻です。

      有効な値:begin、end、および ISO 8601 形式の時刻値。例:2018-12-26 0:0:0+8:00。

      SLS heartbeat interval

      はい、整数

      コンシューマーとサーバー間でハートビートメッセージが送信される間隔。単位:秒。

      デフォルト値:60。

      SLS data fetch interval

      はい、整数

      SLS からログをプルする間隔。ログの生成頻度が低い場合は、このパラメーターを小さい値に設定しないことを推奨します。単位:秒。

      デフォルト値:1。

      consume_processor

      いいえ、文字列

      まず、プロジェクトに SPL を含むコンシューマープロセッサー (例:consume-processor-1) を作成する必要があります。このプロセッサーは Linux x86_64 プラットフォームでのみサポートされています。詳細については、「コンシューマープロセッサーの管理」をご参照ください。

      なし。

      Topic filter

      いいえ、文字列

      無視する Topic のセミコロン区切りのリスト。一致する Topic を持つログは Splunk に送信されません。

      TopicA;TopicB。この値は、Topic が TopicA または TopicB であるログが無視されることを指定します。

      Unfolded fields

      いいえ、JSON

      JSON 形式のログの Topic とフィールドリストとのマッピング関係。{"topicA": ["field_nameA1", "field_nameA2", ...], "topicB": ["field_nameB1", "field_nameB2", ...], ...}

      {"actiontrail_audit_event": ["event"] }。この値は、Topic が actiontrail_audit_event であるログにおいて、指定されたフィールドの JSON 文字列が展開され、event フィールドに保存されることを指定します。

      Event source

      いいえ、文字列

      Splunk イベントのソース。

      なし。

      Event source type

      いいえ、文字列

      Splunk イベントのソースのタイプ。

      なし。

      Event retry times

      いいえ、整数

      ログデータを消費するためのリトライ回数。

      デフォルト値:0。無制限のリトライを指定します。

      Event protocol

      はい、文字列

      Splunk イベントの送信に使用されるプロトコル。Splunk プライベートプロトコルを使用して Splunk イベントを送信する場合、表の以下のパラメーターを設定する必要はありません。

      • HTTP for HEC

      • HTTPS for HEC

      • Private protocol

      HEC host

      はい、文字列

      HEC ホスト。このパラメーターは、HEC を使用して Splunk イベントを送信する場合にのみ有効です。詳細については、「Splunk Web で HTTP イベントコレクターをセットアップして使用する」をご参照ください。

      なし。

      HEC port

      はい、整数

      HEC ポート。このパラメーターは、HEC を使用して Splunk イベントを送信する場合にのみ有効です。

      なし。

      HEC token

      はい、文字列

      HEC トークン。このパラメーターは、HEC を使用して Splunk イベントを送信する場合にのみ有効です。詳細については、「HEC トークン」をご参照ください。

      なし。

      HEC timeout

      はい、整数

      HEC タイムアウト期間。このパラメーターは、HEC を使用して Splunk イベントを送信する場合にのみ有効です。単位:秒。

      デフォルト値:120。

Splunk が ECS インスタンス上で実行されている場合は、RAM ロールを ECS インスタンスにアタッチします。その後、ECS インスタンスは RAM ロールを偽装して SLS にアクセスできます。手順:

重要

必要な RAM ロールがアタッチされている ECS インスタンス上で Splunk が実行されていることを確認してください。

  1. RAM ロールを ECS インスタンスにアタッチします。

    このステップでは、RAM ロールを作成し、RAM ロールに権限を付与してから、RAM ロールを ECS インスタンスにアタッチします。詳細については、「インスタンス RAM ロールの設定」をご参照ください。

    RAM ロールのポリシーの詳細については、「前提条件」のポリシーをご参照ください。

  2. Splunk の Web インターフェイスで、[Alibaba Cloud Log Service Add-on for Splunk] をクリックします。

  3. グローバルアカウントを設定します。

    表示されたページで、[Configuration] > [Account] を選択します。[Configuration] ページで、[Account] タブをクリックします。このタブで、[Add] をクリックします。[Add Account] ダイアログボックスで、ECS インスタンスにアタッチされた RAM ロールを指定します。この例では、[Username] フィールドに ECS_RAM_ROLE を入力し、[Password] フィールドに ステップ 1 で作成した RAM ロールの名前を入力します。

  4. データ入力を作成します。

    1. [inputs] をクリックして [inputs] ページを開きます。

    2. [Create New Input] をクリックします。[Add sls_datainput] ダイアログボックスで、データ入力のパラメーターを設定します。

      SLS AccessKey パラメーターを ステップ 3 で作成したグローバルアカウントに設定する必要があります。その他のパラメーターの詳細については、「データ入力のパラメーター」をご参照ください。

関連操作

  • データのクエリ

    データ入力が [Enabled] 状態であることを確認します。Splunk の Web インターフェイスで、[Search & Reporting] をクリックします。App: Search & Reporting ページで、収集された監査ログをクエリします。Splunk-003

  • SLS 操作ログのクエリ

    • 検索ボックスに index="_internal" | search "SLS info" と入力して、SLS の情報ログをクエリします。

    • 検索ボックスに index="_internal" | search "error" と入力して、SLS のエラーログをクエリします。

パフォーマンスとセキュリティ

  • パフォーマンス

    アドオンのパフォーマンスとデータ転送スループットは、以下の要因によって異なります:

    • エンドポイント:パブリック、クラシックネットワーク、Virtual Private Cloud (VPC)、またはグローバルアクセラレーションエンドポイントを使用して SLS にアクセスします。ほとんどの場合、クラシックネットワークエンドポイントまたは VPC エンドポイントを使用することを推奨します。詳細については、「エンドポイント」をご参照ください。

    • 帯域幅:SLS と Splunk ヘビーフォワーダー間、および Splunk ヘビーフォワーダーとインデクサー間のデータ転送の帯域幅がパフォーマンスに影響します。

    • Splunk インデクサーの処理能力:Splunk ヘビーフォワーダーからデータを受信するインデクサーの能力がパフォーマンスに影響します。

    • シャード数:Logstore 内のシャード数が多いほど、データ転送能力が高くなります。生のログが生成される速度に基づいてシャード数を指定する必要があります。詳細については、「シャードの管理」をご参照ください。

    • Splunk データ入力数:Logstore に設定されたコンシューマーグループ内のデータ入力数が多いほど、スループットが高くなります。

      説明

      ログデータの同時消費は、Logstore 内のシャード数によって異なります。

    • リソース消費:一般的なガイドラインとして、各データ入力はヘビーフォワーダー上で約 1 CPU コアと 1~2 GB のメモリを消費します。

    十分なリソースがあれば、単一のデータ入力で 1~2 MB/s のスループットを達成できます。生のログが生成される速度に基づいてシャード数を指定する必要があります。

    たとえば、ログが 1 秒あたり 10 MB の速度で Logstore に書き込まれる場合、Logstore に少なくとも 10 個のシャードを作成し、アドオンに 10 個のデータ入力を設定する必要があります。アドオンを単一のサーバーにデプロイする場合、そのサーバーに 10 個のアイドル CPU コアと 12 GB の利用可能なメモリリソースがあることを確認してください。

  • 高可用性

    コンシューマーグループは、サーバー側にチェックポイントを保存します。あるコンシューマーがデータ消費を停止すると、別のコンシューマーが最後のチェックポイントからデータ消費を続行します。複数のサーバーに Splunk データ入力を作成できます。あるサーバーが停止または破損した場合、別のサーバー上の Splunk データ入力が最後のチェックポイントからデータ消費を続行します。理論的には、複数のサーバーで起動される Splunk データ入力の数はシャードの数より多くすることができ、これにより例外発生時に最後のチェックポイントからデータが消費されることが保証されます。

  • HTTPS ベースのデータ転送

    • SLS

      HTTPS を使用してプログラムと SLS 間のデータを暗号化するには、エンドポイントのプレフィックスが https:// であることを確認してください。例:https://cn-beijing.log.aliyuncs.com。

      *.aliyuncs.com サーバー証明書は GlobalSign によって発行されます。デフォルトでは、ほとんどの Linux および Windows サーバーはこの証明書を信頼するように事前設定されています。サーバーがこの証明書を信頼しない場合は、「信頼されたルート CA または自己署名証明書のインストール」をご参照ください。

    • Splunk

      HTTPS ベースの HEC を使用するには、[グローバル設定ダイアログボックス] で HEC を有効化する際に SSL 機能を有効化します。詳細については、「Configure HTTP Event Collector on Splunk Enterprise」をご参照ください。

  • AccessKey ペアのストレージ保護

    SLS へのアクセスに使用する AccessKey ペアと HEC トークンは、Splunk 内で暗号化されて保存されます。これにより、データ漏洩を防ぎます。

よくある質問

  • 設定エラーが発生した場合はどうすればよいですか?

    • データ入力の作成または変更時に、データ入力で設定エラーが発生することがあります。この場合、データ入力の基本設定を確認してください。パラメーターの詳細については、「データ入力のパラメーター」をご参照ください。

    • SLS で設定エラーが発生することがあります。たとえば、システムがコンシューマーグループの作成に失敗した場合などです。この場合、SLS の設定を確認してください。

      • コマンド:index="_internal" | search "error"

      • エラーログ:

        aliyun.log.consumer.exceptions.ClientWorkerException: 
        error occour when create consumer group, 
        errorCode: LogStoreNotExist, 
        errorMessage: logstore xxxx does not exist
      • ConsumerGroupQuotaExceed エラー

        1 つの Logstore につき、最大 20 個のコンシューマーグループを設定できます。SLS コンソールでコンシューマーグループを表示し、不要になったコンシューマーグループを削除することを推奨します。1 つの Logstore に 20 個を超えるコンシューマーグループが設定されている場合、ConsumerGroupQuotaExceed エラーが報告されます。

  • 権限エラーが発生した場合はどうすればよいですか?

    • SLS へのアクセスが許可されていません。権限を確認してください。

      • コマンド:index="_internal" | search "error"

      • エラーログ:

        aliyun.log.consumer.exceptions.ClientWorkerException: 
        error occour when create consumer group, 
        errorCode: SignatureNotMatch, 
        errorMessage: signature J70VwxYH0+W/AciA4BdkuWxK6W8= not match
    • ECS インスタンスの RAM 認証に失敗しました。

      • コマンド:index="_internal" | search "error"

      • エラーログ:

        ECS RAM Role detected in user config, but failed to get ECS RAM credentials. Please check if ECS instance and RAM role 'ECS-Role' are configured appropriately.

        ECS-Role は作成した RAM ロールです。ECS-Role 変数は実際の値として表示されます。

      • トラブルシューティング:

        • データ入力SLS AccessKey パラメーターが、RAM ロールを持つグローバルアカウントとして設定されているか確認してください。

        • RAM ロールがグローバルアカウントに正しく設定されているか確認してください。ユーザー名は ECS_RAM_ROLE に、パスワードは RAM ロールの名前に設定する必要があります。

        • RAM ロールが ECS インスタンスにアタッチされているか確認してください。

        • RAM ロールの信頼できるエンティティタイプが Alibaba Cloud Service に設定されているか確認してください。選択された信頼できるサービスが ECS であるか確認してください。

        • RAM ロールがアタッチされている ECS インスタンスが、Splunk が実行されている ECS インスタンスであるか確認してください。

    • HEC へのアクセスが許可されていません。

      • コマンド:index="_internal" | search "error"

      • エラーログ:

        ERROR HttpInputDataHandler - Failed processing http input, token name=n/a, channel=n/a, source_IP=127.0.0.1, reply=4, events_processed=0, http_input_body_size=369
        
        WARNING pid=48412 tid=ThreadPoolExecutor-0_1 file=base_modinput.py:log_warning:302 | 
        SLS info: Failed to write [{"event": "{\"__topic__\": \"topic_test0\", \"__source__\": \"127.0.0.1\", \"__tag__:__client_ip__\": \"10.10.10.10\", \"__tag__:__receive_time__\": \"1584945639\", \"content\": \"goroutine id [0, 1584945637]\", \"content2\": \"num[9], time[2020-03-23 14:40:37|1584945637]\"}", "index": "main", "source": "sls log", "sourcetype": "http of hec", "time": "1584945637"}] remote Splunk server (http://127.0.0.1:8088/services/collector) using hec. 
        Exception: 403 Client Error: Forbidden for url: http://127.0.0.1:8088/services/collector, times: 3
      • 考えられる原因:

        • HEC が設定または開始されていません。

        • データ入力の HEC 関連パラメーターが無効です。たとえば、HTTPS ベースの HEC を使用する場合、SSL 機能を有効にする必要があります。

        • HEC トークンのインデクサー確認応答機能が無効になっています。

  • 消費の遅延を解決するにはどうすればよいですか?

    SLS コンソールでコンシューマーグループのステータスを確認します

    シャードの数を増やすか、同じコンシューマーグループにさらに多くのデータ入力を作成することを推奨します。詳細については、「パフォーマンスとセキュリティ」をご参照ください。

  • ネットワークジッターが発生した場合はどうすればよいですか?

    • コマンド:index="_internal" | search "SLS info: Failed to write"

    • エラーログ:

      WARNING pid=58837 tid=ThreadPoolExecutor-0_0 file=base_modinput.py:log_warning:302 |
      SLS info: Failed to write [{"event": "{\"__topic__\": \"topic_test0\", \"__source__\": \"127.0.0.1\", \"__tag__:__client_ip__\": \"10.10.10.10\", \"__tag__:__receive_time__\": \"1584951417\", \"content2\": \"num[999], time[2020-03-23 16:16:57|1584951417]\", \"content\": \"goroutine id [0, 1584951315]\"}", "index": "main", "source": "sls log", "sourcetype": "http of hec", "time": "1584951417"}] remote Splunk server (http://127.0.0.1:8088/services/collector) using hec. 
      Exception: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer')), times: 3

    ネットワークジッターが発生した場合、Splunk イベントは自動的に再送信されます。問題が解決しない場合は、ネットワーク管理者にお問い合わせください。

  • 消費の開始時刻を変更するにはどうすればよいですか?

    説明

    SLS cursor start time パラメーターは、新しいコンシューマーグループを使用する場合にのみ有効です。既存のコンシューマーグループを使用する場合、データは最後のチェックポイントから消費されます。

    1. Splunk Web インターフェイスの [inputs] ページで、関連するデータ入力を無効にします。

    2. Simple Log Service コンソールにログインします。データが消費される Logstore を見つけ、[データ消費] セクションで関連するコンシューマーグループを削除します。

    3. Splunk Web インターフェイスの [inputs] ページで、データ入力を見つけ、[Actions] > [Edit] を選択します。表示されるダイアログボックスで、SLS cursor start time パラメーターを変更します。その後、データ入力を有効にします。