从Splunk REST API获取聚合结果而不是事件

时间:2013-01-07 22:51:59

标签: json api rest curl splunk

无法在白天查询一组事件的Splunk API。我的目标是为一组服务器日志返回带有七天事件计数(印象和唯一身份)的JSON。搜索如下:

index=assets_index gid=30 | timechart count(clientip) AS Impressions dc(clientip) AS Uniques

当我运行此搜索时,在终端中获取结果:

curl -u admin:ourpass -k https://ourserver.com:8089/services/search/jobs -d"search=search index=assets_index gid=30 | timechart count(clientip) AS Impressions dc(clientip) AS Uniques"
curl -u admin:ourpass \
     -k https://ourserver.com:8089/services/search/jobs/1357597855.2304/results/ \
     --get -d output_mode=json

我从搜索中获取原始事件而不是结果(在Web搜索App中运行此事件会返回我想要的结果)。我确信有一种简单的方法来请求结果使其工作,但我找不到它。帮助

1 个答案:

答案 0 :(得分:2)

你非常接近......只是你传递参数的方式是错误的。每个请求参数都应该使用-d标志单独传递,并且参数值需要进行URL编码。试试这个,看看它是否适合你:

curl -u admin:ourpass -k https://ourserver.com:8089/services/search/jobs -d search="search index%3Dassets_index gid%3D30 | timechart count(clientip) AS Impressions dc(clientip) AS Uniques

不确定您的网络应用是什么语言,Splunk还有多种语言的SDKs。通过SDK可能更容易,让他们处理与Splunk的对话。