Dig*_*tag 1 python python-3.x elasticsearch kibana
我正在用 Python 启动一个小脚本,以便对我在 Kibana 中进行的查询创建一个小 GET。目前,在 Kibana 中,我收到了包含计数的 IP 列表:
我想用 Python 接收这些信息,我已经尝试过搜索,但我不确定是否理解。
这是 Kibana 中的查询:
GET /_search
{
"size": 0,
"query": {
"range": {
"@timestamp": {
"gte": 1552922613804,
"lte": 1552923513804,
"format": "epoch_millis"
}
}
},
"aggs": {
"2": {
"significant_terms": {
"field": "origin.keyword",
"size": 300
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以在 python 中创建相同的查询?
提前致谢!
是的,只需转换你的查询,以便 python 可以理解。如果您有弹性身份验证设置,您还需要通过身份验证。(用户名,密码)作为元组。将其添加到请求中,格式为 (auth=(用户名,密码))
import json
import requests
HEADERS = {
'Content-Type': 'application/json'
}
uri = "[insert your endpoint]"+"/_search"
query = json.dumps({
"size": 0,
"query": {
"range": {
"@timestamp": {
"gte": 1552922613804,
"lte": 1552923513804,
"format": "epoch_millis"
}
}
},
"aggs": {
"2": {
"significant_terms": {
"field": "origin.keyword",
"size": 300
}
}
}
})
r = requests.get(uri,headers=HEADERS, data=query).json()
print(r)
Run Code Online (Sandbox Code Playgroud)