Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,将不再接收功能更新,并且将仅收到安全补丁和错误修复。有关更多信息,请参阅Amazon IoT Greengrass V1维护时段。我们强烈建议您迁移到Amazon IoT Greengrass Version 2,这增加了重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Splunk 集成连接器
警告
此连接器已移入使用配置文件, 和Amazon IoT Greengrass不会发布提供功能、现有功能增强功能、安全补丁或错误修复的更新。有关更多信息,请参阅 Amazon IoT Greengrass Version 1维护策略。
Splunk 集成连接器将数据从 Greengrass 设备发布到 Splunk。这样的话,您可以使用 Splunk 来监控和分析 Greengrass 核心环境,并对本地事件执行操作。连接器与 HTTP 事件收集器 (HEC) 集成。有关更多信息,请参阅 Splunk 文档中的 Splunk HTTP 事件收集器简介
此连接器接收关于 MQTT 主题的日志记录和事件数据,并按原样将数据发布到 Splunk API。
您可以使用该连接器支持行业方案,比如:
-
操作员可以使用致动器和传感器的周期性数据(例如,温度、压力和水分读数)在值超出特定阈值时启动警报。
-
开发人员使用从工业机械收集的数据来构建 ML 模型,以监控设备发现潜在问题。
此连接器具有以下版本。
版本 |
ARN |
---|---|
4 |
|
3 |
|
2 |
|
1 |
|
有关版本更改的信息,请参阅更改日志。
要求
此连接器具有以下要求:
连接器参数
该连接器提供以下参数:
创建连接器示例 (Amazon CLI)
以下 CLI 命令将创建ConnectorDefinition
其初始版本包含 Splunk Integration 连接器。
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 函数具有长时间生存的生命周期。
在Amazon IoT Greengrassconsole,则可以从组的连接器页. 有关更多信息,请参阅 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" }
输出数据
此连接器发布关于两个主题的输出数据:
-
有关
splunk/logs/put/status
主题的状态信息。 -
错误位于
splunk/logs/put/error
主题上。
- 主题筛选条件:
splunk/logs/put/status
-
使用此主题侦听请求的状态。每当连接器向 Splunk API 发送一批收到的数据时,它就会发布一个包含成功请求和失败请求的 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 运行时,则可创建从 Python3.x 到 Python 3.7 的符号链接。
-
连接器入门(控制台) 和连接器入门 (CLI) 主题包含详细步骤,说明如何配置和部署示例 Twilio 通知连接器。
-
确保满足连接器的要求。
-
创建并发布将输入数据发送到连接器的 Lambda 函数。
将示例代码保存为 PY 文件。下载并解压缩Amazon IoT Greengrass适用于 Python. 然后,创建一个 zip 包,其中在根级别包含 PY 文件和
greengrasssdk
文件夹。此 zip 包是您上传到的部署包Amazon Lambda.创建 Python 3.7 Lambda 函数后,发布函数版本并创建别名。
-
配置 Greengrass 组。
-
部署组。
-
在Amazon IoT控制配置文件中的测试页面上,订阅输出数据主题以查看连接器中的状态消息。示例 Lambda 函数是长时间生存的,并且在部署组后立即开始发送消息。
完成测试后,您可以将 Lambda 生命周期设置为按需(或
"Pinned": false
在 CLI 中设置为)并部署组。这会阻止函数发送消息。
示例
以下示例 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 核心软件许可协议
更改日志
下表介绍每一版连接器中的更改。
版本 |
更改 |
---|---|
4 |
增加了用于配置连接器容器化模式的 |
3 |
已将 Lambda 运行时升级到 Python 3.7,这会更改运行时要求。 |
2 |
进行了修复,以减少过多的日志记录。 |
1 |
首次发布。 |
Greengrass 组每次只能包含连接器的一个版本。有关升级连接器版本的信息,请参阅升级连接器版本。