簡體   English   中英

從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可以理解。 如果您具有用於Elastic的身份驗證設置,則還需要通過身份驗證。 (用戶名,密碼)作為元組。 將此添加為請求(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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM