文章目录
- 报警规则Rules
- Alerts
- grafana
- 设置ingress-grafana
- 找到用户/密码
- grafana 图表介绍
- 报警配置
- 添加邮件
续 监控落地 - 指标完善、Grafana看板和邮件报警(中)
报警规则Rules
Rules报警规则expr 是promQL的条件,满足promQL条件出发报警。
rules如何定义?
还是来到prometheus-operator/values.yaml
➜ ~ vi ./prometheus-operator/values.yaml
有一些默认开启的报警规则:
这些默认的报警规则对应:prometheus-operator/template/prometheus/rules文件夹下所有的规则模版
所有的规则都是围绕prometheusRule
自定义资源,默认根据当前集群环境生存所有的默认规则
自定义的规则不会被helm 删除,需要手动删除。
Alerts
Alerts是目前报警的情况,
绿色的是定义的rules规则,没有触发的。
红色的就是已经报警的。
黄色就是报警处于Pending等待状态,当事情发生的时候不一定马上触发,而是有一个等待,当达到一定条件才会变成红色。
grafana
设置ingress-grafana
1.首先查看下grafana的service,端口是80
➜ ~ kubectl get svc -n monitoring
- 准备一个ingress
ingress-grafana.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: prom-grafana
namespace: monitoring
spec:
rules:
- host: prom-grafana.mooc.com
http:
paths:
- backend:
serviceName: imooc-prom-grafana # 对应grafana的service名字
servicePort: 80
path: /
创建一下
➜ ~ kubectl apply -f ingress-grafana.yaml
- 配置host
192.168.181.103 prom-grafana.mooc.com
- 访问
找到用户/密码
但是用户/密码是什么,来到
/prometheus-operator/charts/grafana/Charts.yaml
➜ ~ vim ./prometheus-operator/charts/grafana/Charts.yaml
找到adminUser ,他用的 是一个Secret
查找一下grafana的Secret
➜ ~ kubectl get Secret -n monitoring
查看用户/密码 ,都是base64的
➜ ~ kubectl get Secret -n monitoring imooc-prom-grafana -o yaml
解密一下 用户名admin 密码是prom-operator
登录成功
grafana 图表介绍
这个位置就是各种各样的面板
随便看一个监控指标etcd
这里就不一一查看了,本质上都是根据PromQL 做的数据查询
比如我们可以手动PromQL进行查询,直接在这里改容易出错,建议拿到PromQL去prometheus界面去调试,没有问题可以放到这里面。
同时也是可以自己创建图表
报警配置
具体可以查阅alertmanager相关的文档,alertmanager 的报警方式很多,包括常见的可以发送到邮箱、短信、微信、钉钉 、企业微信…也可以发送到http接口实现对报警的自定义处理。这里通过邮箱我们配置一下。
添加邮件
找到 ./prometheus-operator/values.yaml
的alertmanager:
位置下面有个 config: global:
借鉴
........
config:
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.163.com:25' # smtp
smtp_from: 'imoocd@163.com' # 发件人
smtp_auth_username: 'imoocd@163.com' # 用户名
smtp_auth_password: 'aA111111' #密码
route:
group_by: ['job']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: 'email-alerts' # 接收消息方式
routes:
- match:
alertname: .* # 改成全部的报警都发给这个receiver
receiver: 'email-alerts' # 指定receiver
receivers:
- name: 'email-alerts'
email_configs:
- to: 'liuyi16@163.com' #接收人
send_resolved: true # 当问题解决也会发送一个邮件 默认5分钟没有达到报警的条件就是问题解决了
........
通过history | grep "helm upgrade"|grep imooc-prom
查看修改后要升级的,然后升级
➜ ~ helm upgrad imooc-prom ./prometheus-operator/ -f ./prometheus-operator/values.yaml
然后测试一下
我们故意把etcd停掉
➜ ~ service etcd stop
然后打开邮箱📮,报警邮件很快就发送过来了
Etcd报警邮件,当然这个邮件信息样式也是可以自己定义,这里不讲,没什么复杂的。
关于Prometheus 监控我们就讲这么多,具体的细节还是需要自己多探索。