我已经编写了python代码以从splunk下载数据,以进行给定的搜索和给定的日期范围,但看来日期范围不起作用-我可以看到输入的日期之外的日志。
这是我的代码段:
def download_binary_file(self, url_path, output_file_path, auth, data):
self.logger.debug("Entering DatacenterSplunk.download_binary_file() for dc " + self.datacenter)
print("Writing logs to file: " + output_file_path)
try:
s = requests.Session()
r = s.post(url_path, auth=auth, data=data, stream=True, verify=self.verify_cert)
r.raise_for_status()
with open(output_file_path, 'wb') as f:
for chunk in r.iter_content(chunk_size=512):
if chunk:
f.write(chunk)
f.close()
except Exception as e:
self.logger.error("Exception encountered in DatacenterSplunk.download_binary_file():" + str(e))
self._handle_exception(e)
self.logger.debug("Leaving DatacenterSplunk.download_binary_file() for dc " + self.datacenter)
这是我要传递的网址和数据,
URL : https://example-zone-ms.compnay.com:8089/services/search/jobs/export
data= {'search': 'search source=*FOO_access* http_apikey | fields - host,source,sourcetype, splunk_server, _time, index, _serial', 'output_mode': 'csv', 'earliest': '08/22/2019:0:0:0', 'latest': '08/22/2019:23:59:59'}
除了日期范围问题外,它都能正常工作,无论输入的日期范围如何,我总是会得到最近7天的日志。对于这个范围 最早= 08/22/2019:0:0:0 -d最新= 08/23/2019:0:0:0 我可以从8月29日到8月22日
答案 0 :(得分:0)
您可以在搜索字符串中包括最早的和最新的字符串,而无需包括-d
data= {'search': 'search source=*FOO_access* http_apikey | fields - host,source,sourcetype, splunk_server, _time, index, _serial earliest=08/22/2019:0:0:0 latest=08/23/2019:0:0:0', 'output_mode': 'csv'}
或者,如果您想将其作为参数传递,则可以使用以下
data= {'search': 'search source=*FOO_access* http_apikey | fields - host,source,sourcetype, splunk_server, _time, index, _serial" 'earliest_time': "08/22/2019:0:0:0", 'latest_time': "08/23/2019:0:0:0", 'output_mode': 'csv'}