

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Splunk 问题排查
<a name="data-not-delivered-to-splunk"></a>

如果数据未传输到您的 Splunk 终端节点，请检查以下各项。
+ 如果您的 Splunk 平台在 VPC 中，请确保 Firehose 可以访问它。有关更多信息，请参阅 [在 VPC 中访问 Splunk](controlling-access.md#using-iam-splunk-vpc)。
+ 如果您使用 AWS 负载均衡器，请确保它是 Classic 负载均衡器或 Application 负载均衡器。此外，使用为经典负载均衡器禁用的 Cookie 有效期启用基于持续时间的粘接会话，应用程序负载均衡器的有效期设置为最大值（7 天）。有关如何执行此操作的信息，请参阅[经典负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration)或[应用程序负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html)基于持续时间的会话粘性。
+ 检查 Splunk 平台要求。适用于 Firehose 的 Splunk 插件需要 6.6.X 或更高版本的 Splunk 平台。有关更多信息，请参阅[适用于 Amazon Kinesis Firehose 的 Splunk 插件](http://docs.splunk.com/Documentation/AddOns/released/Firehose/Hardwareandsoftwarerequirements)。
+ 如果您在 Firehose 和 HTTP 事件收集器 (HEC) 节点之间有代理（Elastic Load Balancing 或其他代理），请启用粘性会话以支持 HEC 确认（）。ACKs
+ 确保您使用有效的 HEC 令牌。
+ 确保启用了 HEC 令牌。
+ 检查是否为发送到 Splunk 的数据正确设置格式。有关更多信息，请参阅[为 HTTP 事件收集器的事件设置格式](http://docs.splunk.com/Documentation/Splunk/7.0.3/Data/FormateventsforHTTPEventCollector)。
+ 确保为 HEC 令牌和输入事件配置了有效索引。
+ 如果由于 HEC 节点出现服务器错误而无法上传到 Splunk，将会自动重试该请求。如果所有重试都失败，数据将备份到 Amazon S3。检查您的数据是否出现在 Amazon S3 中，这种情况表明出现此类失败。
+ 确保在您的 HEC 令牌上启用了索引器确认。
+ 在 Firehose 流的 Splunk 目的地配置中增加 `HECAcknowledgmentTimeoutInSeconds` 值。
+ 在 Firehose 流的 Splunk 目的地配置中的 `RetryOptions` 下增加 `DurationInSeconds` 值。
+ 检查 HEC 的运行状况。启用运行状况检查是向 Splunk 传输数据的先决条件。
+ 如果使用数据转换，确保您的 Lambda 函数不会返回有效负载大小超过 6MB 的响应。有关更多信息，请参阅 [Amazon Data Firehose 数据转换](data-transformation.md#data-transformation.title)。
+ 确保名为 `ackIdleCleanup` 的 Splunk 参数设置为 `true`。默认情况下，它设置为 false。若要将此参数设置为 `true`，请执行以下操作：
  + 对于[托管 Splunk 云部署](http://docs.splunk.com/Documentation/AddOns/released/Firehose/RequestFirehose)，请使用 Splunk 支持门户提交案例。在此情况下，应请求 Splunk 支持人员启用 HTTP 事件收集器，在 `inputs.conf` 中将 `ackIdleCleanup` 设置为 `true`，并创建或修改要用于此插件的负载均衡器。
  + 对于[分布式 Splunk Enterprise 部署](http://docs.splunk.com/Documentation/AddOns/released/Firehose/ConfigureHECdistributed)，请将 `inputs.conf` 文件中的 `ackIdleCleanup` 参数设置为 true。对于 \$1nix 用户，此文件位于 `$SPLUNK_HOME/etc/apps/splunk_httpinput/local/` 下。对于 Windows 用户，它位于 `%SPLUNK_HOME%\etc\apps\splunk_httpinput\local\` 下。
  + 对于[单实例 Splunk Enterprise 部署](http://docs.splunk.com/Documentation/AddOns/released/Firehose/ConfigureHECsingle)，请将 `inputs.conf` 文件中的 `ackIdleCleanup` 参数设置为 `true`。对于 \$1nix 用户，此文件位于 `$SPLUNK_HOME/etc/apps/splunk_httpinput/local/` 下。对于 Windows 用户，它位于 `%SPLUNK_HOME%\etc\apps\splunk_httpinput\local\` 下。
+ 确保在 Firehose 流中指定的 IAM 角色可以访问 S3 备份存储桶以及用于数据转换的 Lambda 函数（如果启用了数据转换）。此外，请确保 IAM 角色有权访问 CloudWatch 日志组和日志流以检查错误日志。有关更多信息，请参阅向 [Splunk 目标授权 FirehoseAccess ](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-splunk)。
+ 要将传输到 S3 错误存储桶（S3 备份）的数据重新驱动回 Splunk，请按照 [Splunk 文档](https://www.splunk.com/en_us/blog/tips-and-tricks/aws-technical-add-on-simplifying-error-data-re-ingestion.html)中提到的步骤进行操作。
+ 请参阅 [Amazon Kinesis Firehose 的 Splunk 插件故障排除](http://docs.splunk.com/Documentation/AddOns/released/Firehose/Troubleshoot)。