

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Splunk 統合コネクタ
<a name="splunk-connector"></a>

**警告**  <a name="connectors-extended-life-phase-warning"></a>
このコネクタは延長ライフサイクルフェーズに移行しており、 AWS IoT Greengrass では、機能、既存機能の拡張、セキュリティパッチ、バグ修正を提供するアップデートはリリースされません。詳細については、「[AWS IoT Greengrass Version 1 メンテナンスポリシー](maintenance-policy.md)」を参照してください。

Splunk 統合[コネクタ](connectors.md)は Greengrass デバイスから Splunk にデータを発行します。これにより、Splunk を使用して Greengrass Core 環境をモニタリングおよび分析し、ローカルイベントに対処できます。コネクタは HTTP Event Collector (HEC) と統合されています。詳細については、「[Splunk HTTP Event Collector の概要](https://dev.splunk.com/view/event-collector/SP-CAAAE6M)」を参照してください。

このコネクタは、MQTT トピックのログおよびイベントデータを受信し、そのデータをそのまま Splunk API に発行します。

このコネクタを使用して、以下のような産業シナリオをサポートできます。
+ オペレーターは、アクチュエーターやセンサーからの定期的なデータ (温度、圧力、水の読み取り値など) を使用して、値が特定のしきい値を超えたときにアラームが開始されるようにする。
+ 開発者は、産業機械から収集されたデータを使用して、問題の兆候をデバイスでモニタリングできる ML モデルを構築する。

このコネクタには、次のバージョンがあります。


| バージョン | ARN | 
| --- | --- | 
| 4 | `arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/4` | 
| 3 | `arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/3` | 
| 2 | `arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/2` | 
| 1 | `arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/1` | 

バージョンの変更については、「[Changelog](#splunk-connector-changelog)」を参照してください。

## 要件
<a name="splunk-connector-req"></a>

このコネクタには以下の要件があります。

------
#### [ Version 3 - 4 ]
+ <a name="conn-req-ggc-v1.9.3-secrets"></a>AWS IoT Greengrass Core ソフトウェア v1.9.3 以降。「シークレット[要件」で説明されているように、ローカルシークレット](secrets.md#secrets-reqs)をサポートするように設定 AWS IoT Greengrass する必要があります。
**注記**  
この要件には、Secrets Manager シークレットへのアクセス許可が含まれます。デフォルトの Greengrass サービスロールを使用している場合、Greengrass は *greengrass-* で始まる名前の付いたシークレット値にアクセスできます。
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/) バージョン 3.7 または 3.8 が Core デバイスにインストールされ、PATH 環境変数に追加されている。
**注記**  <a name="use-runtime-py3.8"></a>
Python 3.8 を使用するには、次のコマンドを実行して、Python 3.7 のデフォルトのインストールフォルダからインストール済みの Python 3.8 バイナリへのシンボリックリンクを作成します。  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。
+ <a name="conn-splunk-req-http-event-collector"></a>HTTP Event Collector 機能を Splunk で有効にする必要があります。詳細については、Splunk ドキュメントの「[Set up and use HTTP Event Collector in Splunk Web](https://docs.splunk.com/Documentation/Splunk/7.2.0/Data/UsetheHTTPEventCollector)」を参照してください。
+ <a name="conn-splunk-req-secret"></a>Splunk HTTP Event Collector トークン AWS Secrets Manager を保存する のテキストタイプのシークレット。詳細については、Splunk ドキュメントの「[About event collector tokens](https://docs.splunk.com/Documentation/Splunk/7.2.0/Data/UsetheHTTPEventCollector#About_Event_Collector_tokens)」(イベントコレクタトークンについて) と「AWS Secrets Manager ユーザーガイド」の「[Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)」(基本的なシークレットの作成) を参照してください。
**注記**  
Secrets Manager コンソールでシークレットを作成するには、**[Plaintext]** (プレーンテキスト) タブにトークンを入力します。引用符やその他の書式は含めないでください。API で、`SecretString` プロパティの値としてトークンを指定します。
+ Secrets Manager シークレットを参照する Greengrass グループのシークレットリソース。詳細については、「[シークレットを AWS IoT Greengrass コアにデプロイする](secrets.md)」を参照してください。

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0-secrets"></a>AWS IoT Greengrass Core ソフトウェア v1.7 以降。「シークレット[要件」で説明されているように、ローカルシークレット](secrets.md#secrets-reqs)をサポートするように設定 AWS IoT Greengrass する必要があります。
**注記**  
この要件には、Secrets Manager シークレットへのアクセス許可が含まれます。デフォルトの Greengrass サービスロールを使用している場合、Greengrass は *greengrass-* で始まる名前の付いたシークレット値にアクセスできます。
+ [Python](https://www.python.org/) バージョン 2.7 が Core デバイスにインストールされ、PATH 環境変数に追加されている。
+ <a name="conn-splunk-req-http-event-collector"></a>HTTP Event Collector 機能を Splunk で有効にする必要があります。詳細については、Splunk ドキュメントの「[Set up and use HTTP Event Collector in Splunk Web](https://docs.splunk.com/Documentation/Splunk/7.2.0/Data/UsetheHTTPEventCollector)」を参照してください。
+ <a name="conn-splunk-req-secret"></a>Splunk HTTP Event Collector トークン AWS Secrets Manager を保存する のテキストタイプのシークレット。詳細については、Splunk ドキュメントの「[About event collector tokens](https://docs.splunk.com/Documentation/Splunk/7.2.0/Data/UsetheHTTPEventCollector#About_Event_Collector_tokens)」(イベントコレクタトークンについて) と「AWS Secrets Manager ユーザーガイド」の「[Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)」(基本的なシークレットの作成) を参照してください。
**注記**  
Secrets Manager コンソールでシークレットを作成するには、**[Plaintext]** (プレーンテキスト) タブにトークンを入力します。引用符やその他の書式は含めないでください。API で、`SecretString` プロパティの値としてトークンを指定します。
+ Secrets Manager シークレットを参照する Greengrass グループのシークレットリソース。詳細については、「[シークレットを AWS IoT Greengrass コアにデプロイする](secrets.md)」を参照してください。

------

## コネクタパラメータ
<a name="splunk-connector-param"></a>

このコネクタには、以下のパラメータが用意されています。

------
#### [ Version 4 ]

`SplunkEndpoint`  <a name="splunk-SplunkEndpoint"></a>
Splunk インスタンスのエンドポイント。この値には、プロトコル、ホスト名、ポートが含まれている必要があります。  
 AWS IoT コンソールの表示名: **Splunk エンドポイント**  
必須: `true`  
型: `string`  
有効なパターン: `^(http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$`

`MemorySize`  <a name="splunk-MemorySize"></a>
コネクタに割り当てるメモリ量 (KB 単位)。  
 AWS IoT コンソールの表示名: **メモリサイズ**  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`SplunkQueueSize`  <a name="splunk-SplunkQueueSize"></a>
項目が送信または破棄されるまでにメモリに保存する項目の最大数。この制限に達すると、キュー内の最も古い項目が新しい項目に置き換えられます。この制限は通常、インターネットに接続していない場合に適用されます。  
 AWS IoT コンソールの表示名: **保持する最大項目**数  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`SplunkFlushIntervalSeconds`  <a name="splunk-SplunkFlushIntervalSeconds"></a>
受信したデータを Splunk HEC に発行する間隔 (秒単位)。最大値は 900 です。アイテムを受信時にバッチにまとめないで発行するようにコネクタを設定するには、0 を指定します。  
 AWS IoT コンソールでの名前の表示: **Splunk 発行間隔**  
必須: `true`  
型: `string`  
有効なパターン: `[0-9]|[1-9]\d|[1-9]\d\d|900`

`SplunkTokenSecretArn`  <a name="splunk-SplunkTokenSecretArn"></a>
Splunk トークン AWS Secrets Manager を保存する のシークレット。これはテキスト形式のシークレットであることが必要です。  
 AWS IoT コンソールの表示名: **Splunk 認証トークンシークレットの ARN**  
必須: `true`  
型: `string`  
有効なパターン: `arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+`

`SplunkTokenSecretArn-ResourceId`  <a name="splunk-SplunkTokenSecretArn-ResourceId"></a>
Splunk シークレットを参照する Greengrass グループのシークレットリソース。  
 AWS IoT コンソールでの名前の表示: **Splunk 認証トークンリソース**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`SplunkCustomCALocation`  <a name="splunk-SplunkCustomCALocation"></a>
Splunk のカスタム認証機関 (CA) のファイルパス (`/etc/ssl/certs/splunk.crt` など)。  
 AWS IoT コンソールでの名前の表示: **Splunk カスタム認証機関の場所**  
必須: `false`  
型: `string`  
有効なパターン: `^$|/.*`

`IsolationMode`  <a name="IsolationMode"></a>
このコネクタの[コンテナ化](connectors.md#connector-containerization)モード。デフォルトは です。つまり`GreengrassContainer`、コネクタは AWS IoT Greengrass コンテナ内の分離されたランタイム環境で実行されます。  
グループの既定のコンテナ化設定は、コネクタには適用されません。
 AWS IoT コンソールの表示名: **コンテナ分離モード**  
必須: `false`  
型: `string`  
有効な値: `GreengrassContainer` または `NoContainer`  
有効なパターン: `^NoContainer$|^GreengrassContainer$`

------
#### [ Version 1 - 3 ]

`SplunkEndpoint`  <a name="splunk-SplunkEndpoint"></a>
Splunk インスタンスのエンドポイント。この値には、プロトコル、ホスト名、ポートが含まれている必要があります。  
 AWS IoT コンソールでの名前の表示: **Splunk エンドポイント**  
必須: `true`  
型: `string`  
有効なパターン: `^(http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$`

`MemorySize`  <a name="splunk-MemorySize"></a>
コネクタに割り当てるメモリ量 (KB 単位)。  
 AWS IoT コンソールの表示名: **メモリサイズ**  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`SplunkQueueSize`  <a name="splunk-SplunkQueueSize"></a>
項目が送信または破棄されるまでにメモリに保存する項目の最大数。この制限に達すると、キュー内の最も古い項目が新しい項目に置き換えられます。この制限は通常、インターネットに接続していない場合に適用されます。  
 AWS IoT コンソールの表示名: **保持する最大項目**数  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`SplunkFlushIntervalSeconds`  <a name="splunk-SplunkFlushIntervalSeconds"></a>
受信したデータを Splunk HEC に発行する間隔 (秒単位)。最大値は 900 です。アイテムを受信時にバッチにまとめないで発行するようにコネクタを設定するには、0 を指定します。  
 AWS IoT コンソールの表示名: **Splunk 発行間隔**  
必須: `true`  
型: `string`  
有効なパターン: `[0-9]|[1-9]\d|[1-9]\d\d|900`

`SplunkTokenSecretArn`  <a name="splunk-SplunkTokenSecretArn"></a>
Splunk トークン AWS Secrets Manager を保存する のシークレット。これはテキスト形式のシークレットであることが必要です。  
 AWS IoT コンソールでの名前の表示: **Splunk 認証トークンシークレットの ARN**  
必須: `true`  
型: `string`  
有効なパターン: `arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+`

`SplunkTokenSecretArn-ResourceId`  <a name="splunk-SplunkTokenSecretArn-ResourceId"></a>
Splunk シークレットを参照する Greengrass グループのシークレットリソース。  
 AWS IoT コンソールの表示名: **Splunk 認証トークンリソース**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`SplunkCustomCALocation`  <a name="splunk-SplunkCustomCALocation"></a>
Splunk のカスタム認証機関 (CA) のファイルパス (`/etc/ssl/certs/splunk.crt` など)。  
 AWS IoT コンソールでの名前の表示: **Splunk カスタム認証機関の場所**  
必須: `false`  
型: `string`  
有効なパターン: `^$|/.*`

------

### サンプルコネクタを作成する (AWS CLI)
<a name="splunk-connector-create"></a>

以下の CLI コマンドは、Splunk 統合コネクタを含む初期バージョンで `ConnectorDefinition` を作成します。

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MySplunkIntegrationConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/4",
            "Parameters": {
                "SplunkEndpoint": "https://myinstance.cloud.splunk.com:8088",
                "MemorySize": 200000,
                "SplunkQueueSize": 10000,
                "SplunkFlushIntervalSeconds": 5,
                "SplunkTokenSecretArn":"arn:aws:secretsmanager:region:account-id:secret:greengrass-secret-hash",
                "SplunkTokenSecretArn-ResourceId": "MySplunkResource", 
                "IsolationMode" : "GreengrassContainer"
            }
        }
    ]
}'
```

**注記**  
このコネクタの Lambda 関数には[存続期間の長い](lambda-functions.md#lambda-lifecycle)ライフサイクルがあります。

 AWS IoT Greengrass コンソールでは、グループのコネクタページから**コネクタ**を追加できます。詳細については、「[Greengrass コネクタの開始方法 (コンソール)](connectors-console.md)」を参照してください。

## 入力データ
<a name="splunk-connector-data-input"></a>

このコネクタは、MQTT トピックのログおよびイベントデータを受け取り、そのまま Splunk API に発行します。入力メッセージは JSON 形式である必要があります。

<a name="topic-filter"></a>**サブスクリプションのトピックフィルター**  
`splunk/logs/put`

**メッセージのプロパティ**    
`request`  
Splunk API に送信するイベントデータ。イベントは [services/collector](https://docs.splunk.com/Documentation/Splunk/latest/RESTREF/RESTinput#services.2Fcollector) API の仕様を満たしている必要があります。  
必須: `true`  
型: `object`。`event` プロパティのみが必須です。  
`id`  
リクエストの任意の ID。このプロパティは、入力リクエストを出力ステータスにマッピングするために使用します。  
必須: `false`  
型: `string`

**制限**  
このコネクタを使用する場合、Splunk API によって課せられるすべての制限が適用されます。詳細については、「[services/collector](https://docs.splunk.com/Documentation/Splunk/latest/RESTREF/RESTinput#services.2Fcollector)」を参照してください。

**入力例**  

```
{
    "request": {
        "event": "some event",
        "fields": {
            "severity": "INFO",
            "category": [
                "value1",
                "value2"
            ]
        }
    },
    "id": "request123"
}
```

## 出力データ
<a name="splunk-connector-data-output"></a>

このコネクタは 2 つのトピックに関する出力データを発行します。
+ `splunk/logs/put/status` トピックのステータス情報。
+ `splunk/logs/put/error` トピックでのエラー。

**トピックのフィルター:** `splunk/logs/put/status`  
このトピックを使用して、リクエストの状態をリッスンします。コネクタは受信したデータのバッチを Splunk API に送信するたびに、成功したリクエストの ID と失敗したリクエストの ID のリストを発行します。    
**出力例**  

```
{
    "response": {
        "succeeded": [
            "request123",
            ...
        ],
        "failed": [
            "request789",
            ...
        ]
    }
}
```

**トピックのフィルター:** `splunk/logs/put/error`  
このトピックを使用して、コネクタからのエラーをリッスンします。リクエストの処理中に発生したエラーまたはタイムアウトを表す `error_message` プロパティ。    
**出力例**  

```
{
    "response": {
        "error": "UnauthorizedException",
        "error_message": "invalid splunk token",
        "status": "fail"
    }
}
```
コネクタが再試行可能なエラー (接続エラーなど) を検出した場合は、次のバッチ処理で再発行を試します。

## 使用例
<a name="splunk-connector-usage"></a>

<a name="connectors-setup-intro"></a>コネクタの試用に利用できる Python 3.7 Lambda 関数の例を設定するには、次のステップ (概要) を使用します。

**注記**  <a name="connectors-setup-get-started-topics"></a>
他の Python ランタイムを使用する場合は、Python 3.x から Python 3.7 へのシンボリックリンクを作成します。
「[コネクタの使用を開始する (コンソール)](connectors-console.md)」および「[コネクタの使用を開始する (CLI)](connectors-cli.md)」トピックには、Twilio 通知コネクタの例を設定およびデプロイする方法を示す詳細なステップが含まれています。

1. コネクタの[要件](#splunk-connector-req)を満たしていることを確認します。

1. <a name="connectors-setup-function"></a>入力データをコネクタに送信する Lambda 関数を作成して発行します。

   [サンプルコード](#splunk-connector-usage-example)を PY ファイルとして保存します。<a name="connectors-setup-function-sdk"></a>[AWS IoT Greengrass Core SDK for Python](lambda-functions.md#lambda-sdks-core) をダウンロードして解凍します。次に、PY ファイルとルートレベルの `greengrasssdk` フォルダを含む zip パッケージを作成します。この zip パッケージは、 AWS Lambdaにアップロードするデプロイパッケージです。

   <a name="connectors-setup-function-publish"></a>Python 3.7 Lambda 関数を作成したら、関数バージョンを公開し、エイリアスを作成します。

1. Greengrass グループを設定します。

   1. <a name="connectors-setup-gg-function"></a>エイリアスで Lambda 関数を追加します (推奨)。Lambda ライフサイクルを長期間有効に (または CLI で `"Pinned": true` に) 設定します。

   1. <a name="connectors-setup-secret-resource"></a>必要なシークレットリソースを追加し、Lambda 関数への読み取りアクセスを許可します。

   1. コネクタを追加し、その[パラメータ](#splunk-connector-param)を設定します。

   1. コネクタが[入力データ](#splunk-connector-data-input)を受信し、サポートされているトピックフィルターで[出力データ](#splunk-connector-data-output)を送信できるようにするサブスクリプションを追加します。
      + <a name="connectors-setup-subscription-input-data"></a>Lambda 関数をソースに、コネクタをターゲットに設定し、サポートされている入力トピックフィルターを使用します。
      + <a name="connectors-setup-subscription-output-data"></a>コネクタをソースとして、 AWS IoT Core をターゲットとして設定し、サポートされている出力トピックフィルターを使用します。このサブスクリプションを使用して、 AWS IoT コンソールでステータスメッセージを表示します。

1. <a name="connectors-setup-deploy-group"></a>グループをデプロイします。

1. <a name="connectors-setup-test-sub"></a> AWS IoT コンソールの**テスト**ページで、出力データトピックをサブスクライブして、コネクタからのステータスメッセージを表示します。この例の Lambda 関数は長期間有効であり、グループがデプロイされた直後にメッセージの送信を開始します。

   テストが終了したら、Lambda ライフサイクルをオンデマンドに (または CLI で `"Pinned": false` に) 設定して、グループをデプロイできます。これにより、関数がメッセージの送信を停止します。

### 例
<a name="splunk-connector-usage-example"></a>

次の例では、Lambda 関数で入力メッセージをコネクタに送信します。

```
import greengrasssdk
import time
import json

iot_client = greengrasssdk.client('iot-data')
send_topic = 'splunk/logs/put'

def create_request_with_all_fields():
    return {
        "request": {
            "event": "Access log test message."
        },
        "id" : "req_123"
    }

def publish_basic_message():
    messageToPublish = create_request_with_all_fields()
    print("Message To Publish: ", messageToPublish)
    iot_client.publish(topic=send_topic,
        payload=json.dumps(messageToPublish))

publish_basic_message()

def lambda_handler(event, context):
    return
```

## ライセンス
<a name="splunk-connector-license"></a>

このコネクタは、[Greengrass Core ソフトウェアライセンス契約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)に従ってリリースされます。

## 変更ログ
<a name="splunk-connector-changelog"></a>

次の表に、コネクタの各バージョンにおける変更点を示します。


| バージョン | 変更 | 
| --- | --- | 
| 4 | <a name="isolation-mode-changelog"></a>コネクタのコンテナ化モードを設定するための `IsolationMode` パラメータが追加されました。 | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Lambda ランタイムを Python 3.7 にアップグレードしたことで、ランタイム要件が変更。 | 
| 2 | 過剰なログ記録を減らすための修正。 | 
| 1 | 初回リリース。  | 

<a name="one-conn-version"></a>Greengrass グループには、一度に 1 つのバージョンのコネクタしか含めることができません。コネクタのバージョンのアップグレードについては、「[コネクタのバージョンのアップグレード](connectors.md#upgrade-connector-versions)」を参照してください。

## 関連情報
<a name="splunk-connector-see-also"></a>
+ [Greengrass コネクタを使用したサービスおよびプロトコルとの統合](connectors.md)
+ [Greengrass コネクタの開始方法 (コンソール)](connectors-console.md)
+ [Greengrass コネクタの開始方法 (CLI)](connectors-cli.md)