从 python 中的 kibana 查询?
Query from kibana in python?
我正在 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
}
}
}
}
是否可以在 python 中创建相同的查询?
提前致谢!
是的,只需转换您的查询以便 python 能够理解。
如果您有弹性身份验证设置,您还需要通过身份验证。 (用户名,密码)作为元组。将此添加到请求中作为 (auth=(username,password))
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)
查询 ES 并将结果转换为 CSV 的方法如下:
from elasticsearch import Elasticsearch, helpers
import csv
es = Elasticsearch([“Server”])
query={"query": {"query_string" : {"query" : “(something: True)“}}}
index=[“Index”]
l=[]
with open('my.csv','w') as out:
csv_out=csv.writer(out)
csv_out.writerow([‘my’, ‘header’])
for i in index:
res=es.search(index=i,doc_type="core-config",body=query,_source_include=[“my”, “header”],size="10000")
for indexes in res['hits']['hits']:
l.append((indexes['_source’][‘my’],indexes['_source’][‘header’]))
set_keyid=list(set(l))
for lis in set_keyid:
csv_out.writerow(lis)
我正在 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
}
}
}
}
是否可以在 python 中创建相同的查询?
提前致谢!
是的,只需转换您的查询以便 python 能够理解。 如果您有弹性身份验证设置,您还需要通过身份验证。 (用户名,密码)作为元组。将此添加到请求中作为 (auth=(username,password))
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)
查询 ES 并将结果转换为 CSV 的方法如下:
from elasticsearch import Elasticsearch, helpers
import csv
es = Elasticsearch([“Server”])
query={"query": {"query_string" : {"query" : “(something: True)“}}}
index=[“Index”]
l=[]
with open('my.csv','w') as out:
csv_out=csv.writer(out)
csv_out.writerow([‘my’, ‘header’])
for i in index:
res=es.search(index=i,doc_type="core-config",body=query,_source_include=[“my”, “header”],size="10000")
for indexes in res['hits']['hits']:
l.append((indexes['_source’][‘my’],indexes['_source’][‘header’]))
set_keyid=list(set(l))
for lis in set_keyid:
csv_out.writerow(lis)