grafana出品的loki日志框架完美地与kubernetes的label理念结合,相对于EFK来说更加轻量级,非常适合不需要日志聚合的场景.目前新上集群考虑都彩loki做为基础工具, 直接在grafana中展示
在这里记录下使用Loki踩过的坑, 不定期更新
LOKI启动时提示 panic: invalid page type: 11: 10
原因: 对应的index table文件已经损坏
解决: 删除相应的index文件即可解决
日志的label不对
原因: promtail中的scrape_config存在问题.
参考: https://izsk.me/2022/05/15/Loki-log-with-wrong-labels/
grafana中开启实时日志时提示Query error
原因: 官方的解释是Note that live tailing relies on two websocket connections: one between the browser and the Grafana server, and another between the Grafana server and the Loki server. If you run any reverse proxies, please configure them accordingly.
也就是说,如果在web与grafana,grafana与loki之间存在如nginx类的proxy,则需要开启websocket特性,洽洽作者的grafana是在nginx后的
解决: nginx添加websocket配置,详见
Loki: file size too small\nerror creating index client
解决: 删除loki的持久化目录下的boltdb-shipper-active/index_18xxx目录
参考: https://github.com/grafana/loki/issues/3219
protail: context deadline exceeded
原因: promtail无法连接loki所致
promtail cpu使用过高
原因: 由于集群中存在大量的job类pod,这会对loki的服务发现会有很大的压力,需要调整promtail的配置,查看官方的issue,后续可能会将ds由promtail转到服务端来做,promtail需要调整的配置主要为
1 | target_config: |
将 sync_period由默认的10s换成30s
可以使用以下的命令获取到pprof文件分析性能
1 | curl localhost:3100/debug/pprof/profile\?seconds\=20 |
参考: https://github.com/grafana/loki/issues/1315
Maximum active stream limit exceeded
原因: 同下,需要调整limit config中的max_streams_per_user, 设置为0即可
server returned HTTP status 429 Too Many Requests
原因: limit config中的参数: ingestion_burst_size
默认值太小,调整即可
参考: https://github.com/grafana/loki/issues/1923
Please verify permissions
原因: 这条其实是warn,不影响promtail的正常工作,如果调整过日志的路径的话要确认promtail挂载的路径是否正常
loki: invalid schema config
原因: loki的配置文件格式错误.
promtail: too many open files
原因: /var/log/pods下面的文件数量太多,导致超过内核参数(fs.inotify.max_user_instances)设置配置.
解决:
1 | # 先查看当前机器设置的配置 |
参考: https://github.com/grafana/loki/issues/1153
promtail: no such file ro directory
原因: promtail daemonset启动时会自动挂载好几个hostpath,如果docker containers的配置调整过,则需要volume跟volumemount都需要对应上.
未完待续
参考文章:
- https://github.com/grafana/loki/issues/429
- https://github.com/grafana/loki/issues/3219
- https://github.com/grafana/loki/issues/1153
- https://github.com/grafana/loki/issues/1923
- https://blog.csdn.net/weixin_44997607/article/details/108419144
- https://github.com/grafana/loki/issues/1315
- https://www.nginx.com/blog/websocket-nginx/