elasticsearch + logstash + kibana日志系统清理的坑

1,302 阅读2分钟

日志系统kibana坚持许久终于倒下,报错503 429 430 等

  • 整个日志系统的流程如下图所示,datasource 被filebeat收集 送到logstash,logstash在elasticsearch创建索引,elasticsearch在送到kibana上展示
  • 索引健康状态以及分片情况等指令
## 查看索引状态
curl -u elastic:mHf8plOIOosUVdT1DUvI -XGET 'http://localhost:9200/_cat/indices?v'
curl -u elastic:mHf8plOIOosUVdT1DUvI -XGET localhost:9200/_cat/allocation?v
## 查看数据
curl -u elastic:mHf8plOIOosUVdT1DUvI http://localhost:9200/es-message-*/_search
http://localhost:9200/_cat/shards

## 查案节点配置资源大小
curl -u elastic:mHf8plOIOosUVdT1DUvI -XGET http://localhost:9200/_cat/nodes?h=heap.max

curl -u elastic:mHf8plOIOosUVdT1DUvI -XGET http://localhost:9200/_cat/thread_pool/write?v

curl -u elastic:mHf8plOIOosUVdT1DUvI http://localhost:9200/_cluster/health?level=indices
GET _cluster/health?level=indices
## 查看集群状态
curl -u elastic:mHf8plOIOosUVdT1DUvI http://localhost:9200/_cluster/health?pretty
## 查看分片状态
curl -u elastic:mHf8plOIOosUVdT1DUvI -XGET 'http://localhost:9200/_cat/shards?v'
## 清楚filebeat缓存
curl -u elastic:mHf8plOIOosUVdT1DUvI -XPOST http://localhost:9200/_all/_cache/clear?fielddata=true
## 清空索引数据
curl -u elastic:mHf8plOIOosUVdT1DUvI -XPOST http://localhost:9200/quality_control/my_type/_delete_by_query?refresh&slices=5&pretty { "query": { "match_all": {} } }

## 删除单个索引
curl -u elastic:mHf8plOIOosUVdT1DUvI -XDELETE http://localhost:9200/prod-228-wx-system*
## 查看node
curl -u elastic:mHf8plOIOosUVdT1DUvI -XGET 'http://localhost:9200/_cat/nodes'
  • 检查状态也每个索引的运行情况,发现大多数所以都为黄色,甚至很多个为红色

  • 使用上述指令对相关索引进行清除,但效果不明显,最后全部清理重新添加。
  • 最后重新添加索引仍然报错 too many request问题 ,最后在elasticsearch.yml中添加
  • 关闭circuit检查:
indices.breaker.type: none
  • 后发现每个索引都有一个备份的分片,而这个分片并没有被分配。也就是存在unassigned shards的情况。先使用以下指令查看索引unassigned shards的原因以及数量。
GET _cat/shards?h=index,shard,prirep,state,unassigned.reason

使用以下指令进行批量索引设置分片数为0

PUT /prod-*/_settings
{
  "number_of_replicas": 0
}

PUT /test-*/_settings
{
  "number_of_replicas": 0
}

** 我们再次使用命令查看集群的健康

GET /_cluster/health?pretty   ## 查看集群健康状况

  • 可以发现集群的状态为健康状态,我们再来查看下每个索引的状态。
GET /_cat/indices?v    ## 查看没有索引的运行状态

我们可以看到状态全部为绿色~

redis 以及 elasticsearch 崩溃清理

  • 清理redis数据以及全部keys
redis-cli -h hostaddress
  • kibana新增普通权限账户后报错(导致超级管理员再次登录后依然报错): {"statusCode":403,"error":"Forbidden","message":"Forbidden"}

在添加普通权限账户时添加role要添加kibana_user

  • 清理elasticsearch中的全部索引后,容易导致xpack文件丢失,原密码报错无法登录,可以使用以下命令(在elasticsearch/bin下面执行)
bin/elasticsearch-setup-passwords auto --自动设置密码
bin/elasticsearch-setup-passwords interactive -- 手动设置密码