AWS IoT Greengrass Version 1 は、2023 年 6 月 30 日に延長ライフフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き運用され、クラウドに接続されます。への移行 AWS IoT Greengrass Version 2を強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォーム がサポートされます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Splunk 統合コネクタ
警告
このコネクタは延長ライフサイクルフェーズに移行しており、AWS IoT Greengrass では、機能、既存機能の拡張、セキュリティパッチ、バグ修正を提供するアップデートはリリースされません。詳細については、「AWS IoT Greengrass Version 1 メンテナンスポリシー」を参照してください。
Splunk 統合コネクタは Greengrass デバイスから Splunk にデータを発行します。これにより、Splunk を使用して Greengrass Core 環境をモニタリングおよび分析し、ローカルイベントに対処できます。コネクタは HTTP Event Collector (HEC) と統合されています。詳細については、「Splunk HTTP Event Collector の概要
このコネクタは、MQTT トピックのログおよびイベントデータを受信し、そのデータをそのまま Splunk API に発行します。
このコネクタを使用して、以下のような産業シナリオをサポートできます。
-
オペレーターは、アクチュエーターやセンサーからの定期的なデータ (温度、圧力、水の読み取り値など) を使用して、値が特定のしきい値を超えたときにアラームが開始されるようにする。
-
開発者は、産業機械から収集されたデータを使用して、問題の徴候をデバイスでモニタリングできる ML モデルを構築する。
このコネクタには、次のバージョンがあります。
バージョン |
ARN |
---|---|
4 |
|
3 |
|
2 |
|
1 |
|
バージョンの変更については、「Changelog」を参照してください。
要件
このコネクタには以下の要件があります。
コネクタパラメータ
このコネクタには、以下のパラメータが用意されています。
サンプルコネクタを作成する (AWS CLI)
以下の 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 関数には存続期間の長いライフサイクルがあります。
AWS IoT Greengrass コンソールでは、グループの [Connectors] (コネクタ) ページからコネクタを追加できます。詳細については、「Greengrass コネクタの開始方法 (コンソール)」を参照してください。
入力データ
このコネクタは、MQTT トピックのログおよびイベントデータを受け取り、そのまま Splunk API に発行します。入力メッセージは JSON 形式である必要があります。
- サブスクリプションのトピックフィルター
-
splunk/logs/put
- メッセージのプロパティ
-
request
-
Splunk API に送信するイベントデータ。イベントは services/collector
API の仕様を満たしている必要があります。 必須:
true
タイプ:
object
。event
プロパティのみが必須です。 id
-
リクエストの任意の ID。このプロパティは、入力リクエストを出力ステータスにマッピングするために使用します。
必須:
false
タイプ:
string
- 制限
-
このコネクタを使用する場合、Splunk API によって課せられるすべての制限が適用されます。詳細については、「services/collector
」を参照してください。 - 入力例
-
{ "request": { "event": "some event", "fields": { "severity": "INFO", "category": [ "value1", "value2" ] } }, "id": "request123" }
出力データ
このコネクタは 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" } }
注記
コネクタが再試行可能なエラー (接続エラーなど) を検出した場合は、次のバッチ処理で再発行を試します。
使用例
コネクタの試用に利用できる Python 3.7 Lambda 関数の例を設定するには、次のステップ (概要) を使用します。
注記
-
他の Python ランタイムを使用する場合は、Python 3.x から Python 3.7 へのシンボリックリンクを作成します。
-
「コネクタの使用を開始する (コンソール)」および「コネクタの使用を開始する (CLI)」トピックには、Twilio 通知コネクタの例を設定およびデプロイする方法を示す詳細なステップが含まれています。
-
コネクタの要件を満たしていることを確認します。
-
入力データをコネクタに送信する Lambda 関数を作成して発行します。
サンプルコードを PY ファイルとして保存します。AWS IoT Greengrass Core SDK for Python をダウンロードして解凍します。次に、PY ファイルとルートレベルの
greengrasssdk
フォルダを含む zip パッケージを作成します。この zip パッケージは、AWS Lambda にアップロードするデプロイパッケージです。Python 3.7 Lambda 関数を作成したら、関数バージョンを公開し、エイリアスを作成します。
-
Greengrass グループを設定します。
-
エイリアスで Lambda 関数を追加します (推奨)。Lambda ライフサイクルを長期間有効に (または CLI で
"Pinned": true
に) 設定します。 -
必要なシークレットリソースを追加し、Lambda 関数への読み取りアクセスを許可します。
-
コネクタを追加し、そのパラメータを設定します。
-
コネクタが入力データを受信し、サポートされているトピックフィルターで出力データを送信できるようにするサブスクリプションを追加します。
-
Lambda 関数をソースに、コネクタをターゲットに設定し、サポートされている入力トピックフィルターを使用します。
-
コネクタをソースとして、AWS IoT Core をターゲットとして設定し、サポートされている出力トピックフィルターを使用します。このサブスクリプションを使用して、AWS IoT コンソールでステータスメッセージを表示します。
-
-
-
グループをデプロイします。
-
AWS IoT コンソールの [Test] (テスト) ページで、出力データトピックをサブスクライブして、コネクタからのステータスメッセージを表示します。この例の Lambda 関数は長期間有効であり、グループがデプロイされた直後にメッセージの送信を開始します。
テストが終了したら、Lambda ライフサイクルをオンデマンドに (または CLI で
"Pinned": false
に) 設定して、グループをデプロイできます。これにより、関数がメッセージの送信を停止します。
例
次の例では、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
ライセンス
このコネクタは、Greengrass Core ソフトウェアライセンス契約
変更ログ
次の表に、コネクタの各バージョンにおける変更点を示します。
バージョン |
変更 |
---|---|
4 |
コネクタのコンテナ化モードを設定するための |
3 |
Lambda ランタイムを Python 3.7 にアップグレードしたことで、ランタイム要件が変更。 |
2 |
過剰なログ記録を減らすための修正。 |
1 |
初回リリース。 |
Greengrass グループには、一度に 1 つのバージョンのコネクタしか含めることができません。コネクタのバージョンのアップグレードについては、「コネクタのバージョンのアップグレード」を参照してください。