【发布时间】:2019-03-07 14:17:20
【问题描述】:
我正在尝试从 Python(eclipse IDE)传递查询以从中提取数据 SPLUNK 企业的特定仪表板。我能够获取数据 通过传递所需的查询在我的控制台上打印但我不是 能够提取特定时间间隔的数据(比如如果我想要数据 1 小时、1 天、1 周或 1 个月)
我已经尝试了诸如“最早”、“最新”之类的命令以及我的查询,但每次它都会抛出一个错误,说明 "raise HTTPError(response) splunklib.binding.HTTPError: HTTP 400 Bad Request -- Search Factory : 未知搜索命令 'earliest'"
这是我的代码
import splunklib.client as client
import splunklib.results as results
HOST = "my hostname"
PORT = 8089
USERNAME = "my username"
PASSWORD = "my password"
service = client.connect(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD)
rr = results.ResultsReader(service.jobs.export("search index=ccmjimmie | stats count(eval(resCode!=00200)) AS errored | chart sum(errored)|earliest=-1d"))
for result in rr:
if isinstance(result, results.Message):
# Diagnostic messages might be returned in the results
print(result.type, result.message)
elif isinstance(result, dict):
# Normal events are returned as dicts
print (result)
assert rr.is_preview == False
我在不使用时间查询的情况下得到的输出
OrderedDict([('sum(errored)', '1566')])
OrderedDict([('sum(errored)', '4404')])
OrderedDict([('sum(errored)', '6655')])
OrderedDict([('sum(errored)', '8992')])
etc...
此输出与预期相同,但不受时间限制。我想要相同的输出,但对于给定的时间间隔。并且时间间隔应该从上述 Python 代码中的搜索查询“serch.jobs.export()”中传递
请告诉我如何将“时间”查询与所需的查询一起传递。
非常感谢任何帮助!提前致谢!
【问题讨论】:
标签: python python-requests splunk splunk-query