使用本指南解决通过 Cloudflare App for Splunk 分析 Cloudflare Logs ↗ 时的常见问题。
cloudflare:json sourcetype 下 Firewall Events 数据集的事件携带的 _time 值与事件的实际时间不匹配,并且 splunkd.log 显示类似以下条目:
WARN DateParserVerbose - Failed to parse timestamp.
Defaulting to timestamp of previous event.原因: 在较早版本的 Cloudflare App for Splunk 中,cloudflare:json sourcetype 从 EdgeStartTimestamp JSON 键提取 _time,该键仅存在于 HTTP 请求日志中。Firewall Events 使用不同的键(Datetime),因此时间戳提取失败,Splunk 会静默回退到最近一次已索引事件的时间戳。
修复: 升级到最新版本的 Cloudflare App for Splunk ↗。当前版本会在 cloudflare:json sourcetype 下解析 EdgeStartTimestamp 和 Datetime。
如果无法立即升级,或维护自定义的 props.conf,请在 indexer 或 heavy forwarder 上将 cloudflare:json stanza 更新为同时匹配这两个键,然后重启 Splunk 服务:
[cloudflare:json]
TRUNCATE = 100000
TIME_PREFIX = "(?:EdgeStartTimestamp|Datetime)"\s*:\s*"
TIME_FORMAT = %Y-%m-%dT%H:%M:%SZ
MAX_TIMESTAMP_LOOKAHEAD = 150验证: 新索引的 Firewall Events 携带准确的 _time 值,并且 splunkd.log 中不再出现 DateParserVerbose 警告。修复前已索引的事件会保留其原始 _time 值,除非重新索引。
Cloudflare App for Splunk 中的 Cloudflare – Security (WAF) 仪表板可以无错误加载,但所有面板都为空。其他仪表板(Overview、Performance、Reliability)正常填充,即使目标索引中已确认存在 WAF 和安全事件,在搜索栏中直接运行 WAF 面板的底层 SPL 也会返回零结果。
原因: 在较早版本的 Cloudflare App for Splunk 中,WAF 仪表板 SPL 引用了已从 HTTP Requests 数据集中移除 的 Cloudflare 日志字段:
| 已弃用字段 | 当前字段 |
|---|---|
FirewallMatchesRuleIDs{} |
SecurityRuleIDs |
WAFRuleMessage |
SecurityRuleDescription |
当搜索引用所有已索引事件中都不存在的字段时,Splunk 不会引发错误——它会完成搜索并返回零结果,导致每个仪表板面板都为空。
修复: 升级到最新版本的 Cloudflare App for Splunk ↗。当前版本在整个 WAF 仪表板、已保存搜索和宏中引用 SecurityRuleIDs 和 SecurityRuleDescription。
如果维护该应用的自定义分支,请将仪表板 XML、已保存搜索和宏中所有对 FirewallMatchesRuleIDs{} 和 WAFRuleMessage 的引用分别替换为 SecurityRuleIDs 和 SecurityRuleDescription。
验证: 重新加载 Cloudflare – Security (WAF) 仪表板。面板应填充最近的 WAF 和安全事件。类似 index=<your-index> sourcetype=cloudflare:json SecurityRuleIDs=* 的直接搜索也应返回匹配事件。
如果此处未涵盖你的问题:
- 查阅 Splunkbase 上的 Cloudflare App for Splunk 页面 ↗,了解最新版本和发行说明。
- 查看 Cloudflare Logs 变更通知,了解可能影响搜索或仪表板的近期 schema 变更。
- 涉及 Cloudflare 侧日志投递的问题,请联系 Cloudflare Support。
- Splunk 环境内的问题,请联系 Splunk 代表或集成合作伙伴。