QuerySplunkIndexingStatus Processor
描述
查询 Splunk 服务器以获取索引确认的状态。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Scheme | https |
| 连接到 Splunk 的方案。 |
| Hostname | localhost | Splunk 服务器的 IP 地址或主机名。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| HTTP Event Collector Port | 8088 | HTTP 事件收集器 HTTP 端口号。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Security Protocol | TLSv1_2 |
| 用于与 Splunk 通信的安全协议。 |
| Owner | | 所有者传递给 Splunk。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| HTTP Event Collector Token | | 以字符串 Splunk 开头的 HTTP 事件收集器令牌。 例如“Splunk 1234578-abcd-1234-abcd-1234abcd” 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Username | | 用于向 Splunk 进行身份验证的用户名。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Password | | 用于向 Splunk 进行身份验证的密码。 敏感属性:是 | |
| Splunk Request Channel | | 所使用的请求通道的标识符。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Maximum Waiting Time | 1 hour | 处理器从注册时开始尝试获取索引确认确认的最大时间。在给定时间后,处理器将索引视为未确认,并将 FlowFile 传输到 "unacknowledged" 关系。 | |
| Maximum Query Size | 10000 | 传出查询在一个批次中包含的最大确认标识符数量。建议不要设置得太低,以减少网络通信。 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | 当由于通信过程中的错误导致确认不成功时,FlowFile 将被传输到此关系。超时的或 Splunk 服务器未知的 FlowFile 将被传输到 "undetermined" 关系。 | 否 |
success | 当确认成功时,FlowFile 将被传输到此关系。 | 否 |
unacknowledged | 当确认不成功时,FlowFile 将被传输到此关系。这可能发生在确认未在“最大等待时间”属性设定的时间内完成时。确认 ID 对 Splunk 服务器未知的 FlowFile 将在达到最大等待时间后被传输到此关系。 | 否 |
undetermined | 当确认状态无法确定时,FlowFile 将被传输到此关系。传输到此关系的 FlowFile 可能会受到惩罚。当 Splunk 返回 HTTP 200 但对 FlowFile 属性中的确认 ID 返回 false 响应时会发生这种情况。 | 否 |
读取的 FlowFile 属性
| 名称 | 描述 |
|---|---|
splunk.acknowledgement.id | Splunk 提供的索引确认 ID。 |
splunk.responded.at | Splunk put 请求的响应时间。 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件要求有传入连接。
另请参阅
详细说明
QuerySplunkIndexingStatus
QuerySplunkIndexingStatus
该 Processor 负责轮询 Splunk 服务器,判断执行时某个 Splunk 事件是否已被确认。关于 HEC 索引确认的更多细节 参见本文档。
前提条件
要正常工作,传入的 FlowFile 需要正确填充 "splunk.acknowledgement.id" 和 "splunk.responded.at" Attribute。FlowFile Attribute "splunk.acknowledgement.id" 应包含原始 put 调用中 Splunk 响应返回的 "ackId"。FlowFile Attribute "splunk.responded.at" 应包含 put 调用被 Splunk 响应时的 Unix 纪元时间。建议使用 PutSplunkHTTP Processor 执行 put 调用并设置这些 Attribute。
未确认和未决的情况
Splunk 只提供关于成功确认的信息。其他所有情况都会返回 false,包括索引不成功或正在进行中、未知的确认标识符。 为避免无限重试,QuerySplunkIndexingStatus 允许用户设置 "Maximum waiting time"。在指定等待时间内 从 Splunk 获得 false 结果会作为 "undetermined" 处理,并转移到 "undetermined" Relationship。超出该时间 范围的 FlowFile 也会被查询,并根据 Splunk 的响应转移到 "acknowledged" 或 "unacknowledged" Relationship。为判断某个事件的索引 是否在等待时间内,原始 Splunk 响应的 Unix 纪元时间存储在 Attribute "splunk.responded.at" 中。把 "Maximum waiting time" 设置得太低可能导致一些假阴性 结果,因为在高负载情况下,Splunk 服务器的索引速度 可能比预期的慢。
在健康的环境中,未决情况是正常的,因为 Lynxus 可能在 Splunk 完成并确认之前就询问索引状态。 这些情况重试是安全的,建议把 "undetermined" Relationship 循环回该 Processor 以便稍后重试。转移到 "Undetermined" Relationship 的 FlowFile 会被施加惩罚(penalized)。
性能
请记住 Splunk 通道的限制:Splunk 中有多个配置参数可能直接影响 QuerySplunkIndexingStatus Processor 的性能和行为。例如 "max_number_of_acked_requests_pending_query" 和 "max_number_of_acked_requests_pending_query_per_ack_channel" 可能会限制 Splunk 存储的 ackID 数量。
另外,建议按批执行查询。"Maximum Query Size" 属性可用于微调该 Processor 在一次 API 请求中查询的最大事件数。这是批次的上限,但该 Processor 可能会用更少的事件执行查询。