Helm安装Grafana
安装Grafana之前已经假定你配置好了Prometheus。
# 添加helm仓库
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
# 下载grafana
helm pull grafana/grafana
# 解压并修改其中的values
tar -zxf grafana-6.38.6.tgz # 2022年10月最新chart版本是这个
cp grafana/values.yaml grafana/values.bak
vim grafana/values.yaml # 按照以下注释改
-------------------------------------------------------------------------
persistence:
type: pvc
enabled: true # 把false改为true(如果不改,容器重启就什么都没了)
# storageClassName: default
accessModes:
- ReadWriteOnce
size: 10Gi # 空间大小自定义
grafana.ini:
smtp: # 增加smtp配置
enabled: true
from_address: ${你的163邮箱}
host: smtp.163.com:25
smtp: # 修改smtp验证配置
existingSecret: "alertemail" # secret的名称,后续创建时指定此名称
userKey: "user"
passwordKey: "password" # 这两个key尽量不改,如果改了,后续创建secret的时候也要改
-------------------------------------------------------------------------
# 创建secret
user="${你的163邮箱}"
password="${你的163邮箱授权码}"
kubectl create secret generic alertemail --from-literal=user=$user --from-literal=password=$password
# 安装grafana
helm install grafana ./grafana -f ./grafana/values.yaml
# 第一个grafana指定release名称
# ./grafana指定chart位置是本地
# -f指定安装时使用的values文件
# 查看状态
helm list
kubectl get pod # grafana Pod状态为Running即为正常
登录Grafana页面
# 获取页面管理员密码
helm get notes grafana
kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
# 打开端口转发
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace default port-forward $POD_NAME 3000
当端口转发打开后,就可以登录页面了:
添加数据源
# 获取prometheus URL
helm get notes prometheus # prometheus是release名
# prometheus-server.default.svc.cluster.local
填好之后,拉到网页最下面点击save&test
,测试不通过的话一定是你写错了。
配置告警
添加告警规则
配置查询与条件
# 内存利用率的PromQL
(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100
进入创建告警规则的页面,粘贴以上PromQL
配置评估行为
配置告警细节
配置自定义标签
配置接收者
看到那个Test没有,可以点的,测试能否正常接收邮件。
配置通知策略
接收告警
当告警规则被触发之后,邮箱内应该就有邮件了