一、loki
Installation | Grafana Loki documentation
1、loki介绍
Loki是 Grafana Labs 团队发布的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。
项目受 Prometheus 启发,官方的介绍就是:Like Prometheus, but for logs.,类似于 Prometheus 的日志系统
二、docker 容器的log
1、安装loki的docker plugin
Docker driver | Grafana Loki documentation
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions #当有新版本时, 更新plugins docker plugin disable loki --force docker plugin upgrade loki grafana/loki-docker-driver:latest --grant-all-permissions docker plugin enable loki systemctl restart docker
全局收集配置
编辑daemon.json。
{ "log-driver": "loki", "log-opts": { "loki-url": "http://YOUR_IP:3100/loki/api/v1/push", "max-size": "50m", "max-file": "10", "loki-pipeline-stages": "- multiline:\n firstline: '^\[\d{2}:\d{2}:\d{2} \w{4}\]'\n" }, "registry-mirrors": ["https://registry.docker-cn.com"] }
记得把YOUR_IP换成loki所在主机的IP,一般都是本机的局域网地址,如果loki映射的端口换了记得这里也需要换。镜像仓库地址也可以换成自己云服务的。
其中max-size表示日志文件最大大小,max-file表示最多10个日志文件,都是对单个容器来说的, multiline是配置多行识别(默认最多128行),转为单行, firstline表示单条日志的首行正则表达式
我的是 [03:00:32 INFO] 开头这种格式,所以对应正则是^\[\d{2}:\d{2}:\d{2} \w{4}\] 按照你自己的日志开头编写对应正则替换即可
2、安装promtail代理,挂载容器日志路径
docker部署grafana loki日志系统_docker loki_freesharer的博客-CSDN博客
三、kubelet
是如何管理pod
内的容器日志的
1、结论
k8s
下容器日志默认目录为:
pod
会按容器的重启次数对应保留日志,具体保留个数应该与GC
策略有关
/var/log/pods/<pod namespace>_<pod name>_<pod uid>/<容器名称>/重启重启次数.log,并且是文件 /var/lib/docker/containers/<容器id>/<容器id>-json.log的链接
自定义路径类型(pvc、hostpath等)
kubectl get pod xxx -n namespace -o yaml | grep -i volumes -C 5 volumes: - hostPath: path: /mnt/nfs/xxx/backend/
标签:log,管理,plugin,Loki,日志,loki,docker From: https://www.cnblogs.com/dgp-zjz/p/17293670.html