Prometheus-Operation钉钉报警

本篇文章基于Prometheus-Operation,收集Redis、MySQL、RabbitMQ的监控信息并报警

Redis钉钉报警
数据收集

首先启动一个Redis的信息收集的应用程序

1
docker run -d --name redis_exporter -e REDIS_ADDR="redis://172.16.40.170:6379"  -e REDIS_PASSWORD="123456”-p 9121:9121 oliver006/redis_exporter

此时我们打开浏览器,访问ip:9121这个地址就可以获取到redis的监控信息了。

数据保存

这一步就是把上方应用程序收集的监控数据保存到prometheus中
将信息收集程序通过Endpoints、Service、ServiceMonitor与k8s中的prometheus绑定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
apiVersion: v1
kind: Endpoints
metadata:
name: redis-metrics
namespace: monitoring
labels:
k8s-app: redis-metrics
subsets:
- addresses:
- ip: 172.16.40.170
ports:
- name: redis-exporter
port: 9121
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: redis-metrics
namespace: monitoring
labels:
k8s-app: redis-metrics
spec:
type: ClusterIP
clusterIP: None
ports:
- name: redis-exporter
port: 9121
protocol: TCP
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: redis-metrics
namespace: monitoring
labels:
app: redis-metrics
k8s-app: redis-metrics
prometheus: kube-prometheus
release: kube-prometheus
spec:
selector:
matchLabels:
k8s-app: redis-metrics
namespaceSelector:
matchNames:
- monitoring
endpoints:
- port: redis-exporter
interval: 15s
数据展示

此时在grafann中添加一个模板763即可成功展示刚刚收集到的数据

640?wx_fmt=png

报警

首先你需要在一个钉钉群建一个报警集群人,集群人类型选择自定义,然后在这个机器人身上你会发现一个token,记住这个token哦

紧接着需要对prometheus做一下改造,来到安装包的 contrib/kube-prometheus/manifests/目录
在这个目录下新建一个alertmanager.yaml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
global:
resolve_timeout: 5m
route:
group_by: ['job']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: webhook
receivers:
- name: 'webhook'
webhook_configs:
- url: 'http://172.16.40.165:32505'
send_resolved: true

通过如下命令替换原有的配置

1
2
kubectl delete  secret alertmanager-main -n monitoring
kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml -n monitoring

因为钉钉与普罗米修斯的数据格式是不一样的,所以在这里还不能直接把普罗米修斯的数据发给钉钉。
上方有一个url地址,这个地址呢,需要我们自己写个小程序,把普罗米修斯发来的数据经过格式转换后发给钉钉,而钉钉的格式要求可见这个文档

1
https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
MySQL钉钉报警

使用如下方式收集MySQL监控信息

1
docker run -d --name mysql_exporter -e DATA_SOURCE_NAME="root:123456@(172.16.40.159:3306)/" -p 9104:9104  prom/mysqld-exporter

数据存储参见上方Redis的配置
数据展示使用Grafan模板736

640?wx_fmt=png

RabbitMQ钉钉报警

使用如下方式收集MySQL监控信息

1
docker run -d --name rabbitmq --env RABBIT_URL="http://172.16.40.169:15672" --env RABBIT_USER="monitoring" --env RABBIT_PASSWORD="monitoring"   -p 9419:9419 kbudde/rabbitmq-exporter

注意RabbitMQ的用户必须具有monitoring权限,否则会报如下错误

1
2
time="2019-08-07T01:17:08Z" level=error msg="Error while retrieving data from rabbitHost" error="<nil>" host="http://172.16.40.169:15672" statusCode=401
time="2019-08-07T01:17:08Z" level=warning msg="retrieving node failed" error="Error while retrieving data from rabbitHost"

数据存储参见上方Redis的配置
数据展示使用Grafan模板4279

640?wx_fmt=png

640?wx_fmt=jpeg


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值