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

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

最終更新日:Jun 18, 2025

このトピックでは、Splunk 用 Alibaba Cloud Log Service アドオンを使用して、Simple Log Service から Splunk にログを転送する方法について説明します。

アーキテクチャ

次のリストは、アドオンを使用してログを転送する方法を示しています。

  • Splunk データ入力を使用してコンシューマーグループを作成し、コンシューマーグループを使用して Simple Log Service のログをリアルタイムで使用します。

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

説明

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

image

用語

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

  • コンシューマーグループには複数のコンシューマーが含まれています。コンシューマーグループの各コンシューマーは、ログストアに格納されている異なるログを消費します。

  • ログストアには複数のシャードが含まれています。

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

    • コンシューマーは複数のシャードからデータを使用できます。

  • コンシューマーの名前には、コンシューマーが属するコンシューマーグループの名前、ホスト名、プロセス名、および Splunk イベントの送信に使用されるプロトコルが含まれています。この命名規則により、コンシューマーグループ内の各コンシューマーの名前が一意になります。

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

準備

  • Simple Log Service にアクセスするために使用する AccessKey ペアを取得します。

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

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

    説明

    <プロジェクト名> は Simple Log Service プロジェクトの名前を指定します。<ログストア名> は Simple Log Service ログストアの名前を指定します。値を実際の値に置き換えます。ワイルドカードを使用して名前を指定します。アスタリスク (*) がサポートされています。

    {
      "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"
        }
      ]
    }
  • Splunk のバージョンと、Splunk が実行されているオペレーティングシステムを確認します。以下を確認してください。

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

    • オペレーティングシステムは 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. [アプリ] ページで、[その他のアプリを探す] をクリックします。

    3. [その他のアプリを参照] ページで、[Splunk 用 Alibaba Cloud Log Service アドオン] を検索し、[インストール] をクリックします。

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

  • 方法 2

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

    2. [アプリ] ページで、[ファイルからアプリをインストール] をクリックします。

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

      アプリの検索結果をクリックして、必要な TGZ ファイルをダウンロードできます。

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

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

アドオンを構成する

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

  1. Splunk Web インターフェースで、[Splunk 用 Alibaba Cloud Log Service アドオン] をクリックします。

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

    表示されるページで、[構成] > [アカウント] を選択します。[構成] ページで、[アカウント] タブをクリックします。このタブで、[追加] をクリックします。[アカウントの追加] ダイアログボックスで、Simple Log Service にアクセスするために使用できる AccessKey ペアを指定します。

    説明

    [ユーザー名] フィールドに AccessKey ID を入力し、[パスワード] フィールドに関連する AccessKey シークレットを入力する必要があります。

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

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

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

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

    2. [新しい入力を構成] をクリックします。 [sls_datainput の追加] ダイアログボックスで、データ入力のパラメーターを構成します。

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

      パラメーター

      必須およびデータ型

      説明

      名前

      はい、文字列

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

      なし。

      間隔

      はい、整数

      プロセスが停止した後、Splunk データ入力プロセスを再起動するために必要な期間。単位:秒。

      デフォルト値:10。

      インデックス

      はい、文字列

      Splunk インデックス。

      なし。

      SLS AccessKey

      はい、文字列

      AccessKey ID と AccessKey シークレットで構成される Alibaba Cloud AccessKey ペア。

      説明

      [ユーザー名] フィールドに AccessKey ID を入力し、[パスワード] フィールドに関連する AccessKey シークレットを入力する必要があります。

      グローバルアカウントを構成するときに入力する AccessKey ペア。

      SLS エンドポイント

      はい、文字列

      Simple Log Service エンドポイント

      • cn-huhehaote.log.aliyuncs.com

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

      SLS プロジェクト

      はい、文字列

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

      なし。

      SLS ログストア

      はい、文字列

      Simple Log Service ログストアの名前。詳細については、「ログストアを管理する」をご参照ください。

      なし。

      SLS コンシューマーグループ

      はい、文字列

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

      なし。

      SLS カーソル開始時刻

      はい、文字列

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

      説明

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

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

      SLS ハートビート間隔

      はい、整数

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

      デフォルト値:60。

      SLS データフェッチ間隔

      はい、整数

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

      デフォルト値:1。

      トピックフィルター

      いいえ、文字列

      トピック別にログをフィルタリングするために使用される文字列。複数のトピックはセミコロン (;) で区切ります。ログのトピックが一致すると、ログは無視され、Splunk に送信されません。

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

      展開されたフィールド

      いいえ、JSON

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

      {"actiontrail_audit_event": ["event"] }。この値は、トピックが actiontrail_audit_event であるログで、指定されたフィールドの JSON 文字列が展開され、event フィールドに格納されることを指定します。

      イベントソース

      いいえ、文字列

      Splunk イベントのソース。

      なし。

      イベントソースタイプ

      いいえ、文字列

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

      なし。

      イベント再試行回数

      いいえ、整数

      ログデータを使用するための再試行回数。

      デフォルト値:0。無制限の再試行を指定します。

      イベントプロトコル

      はい、文字列

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

      • HEC 用 HTTP

      • HEC 用 HTTPS

      • プライベートプロトコル

      HEC ホスト

      はい、文字列

      HEC ホスト。このパラメーターは、HEC を使用して Splunk イベントを送信する場合にのみ有効です。詳細については、「Splunk Web で HTTP Event Collector を設定および使用する」をご参照ください。

      なし。

      HEC ポート

      はい、整数

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

      なし。

      HEC トークン

      はい、文字列

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

      なし。

      HEC タイムアウト

      はい、整数

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

      デフォルト値:120。

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

