loki原创
# 部署与配置:
官方最佳示例: https://grafana.com/docs/loki/latest/best-practices/
已部署grafana
部署部署Loki和Promtail helm chart部署
配置Loki和Promtai:
存储位置:pvc(本地或ceph) 配置grafana添加Loki数据源:journal、event-exporter
避免使用动态标签去匹配具有较大范围的可能值,比如ip值。这样会导致Loki建立一个巨大的索引,性能非常差。 promtail 需要运行在所有运行应用容器的节点, 所以会是 DaemonSet, loki 作为核心服务, 带有持久化存储而且支持横向扩展, 所以应该是 StatefulSet, Grafana 是比较基本的独立应用, 可以复用已部署的. https://grafana.com/docs/loki/latest/installation/microservices-helm/????????? https://grafana.github.io/loki/charts/
$ 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
2
3
4
5
6
7
注:
可以修改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 参考:https://grafana.com/docs/loki/latest/installation/microservices-helm/ Run Promtail with systemd-journal support
# fluetnd+loki
- Loki为fluetnd提供了一个输出插件fluent-plugin-grafana-loki,它可以将采集到的日志传送到Loki实例当中。
gem install fluent-plugin-grafana-loki