求Splunk查询语句:获取24小时内无API请求的主机名
Splunk查询:获取过去24小时无API请求的主机名列表
方案1:基于资产列表排查(推荐,准确性更高)
如果有维护的服务器资产列表(比如CSV格式的lookup表),用这个查询能精准定位无API请求的目标主机:
| inputlookup asset_list.csv // 替换为你的资产列表lookup文件名 | table host | eval has_api_request = 0 | append [ // 子查询提取过去24小时有API请求的主机 search index=your_api_index earliest=-24h latest=now | dedup host | eval has_api_request = 1 | table host has_api_request ] | stats max(has_api_request) as has_api_request by host | where has_api_request = 0 | table host
关键说明:
inputlookup:加载全量服务器资产列表,确保覆盖所有需要排查的目标append:把过去24小时有API请求的主机数据合并进来stats max(has_api_request):聚合后,0代表该主机过去24小时无任何API请求- 最后用
where过滤出结果,输出的host列就是待确认状态的服务器
方案2:无资产列表时的变通方案
如果没有现成的资产列表,可以从历史API日志中提取所有曾出现过的主机,再对比近24小时的请求情况:
// 先获取过去7天内所有出现过的API相关主机(可调整时间范围) | search index=your_api_index earliest=-7d latest=now | dedup host | table host | eval has_recent_request = 0 | append [ search index=your_api_index earliest=-24h latest=now | dedup host | eval has_recent_request = 1 | table host has_recent_request ] | stats max(has_recent_request) as has_recent_request by host | where has_recent_request = 0 | table host
注意事项
- 务必替换
your_api_index为实际存储API请求日志的Splunk索引名称 - 如果日志中主机字段不是
host,换成实际的字段名(比如server_name、instance) - 可根据排查需求调整时间范围:比如把
-24h改成-12h缩小范围,或-7d扩大历史主机提取范围 - 输出结果可结合服务器监控数据,进一步判断是故障停机还是已退役
内容的提问来源于stack exchange,提问作者Naveen
相关产品推荐
相关产品推荐

