将 Kibana 查询(创建索引模式)转换为 Python 请求
Convert Kibana query (create index pattern) to Python request
我正在尝试将此 Kibana 查询转换为 Python:
PUT /.kibana/_doc/index-pattern:tempindex
{
"type": "index-pattern",
"index-pattern": {
"title": "tempindex",
"timeFieldName": "sendTime"
}
}
这是我目前拥有的:
HEADERS = {
'Content-Type': 'application/json'
}
uri = "http://localhost:5601/_doc/index-pattern:tempindex"
query = json.dumps({
"type": "index-pattern",
"index-pattern": {
"title": "tempindex",
"timeFieldName": "sendTime"
}
})
r = requests.put(uri, headers=HEADERS, data=query).json()
print(r)
但它给了我
{'statusCode': 404, 'error': 'Not Found', 'message': 'Not Found'}
我做错了什么?
P.S:Elastic 和 Kibana 服务器都是本地的 (Windows 10)。
似乎只要改变 uri
就可以了:
uri = "http://localhost:9200/.kibana/_doc/index-pattern:tempindex"
但我不确定 HEADERS
,因为正如 lupanoide 指出的那样,kbn-xsrf: true
应该存在,但无论哪种方式它似乎都有效并且显然是结果是一样的(我还没有发现区别)。
编辑:正如 doc 所说:
kbn-xsrf: true
By default, you must use kbn-xsrf
for all API calls, except in the
following scenarios:
The API endpoint uses the GET
or HEAD
operations
The path is whitelisted using the server.xsrf.whitelist setting
XSRF protections are disabled using the server.xsrf.disableProtection
setting
所以我认为它应该存在。
我正在尝试将此 Kibana 查询转换为 Python:
PUT /.kibana/_doc/index-pattern:tempindex
{
"type": "index-pattern",
"index-pattern": {
"title": "tempindex",
"timeFieldName": "sendTime"
}
}
这是我目前拥有的:
HEADERS = {
'Content-Type': 'application/json'
}
uri = "http://localhost:5601/_doc/index-pattern:tempindex"
query = json.dumps({
"type": "index-pattern",
"index-pattern": {
"title": "tempindex",
"timeFieldName": "sendTime"
}
})
r = requests.put(uri, headers=HEADERS, data=query).json()
print(r)
但它给了我
{'statusCode': 404, 'error': 'Not Found', 'message': 'Not Found'}
我做错了什么?
P.S:Elastic 和 Kibana 服务器都是本地的 (Windows 10)。
似乎只要改变 uri
就可以了:
uri = "http://localhost:9200/.kibana/_doc/index-pattern:tempindex"
但我不确定 HEADERS
,因为正如 lupanoide 指出的那样,kbn-xsrf: true
应该存在,但无论哪种方式它似乎都有效并且显然是结果是一样的(我还没有发现区别)。
编辑:正如 doc 所说:
kbn-xsrf: true
By default, you must use
kbn-xsrf
for all API calls, except in the following scenarios:The API endpoint uses the
GET
orHEAD
operations
The path is whitelisted using the server.xsrf.whitelist setting
XSRF protections are disabled using theserver.xsrf.disableProtection
setting
所以我认为它应该存在。