elasticsearch logstash服务器日志上的type和max_open_文件出错,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration" /> elasticsearch logstash服务器日志上的type和max_open_文件出错,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration" />

elasticsearch logstash服务器日志上的type和max_open_文件出错

elasticsearch logstash服务器日志上的type和max_open_文件出错,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration,我在logstash日志文件中的logstash服务器上收到一些恼人的消息: 首先看起来像是 [2019-01-29T21:27:30,230][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"syslog-2019.01.29", :_type=>

我在logstash日志文件中的logstash服务器上收到一些恼人的消息:

首先看起来像是

[2019-01-29T21:27:30,230][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"syslog-2019.01.29", :_type=>"doc", :routing=>nil}, #<LogStash::Event:0x7e88287a>], :response=>{"index"=>{"_index"=>"syslog-2019.01.29", "_type"=>"doc", "_id"=>"zsY5nWgB6AmJPdJO_omb", "status"=>400, "error"=>{"type"=>"illegal_argument_exception", "reason"=>"Rejecting mapping update to [syslog-2019.01.29] as the final mapping would have more than 1 type: [messages, doc]"}}}}
这个max_open_文件与它发送数据的弹性服务器有关

我增加了/usr/lib/systemd/system/elasticsearch.service文件中的限制 和/etc/security/limits.conf,但没有任何更改

我的日志存储配置文件:

旧的:

[root@myelk04 ~]# cat /etc/logstash/conf.d/syslog.conf
input {
  file {
    path => [ "/data/SYSTEMS/*/messages.log" ]
    start_position => beginning
    sincedb_path => "/dev/null"
    type => "syslog"
  }
}

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp } %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      remove_field => ["@version", "host", "message", "_type", "_index", "_score", "path"]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
 }
}
}
output {
        if [type] == "syslog" {
        elasticsearch {
                hosts => "myelk01:9200"
                manage_template => false
                index => "syslog-%{+YYYY.MM.dd}"
                document_type => "messages"
  }
 }
}
[root@myelk04 ~]#
当前一个:

可能我只是删除了document_type=>messages,因为它会弹出此消息并将默认值作为doc

[root@myelk04 ~]# cat /etc/logstash/conf.d/syslog.conf
input {
  file {
    path => [ "/data/SYSTEMS/*/messages.log" ]
    start_position => beginning
    sincedb_path => "/dev/null"
    type => "syslog"
  }
}

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp } %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      remove_field => ["@version", "host", "message", "_type", "_index", "_score", "path"]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
 }
}
}
output {
        if [type] == "syslog" {
        elasticsearch {
                hosts => "myelk01:9200"
                manage_template => false
                index => "syslog-%{+YYYY.MM.dd}"
  }
 }
}
[root@myelk04 ~]#

第一个错误是,logstash正在尝试更新特定索引的映射。此更新将为类型doc添加一个新映射,但已存在一个消息映射。这将导致在同一索引中有两个映射,这是不再支持的。 请检查此索引的映射以及您试图在syslog-*索引中索引的文档类型。也许您已经对消息类型的某些文档使用了相同的索引

第二个错误是,已达到打开文件的数量。若要永久增加,您需要按照您已经部分应用的说明进行操作。不仅在elasticsearch服务器上,而且在logstash主机上发布此更改

要在服务器运行时应用此设置,您需要执行此命令并重新启动服务:

sudo ulimit -n 65535

logstash文件输入插件中还有一个选项,用于设置最大打开文件输入{file{path=>…最大打开文件=>1000}@ibexit,thhx为您的答案,但第二个错误仍然存在,我已经查看了此文档并检查了所有相关的elastic论坛,但没有任何有用的,我已经在所有文件中应用了所有必要的设置,但仍然遇到相同的问题。我需要记下所有提到的更改和其他更改,我已经在另一个问题我想说得更清楚一些。提出这个问题并说max_pen_文件错误每个人都提到了相同的问题,但看起来问题出在其他地方。我用的是6.4.x的麋鹿。
sudo ulimit -n 65535