【问题标题】:How to get the list of indices created in Kibana?如何获取在 Kibana 中创建的索引列表?
【发布时间】:2017-05-04 21:05:41
【问题描述】:

我能够从 Elasticsearch 中检索索引,并以 Java 编程方式在 Kibana 中注册相应的索引模式。现在我想获取已在 Kibana 中创建的索引模式列表,以便我可以将其与 Elasticsearch 中的索引列表进行交叉检查,以免在 Kibana 中再次创建它们。

是否有从 Kibana 获取索引模式列表的 API?

--

用于从 Elasticsearch 获取索引列表的 API: http://{hostname}:{port}/_aliases

在 Kibana 中创建索引模式的 API: http://{hostname}:{port}/{kibana instance Id}/index-pattern/{index pattern title}

【问题讨论】:

    标签: elasticsearch kibana


    【解决方案1】:

    使用下一个查询: GET /.kibana/index-pattern/_search

    【讨论】:

    • 似乎正在返回模式......谢谢!
    • 在我从 Kibana 删除一个索引模式时进一步测试,API 没有返回正确的结果。
    • 你是如何删除索引模式的?
    • 在 Kibana 中使用 UI。
    • 你说查询没有返回正确的结果,你的意思是你得到了你之前删除的索引模式?
    【解决方案2】:

    此查询有效(来自 kibana 开发控制台):

    GET .kibana/_search?size=10000
    {
      "_source": ["index-pattern.title"],
      "query": {
        "term": {
          "type": "index-pattern"
        }
      }
    }
    

    【讨论】:

      【解决方案3】:

      恐怕目前它仍然不可用,您可以使用 api 来公开在Kibana 中创建的所有索引。

      但请记住,只有您已经在 ES 中创建了索引,您才能在 Kibana 中创建索引。所以也许你可以考虑检查你的 ES 索引是否已经有一个现有的索引,如果没有创建索引。如果您的索引列表中不存在该索引,您可以在哪里确定,这意味着您无法继续在Kibana 中创建索引。

      【讨论】:

      • 感谢库拉桑格。这就是我现在正在做的事情。我正在检查 ES 中的索引,并且仅使用与可能的模式列表(内存中)中的项目匹配的索引。问题是我不想在下次重复该过程时再次在 Kibana 中创建那些已经创建的索引模式。
      • @lex 你想要做什么是绝对正确的。让我们期待未来的增强。如果我的回答帮助您投票,如果它指导您的要求,请将其标记为答案,以便它也可以帮助其他人。谢谢!
      【解决方案4】:

      您可以从 API 中列出它们:

      GET _cat/indices/.marvel* GET _cat/indices/.kibana

      【讨论】:

      • 使用 ``` GET _cat/indices/.kibana ``` 给了我 ``` 绿色打开 .kibana 1 0 2 0 6.6kb 6.6kb ```
      【解决方案5】:

      我查看了 Kibana(5.5 版)控制台,通过执行此查询可以获得相同的结果

      curl -X POST -H 'Content-Type: application/json' \
       -d '{"query":{"match_all":{}},"size":10000}'  \
       http://$ES_HOST/.kibana/index-pattern/_search/\?stored_fields\=""
      

      请注意,如下向上述 url 发出 GET 请求也会返回字段,但仅限于 10 个。

      curl http://$ES_HOST/.kibana/index-pattern/_search/\?stored_fields\=""
      

      【讨论】:

        【解决方案6】:

        适用于 kibana 7.x:

        • 获取所有索引模式
        curl -s 'http://192.168.100.100:5601/api/saved_objects/_find?fields=title&fields=type&per_page=10000&type=index-pattern'
        
        # Use jq to get the index-pattern name:
        curl -s 'http://192.168.100.100:5601/api/saved_objects/_find?fields=title&fields=type&per_page=10000&type=index-pattern' | jq '.saved_objects[].attributes.title'
        
        "guest-service*"
        "activity2020*"
        "bank-cockpit*"
        "cros-n-wa*"
        "anti-fraud20*"
        "yhb-node*"
        "public-service-node*"
        
        • 删除特定的索引模式
        curl -XDELETE -H 'kbn-xsrf: ""' 'http://192.168.100.100:5601/api/saved_objects/index-pattern/970070d0-f252-11ea-b492-31ec85db4535'
        

        必须设置-H 'kbn-xsrf: ""',否则API会报错{"statusCode":400,"error":"Bad Request","message":"Request must contain a kbn-xsrf header."}

        使用jq -r获取不带qoute的值。

        【讨论】:

          猜你喜欢
          • 2014-08-16
          • 2016-08-20
          • 1970-01-01
          • 1970-01-01
          • 2017-05-17
          • 1970-01-01
          • 2017-05-25
          • 2017-07-31
          • 1970-01-01
          相关资源
          最近更新 更多