从splunk REST API导出/流式传输大量结果

时间:2015-07-04 23:15:58

标签: python rest splunk

我需要从splunk导出大量事件。因此,出于性能原因,我在我的python代码中直接使用REST API而不是使用Splunk SDK本身。

found以下curl命令导出结果。这也可用here: -

  curl -ku username:password
https://splunk_host:port/servicesNS/admin/search/search/jobs/export -d
search=“search index%3D_internal | head 3” -d output_mode=json

我尝试使用python的http函数模拟这个函数如下: -

//assume i have authenticated to splunk and have a session key
base_url = "http://splunkhost:port"

search_job_urn = '/services/search/jobs/export'

myhttp = httplib2.Http(disable_ssl_certificate_validation=True)

searchjob = myhttp.request(base_url + search_job_urn, 'POST', headers=
{'Authorization': 'Splunk %s' % sessionKey},
body=urllib.urlencode({'search':'search index=indexname sourcetype=sourcename'}))[1]

print searchjob

最后一次打印会一直打印所有结果,直到完成为止。对于大型查询,我得到“内存错误”。我需要能够以块(例如50,000)读取结果并将它们写入文件并重置缓冲区以进行searchjob。我怎么能做到这一点?

0 个答案:

没有答案