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 核心环境,并对本地事件执行操作。连接器与 HTTP 事件收集器 (HEC) 集成。有关更多信息,请参阅 Splunk 文档中的 Splunk HTTP 事件收集器简介
此连接器接收关于 MQTT 主题的日志记录和事件数据,并按原样将数据发布到 Splunk API。
您可以使用该连接器支持行业方案,比如:
-
操作员可以使用致动器和传感器的周期性数据(例如,温度、压力和水分读数)在值超出特定阈值时启动警报。
-
开发人员使用从工业机械收集的数据来构建 ML 模型,以监控设备发现潜在问题。
此连接器具有以下版本。
版本 |
ARN |
---|---|
4 |
|
3 |
|
2 |
|
1 |
|
有关版本更改的信息,请参阅更改日志。
要求
此连接器具有以下要求:
连接器参数
该连接器提供以下参数:
创建连接器示例 (AWS CLI)
以下 CLI 命令创建一个 ConnectorDefinition
,其初始版本包含 Splunk 集成连接器。
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 控制台中,您可以从组的连接器页面添加连接器。有关更多信息,请参阅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 文件。下载并解压适用于 Python 的 AWS IoT Greengrass Core 软件开发工具包。然后,创建一个 zip 包,其中在根级别包含 PY 文件和
greengrasssdk
文件夹。此 zip 包是您上传到 AWS Lambda 的部署包。创建 Python 3.7 Lambda 函数后,请发布函数版本并创建别名。
-
配置 Greengrass 组。
-
部署组。
-
在 AWS IoT 控制台中,在测试页面上,订阅输出数据主题以查看连接器中的状态消息。示例 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 组在一个时间上只能包含一个版本的连接器。有关升级连接器版本的信息,请参阅升级连接器版本。