任何人都可以提供 REST API 列表来查询 elasticsearch 吗?

Can anyone give a list of REST APIs to query elasticsearch?

  1. 我正在尝试通过 logstash 将我的日志推送到 elasticsearch。
  2. 我的 logstash.conf 有 2 个日志文件作为输入;弹性搜索作为输出;和 grok 作为过滤器。这是我的 grok 比赛:

    grok {
      match => [ "message", "(?<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}
    [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}) 
    (?:\[%{GREEDYDATA:caller_thread}\]) (?:%{LOGLEVEL:level}) 
    (?:%{DATA:caller_class})(?:\-%{GREEDYDATA:message})" ]
       }
    
  3. 当 elasticsearch 启动时,我的所有日​​志都添加到 elasticsearch 服务器,并带有单独的索引名称,如 logstash.conf 中所述。

  4. 我的疑问是我的日志是如何存储在 elasticsearch 中的?我只知道是用logstash中提到的索引名存储的。

'http://164.99.178.18:9200/_cat/indices?v' API 给了我以下内容:

健康状况指数 pri rep docs.count docs.deleted store.size pri.store.size

yellow open   tomcat-log      5   1       6478            0      1.9mb          1.9mb 

yellow open   apache-log      5   1        212            0      137kb   
   137kb 
  1. 但是,如何在 elasticsearch 中为我的日志创建 'documents'、'fields'。

我了解到 elasticsearch 是基于 REST 的搜索引擎。所以,如果有任何 REST API 可以用来在 elasticsearch 中分析我的数据。

确实如此。

curl localhost:9200/tomcat-log/_search

将返回前 10 个文档以及索引中的文档总数。

curl localhost:9200/tomcat-log/_search -d '{
  "query": {
    "match": {
      "level" : "error"
    }
  }
}'

可能会为您提供 tomcat-log 中级别等于错误的所有文档。

看看这一段book。会有帮助。