场景:
kubesphere 的日志接受是配置的外部的es ,刚开始可以正常查询日志的,
于是在测试集群上 接了生产的es ,发现可以 正常的接受日志:

问题定位就是 生产集群上 处理日志的程序有问题了, 没有打到es 上来。
原因有2:
1: fluent 缓存
2: 单节点 es 分片数量最大1000
在网上找到了答案:
Fluent Bit 的memBufLmit(内存缓冲区限制)调大就可以了
一次生产 KubeSphere 日志无法正常采集事件解决记录-CSDN博客
怎么调呢?
在"定制资源定义(CRD)"->input->"tail" 修改 memBufLimit 参数限制大小,可参考下图:
报错查询

找到对应的 节点
kubectl logs -n kubesphere-logging-system fluent-bit-2bxvx
会看到日志,有报错信息的。
如果不想敲命令,可以这样

2: 单节点 es 分片数量最大1000 解决方案:
es 分片设置

kibana 查询es 分片数量
GET /_cat/shards?v

发现有好多state 是 unassigned
手动按删除一些过期的索引:

问题得到解决:

欢迎来撩 : 汇总all
