elasticsearch 如何获得ElasticSearch输出?,elasticsearch,logstash,elastic-stack,elasticsearch,Logstash,Elastic Stack" /> elasticsearch 如何获得ElasticSearch输出?,elasticsearch,logstash,elastic-stack,elasticsearch,Logstash,Elastic Stack" />

elasticsearch 如何获得ElasticSearch输出?

elasticsearch 如何获得ElasticSearch输出?,elasticsearch,logstash,elastic-stack,elasticsearch,Logstash,Elastic Stack,我想将我的日志文档添加到ElasticSearch,然后我想在ElasticSearch中检查文档。 以下是日志文件的内容: Jan 1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message-id=<20130101142543.5828399CCAF@mailserver14.example.com> Feb 2 06:25:43 mailserver15 postfix/cleanup[21403

我想将我的日志文档添加到ElasticSearch,然后我想在ElasticSearch中检查文档。 以下是日志文件的内容:

Jan  1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message-id=<20130101142543.5828399CCAF@mailserver14.example.com>
Feb  2 06:25:43 mailserver15 postfix/cleanup[21403]: BEF25A72999: message-id=<20130101142543.5828399CCAF@mailserver15.example.com>
Mar  3 06:25:43 mailserver16 postfix/cleanup[21403]: BEF25A72998: message-id=<20130101142543.5828399CCAF@mailserver16.example.com>
我将自己的grok模式定义为:

后缀_QUEUEID[0-9A-F]{10,11}

当我运行logstash实例时,我成功地将数据发送到elasticsearch,它给出以下输出:

{
  "depositorypayin" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        "creation_date" : "1547795277865",
        "number_of_shards" : "5",
        "number_of_replicas" : "1",
        "uuid" : "5TKW2BfDS66cuoHPe8k5lg",
        "version" : {
          "created" : "6050499"
        },
        "provided_name" : "depositorypayin"
      }
    }
  }
}
现在,我已经将索引存储在弹性搜索中的testindex下,但是当我使用
curl-X GET“localhost:9200/testindex”
时,我得到以下输出:

{
  "depositorypayin" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        "creation_date" : "1547795277865",
        "number_of_shards" : "5",
        "number_of_replicas" : "1",
        "uuid" : "5TKW2BfDS66cuoHPe8k5lg",
        "version" : {
          "created" : "6050499"
        },
        "provided_name" : "depositorypayin"
      }
    }
  }
}

这不是索引中存储的内容。我想查询索引中的文档。请帮助。(注:请原谅我的拼写错误)

您上面使用的API只返回有关索引本身(文档)的信息。您需要使用来搜索文档。以下内容将返回索引
testindex
中的所有文档:

curl -X GET "localhost:9200/testindex/_search" -H 'Content-Type: application/json' -d'
{
    "query": {
        "match_all": {}
    }
}
'

实际上我已经编辑了我的配置文件,现在看起来是这样的:

input {
. . .
}

filter {
 . . .
}

output{
    elasticsearch{
       hosts => "localhost:9200"
       index => "testindex"
    }

}
现在,我可以使用elasticSearch获取数据

curl'localhost:9200/testindex/\u search'

我不知道它是怎么工作的,但现在是。
有人能解释一下原因吗?

我得到了:{“take”:3,“timed\u out”:false,“\u shards”:{“total”:5,“successful”:5,“skipped”:0,“failed”:0,“hits”:{“total”:0,“max\u score”:null,“hits”:[]}[2019-01-18T13:49:04858][WARN][logstash.outputs.elasticsearch]无法将事件索引到elasticsearch。{:状态=>404,:操作=>[“更新”,“测试”,“测试索引=>,:\u类型=>“文档”,:路由=>nil,:\u重试\u冲突=>1},;],:响应=>{“更新”=>{“\u索引”=>“测试索引”,“\u类型=>“文档”,“\u id”=>“测试”,“状态”=>404,“错误”=>“类型”=>“文档缺失”=>“异常”,“文档缺失”=>,[文档缺失原因],[文档缺失]“sydh5d8esuovsdhbidxhg”,“shard”=>“0”,“index”=>“testindex”}}}}我在运行日志存储时收到上述警告,你能帮我解决这个问题吗,因为上面写着**“原因”=>“[doc][test]:文档丢失“,**我不太熟悉logstash,但我认为您需要将
doc\u as\u upsert=>true
添加到输出配置中。否则,logstash将只尝试更新现有文档,而不会添加新文档。这是因为通过删除
action=>“update”
document\u id=>“test”
选项,logstash将使用默认的
action=>“insert”
。这将导致logstash将文档添加到索引中,而不是尝试更新索引中的现有文档(在您的情况下,文档不存在,因此失败)。