ElasticSearch 常见异常

1. Cannot open file logs/gc.log due to Permission denied

不能用root账户启动ES,需要用ES账户启动su essearch ./bin/elasticsearch

如果出现以上问题,则是因为用root启动过导致。到ElasticSearch中的log中删除gc.log文件即可

2. ElasticSearch 启动不起来

当Logstash正大量拥堵要写入的数据时,ES是无法启动的,负载太高,需要临时停止Logstash作业

3. 健康状态一直处于警告,ES坏节点较多,无法分片

#重新分配
POST /_cluster/reroute?retry_failed=true
#查看集群状态
GET _cluster/health?pretty

4. logstash启动

nohup bin/logstash -f config/kafka2es.conf &>/dev/null &

5. Validation Failed: 1: this action would add [1] total shards, but this cluster currently has [1000]

[2021-04-12T03:41:01,723][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"appblog-2021.02.12", :_type=>"_doc", :routing=>nil}, #<LogStash::Event:0x53ee69a7>], :response=>{"index"=>{"_index"=>"appblog-2021.02.12", "_type"=>"_doc", "_id"=>nil, "status"=>400, "error"=>{"type"=>"validation_exception", "reason"=>"Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [1000]/[1000] maximum shards open;"}}}}

ES报错无法创建多余的分片,可调整分片数

原因:ES集群默认有最大分片数1000的限制,达到最大数以后,无法添加新的分片,导致无法创建索引写入日志。

解决:在Kibana上的DEV TOOL工具里执行如下命令

PUT /_cluster/settings
{
  "transient": {
    "cluster": {
      "max_shards_per_node":10000
    }
  }
}
{
  "acknowledged" : true,
  "persistent" : { },
  "transient" : {
    "cluster" : {
      "max_shards_per_node" : "10000"
    }
  }
}
上一篇 ElasticSearch因磁盘空间不足异常中止服务
下一篇 阿里巴巴开源 MySQL同步组件Canal
目录
文章列表
1 Android NDK基础22:C++_异常处理_模板函数_STL标准模板库
Android NDK基础22:C++_异常处理_模板函数_STL标准模板库
2
Java多线程编程五(线程间通信之ThreadLocal)
Java多线程编程五(线程间通信之ThreadLocal)
3
Retrofit2学习之七:上传多个文件
Retrofit2学习之七:上传多个文件
4
Android NDK 版本选择
Android NDK 版本选择
5
Filebeat利用Kafka进行日志实时传输
Filebeat利用Kafka进行日志实时传输
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。