小编Joh*_*one的帖子

Elasticsearch - 默认不映射字段

在索引文档时,Elasticsearch 会自动为缺少的字段创建映射(文档内部)

是否可以配置(或)有一个配置,我们可以指示elasticsearch不要创建缺失的字段,而是忽略。

基本上,我们使用 Java POJO,我们使用相同 POJO 的实例来索引文档(通过使用 GSON 库将此实例转换为 json),并且还将此 POJO 中的一些字段用于某些外部目的。

所以当我们设置那些用于外部目的的字段,但将文档发送到 Elasticsearch 时,这些额外的字段也会被保存。我们想避免这种情况。

java json elasticsearch

6
推荐指数
1
解决办法
4660
查看次数

从Logstash中的多个目录中读取文件?

我使用此配置读取了我的日志文件(cron_log,auth_log,mail_log等):

file{
path => '/path/to/log/file/*_log'
}
Run Code Online (Sandbox Code Playgroud)

所以我读了我的日志文件并检查:

if(path) ~= "cron"  -----match--------
if(path) ~= "auth"  -----match--------
Run Code Online (Sandbox Code Playgroud)

现在我有一个目录,如:Server1 Server2 Server3......在Server 1子目录中:authlog cronlog.....在authlog内部有子目录日期明智(如2014.05.26, 2014.05.27)最终包含当天的日志文件,我必须解析.

所以目前我有一个用于读取文件的配置文件, *_log 我用它来运行该配置文件并/path/to/log/file/*_log解析了所有存在的日志文件.

现在我必须从许多目录中读取(如上所述).

我是否必须为每个目录编写单独的配置文件?

使用logstash实现这一目标的最佳方法是什么?

elasticsearch logstash kibana

2
推荐指数
1
解决办法
6506
查看次数

logstash未成功将数据发送到外部弹性搜索

以下是logstash.err的错误:

法拉第::连接失败:文件结束到达/ opt/logst///////////////////////////////////////////////////////////////////////////////////////////vendor/bundle/jruby/1.9/gems/faraday-0.9.0/lib/faraday/rack_builder.rb:139 run_request atopt /logstash/vendor/bundle/jruby/1.9/gems/faraday-0.9.0/lib/ faraday/connection.rb:377 perform_request at /opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/transport/http/faraday.rb:24在org打电话/jruby/RubyProc.java:271 perform_request at /opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/transport/base.rb:187 perform_request at/opt /logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/transport/http/faraday.rb:20 perform_request at /opt/logstash/vendor/bundle/jruby/1.9 /gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/client.rb:102 perform_request at/opt/logstash/v endor/bundle/jruby/1.9/gems/elasticsearch-api-1.0.1/lib/elasticsearch/api/namespace/common.rb:21 get_template at /opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch- api-1.0.1/lib/elasticsearch/api/actions/indices/get_template.rb:24 template_exists?at /opt/logstash/lib/logstash/outputs/elasticsearch/protocol.rb:132 template_install atopt /logstash/lib/logstash/outputs/elasticsearch/protocol.rb:21在/ opt/logstash/lib/logstash /注册输出/ elasticsearch.rb:259每个在org/jruby/RubyArray.java:1613输出工作者/opt/logstash/lib/logstash/pipeline.rb:220 start_outputs atopt /logstash/lib/logstash/pipeline.rb:152

这是我的输出配置:

output {
        elasticsearch { 
            host => "X.X.X.X"
            port => "9300"
            protocol => "http"
            cluster => "elasticsearch_david"
        }   
    }
Run Code Online (Sandbox Code Playgroud)

没有连接问题,任何想法?

使用tcpdump进一步调查给出:

GET /_template/logstash HTTP/1.1
User-Agent: Faraday v0.9.0
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
Connection: close
Run Code Online (Sandbox Code Playgroud)

host elasticsearch logstash

0
推荐指数
1
解决办法
5690
查看次数

标签 统计

elasticsearch ×3

logstash ×2

host ×1

java ×1

json ×1

kibana ×1