Kibana 创建索引forbidden
今天使用Kibana查询索引,发现无法查询到最新日志。同时创建索引时,提示forbidden。
初步怀疑是服务没有成功写入日志,测试发现该项排除
后排查发现Elasticsearch状态为yellow,但解决该问题后,任然无法创建。
后发现kibana自动将index变成了只读状态,最终解决了该问题
磁盘超85%
发现kibana索引创建失败,首先查询了集群状态
1 | curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' |
发现状态为yellow,排查,发现是磁盘已经超过85%
解决方案
删除部分索引,检查磁盘,已经低于85%,但任然是yellow状态,
Index状态unsigned
1 | # 分片状态查看 |
查看,发现有unsigned的index,排查具体的原因后,发现索引过大
elatic which is larger than the limit of
jvm 堆内存不够当前查询加载数据所以会报 data too large, 请求被熔断,indices.breaker.request.limit 默认为 jvm heap 的 60%
解决方案
加大某个节点的jvm内存,重启es服务
参考文章 https://blog.csdn.net/knight_zhou/article/details/104711099/
解决方案:
加大某个节点的jvm内存,重启es服务
操作
修改jvm内存
1 | vim /opt/application/elk/elastic-04/config/jvm.options |
到此,Kibana也能正常登录,Unassigned Shards 也逐步减少,最后健康状态恢复为绿色
Kiban creat index 403
一、问题描述:
Kibana创建索引:kibana > management > index patterns > create index pattern
索引名称: merchant-receipt-log-2019.06.04
点击创建按钮后,什么也没发生, 索引没有创建成功。
打开浏览器开发工具【f12】
发现如下错误:
POST http://ip:5601/api/saved_objects/index-pattern 7 403 (forbidden)
原因
索引变成只读状态,出现了错误原因是存储空间变小,导致kibana自动将它变成了只读状态。
一旦在存储超过95%的磁盘中的节点上分配了一个或多个分片的任何索引,该索引将被强制进入只读模式。
解决方案
kibana中-DevTool中执行代码即可
或者直接使用CURL命令
1 | curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}' |
index中type不同
但是要kibana仍查询不到日志
- 判断是否有日志写入
- 判断服务器时间是否与搜索时间匹配。可能服务器时间和kibana时间不同步
- 创建索引时,选择的时间搜索项是否正确
- index相同时,type不同也会查询不到
最后检查,发现不小心修改了代码中type,导致能够写入日志到elastic,但是kibana却查询不到
参考文章
Elasticsearch集群健康状态显示为yellow排查
Kibana 创建索引 POST 403 (forbidden) on create index
https://shazi.info/elasticsearch-index-出現-403-read-only-的處理方式
https://blog.csdn.net/knight_zhou/article/details/104711099/