重要

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

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

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

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

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

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

    表示されるページで、[構成] > [アカウント] を選択します。[構成] ページで、[アカウント] タブをクリックします。このタブで、[追加] をクリックします。[アカウントの追加] ダイアログボックスで、ECS インスタンスにアタッチされている RAM ロールを指定します。この例では、[ユーザー名] フィールドに ECS_RAM_ROLE を入力し、ステップ 1 で作成した RAM ロールの名前を [パスワード] フィールドに入力します。

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

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

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

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

関連操作

  • データのクエリ

    データ入力が有効状態であることを確認します。 Splunk Web インターフェイスで、[検索とレポート] をクリックします。 [アプリ: 検索とレポート] ページで、収集された監査ログをクエリします。Splunk-003

  • Simple Log Service 操作ログのクエリ

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

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

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

  • パフォーマンス

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

    • エンドポイント:Simple Log Service には、パブリック、クラシックネットワーク、VPC (仮想プライベートクラウド)、またはグローバル アクセラレーションエンドポイントを使用してアクセスできます。ほとんどの場合、クラシックネットワーク エンドポイントまたは VPC エンドポイントを使用することをお勧めします。詳細については、「エンドポイント」をご参照ください。

    • 帯域幅:Simple Log Service と Splunk Heavy Forwarder 間、および Splunk Heavy Forwarder とインデクサー間のデータ転送の帯域幅は、パフォーマンスに影響します。

    • Splunk インデクサーの処理能力:Splunk Heavy Forwarder からデータを受信するインデクサーの能力は、パフォーマンスに影響します。

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

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

      説明

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

    • Splunk Heavy Forwarder が占有する CPU コア数とメモリ リソース:ほとんどの場合、1 つの Splunk データ入力は 1 GB ~ 2 GB のメモリ リソースと 1 CPU コアを消費します。

    十分なメモリと CPU リソースが割り当てられている場合、1 つの Splunk データ入力は 1 秒あたり 1 MB ~ 2 MB の速度でログデータを消費できます。未加工ログが生成される速度に基づいて、シャード数を指定する必要があります。

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

  • 高可用性

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

  • HTTPS ベースのデータ転送

    • Simple Log Service

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

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

    • Splunk

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

  • AccessKey ペア ストレージ保護

    Simple Log Service にアクセスするために使用する AccessKey ペアと HEC トークンは暗号化され、Splunk に保存されます。これにより、データ漏洩を防ぎます。

よくある質問

  • 構成エラーが発生した場合はどうすればよいですか。

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

    • Simple Log Service で構成エラーが発生することがあります。たとえば、コンシューマー グループの作成に失敗した場合などです。この場合、Simple Log Service の構成を確認します。

      • コマンド: 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 つのログストアに対して最大 20 個のコンシューマー グループを構成できます。 Simple Log Service コンソールでコンシューマー グループを表示し、不要になったコンシューマー グループを削除することをお勧めします。 1 つのログストアに対して 20 個を超えるコンシューマー グループが構成されている場合、ConsumerGroupQuotaExceed エラーが報告されます。

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

    • Simple Log Service にアクセスする権限がありません。権限を確認してください。

      • コマンド: 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 サービスに設定されているかどうかを確認します。選択した信頼できるサービスが 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 トークンに対して無効になっています。

  • 消費レイテンシが発生した場合はどうすればよいですか。

    Simple Log Service コンソールで コンシューマー グループの状態を確認できます。

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

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

    • コマンド: 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 カーソルの開始時刻パラメーターは、新しいコンシューマー グループを使用する場合にのみ有効です。既存のコンシューマー グループを使用する場合、データは最後のチェックポイントから消費されます。

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

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

    3. Splunk Web インターフェースの [入力] ページで、データ入力を見つけ、[アクション] > [編集] を選択します。表示されるダイアログ ボックスで、SLS カーソルの開始時刻 パラメーターを変更します。次に、データ入力を有効にします。