官方最佳示例:
Best practices | Grafana Loki documentation
$ helm repo add loki https://grafana.github.io/loki/charts $ helm repo update $ helm fetch loki/loki-stack --untar --untardir . $ cd loki-stack # 修改配置... $ helm install -n loki --namespace loki -f values.yaml ../loki-stack $ kubectl get svc -n loki
注:
-
可以修改values.yaml文件,指定是否开启Grafana、Prometheus等服务,默认不开启的:
-
promtail服务在构建时会自动挂载:cat charts/promtail/values.yaml
宿主机docker主目录下的containers目录,一般默认都为/var/lib/docker/containers(改为/app/docker/containers)
pod的日志目录,一般默认为/var/log/pods(未改)
如果是修改过docker默认的存储路径的,需要将mount的路径进行修改,promtail找不到对应的容器日志
具体docker 存储路径,可以使用docker info 命令查询 -
如果是安装Loki时开启了Grafana,那系统会自动配置好Data sources。但是,如果是手动搭建的Grafana,需要手动添加Data Sources时,一定注意:数据源名称中的Loki,L一定要是大写!!!
-
grafana升级
wget https://dl.grafana.com/oss/release/grafana-9.1.2-1.x86_64.rpm
yum localinstall grafana-9.1.2-1.x86_64.rpm
service grafana-server restart -
loki svc 要暴露nodeport,否则grafana连接不到
-
添加宿主机journal日志:/run/log/journal
参考:Microservices deployment with Helm | Grafana Loki documentation
Run Promtail with systemd-journal support
fluetnd+loki
- Loki为fluetnd提供了一个输出插件fluent-plugin-grafana-loki,它可以将采集到的日志传送到Loki实例当中。
gem install fluent-plugin-grafana-loki