核心组件 3 个 chart:
- promtail 这是一个 agent 代理客户端,用于收集日志,将日志传送给 loki
- loki 核心组件,主要功能是日志数据的写入与分析。包含 gateway、read、write 3个组件。
- kube-prometheus-stack 这个技术栈包含 prometheus,grafana,prometheus operator 等组件。prometheus 主要用于数据监控与告警。grafana 图形界面展示。Prometheus Operator 用于在 k8s 中能够帮助用户自动化的创建以及管理 Prometheus Server 以及其相应的配置(监听一些 crd 资源的配置)。
部署
新增配置文件 /var/lib/rancher/k3s/server/manifests/loki.yaml
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: kube-prometheus-stack
namespace: kube-system
spec:
repo: https://prometheus-community.github.io/helm-charts
chart: kube-prometheus-stack
targetNamespace: monitoring
valuesContent: |-
prometheus:
enabled: true
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: loki
namespace: kube-system
spec:
repo: https://grafana.github.io/helm-charts
chart: loki
targetNamespace: monitoring
valuesContent: |-
loki:
auth_enabled: false
backend:
replicas: 2
read:
replicas: 2
write:
replicas: 2
minio:
enabled: true
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: promtail
namespace: kube-system
spec:
repo: https://grafana.github.io/helm-charts
chart: promtail
targetNamespace: monitoring
valuesContent: |-
daemonset:
enabled: true
执行部署
kubectl apply -f loki.yaml
查询日志数据
配置 grafana 访问路由
新增配置文件 grafana-traefik.yaml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: grafana-web
namespace: monitoring
spec:
entryPoints:
- web
routes:
- kind: Rule
match: Host(`grafana.example.com`)
services:
- name: kube-prometheus-stack-grafana
namespace: monitoring
port: 80
执行部署命令后,即可访问 grafana.example.com
kubectl apply -f grafana-traefik.yaml
默认的账号密码:admin/prom-operator 查看
添加 loki 数据源
打开 Data sources 页面,添加 loki 数据源。其中 url 为 http://loki-gateway
查询日志
打开 explore 页面。选择 Label Broswer
选择标签 namespace,选择列表出现的任一值,最后点击下方的 Show logs 进行查询
2233
标签:name,k3s,配置,grafana,prometheus,loki,helm,kube From: https://www.cnblogs.com/lemos/p/17525843.html