从 python 中的 kibana 查询?

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 中创建相同的查询?

提前致谢!

Nem*_*Est 5

是的,只需转换你的查询,以便 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)