首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Prometheus-Operation钉钉报警

Prometheus-Operation钉钉报警

作者头像
Java学习录
发布2019-08-15 16:36:51
1.5K0
发布2019-08-15 16:36:51
举报
文章被收录于专栏:Java学习录Java学习录

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

Redis钉钉报警
数据收集

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

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绑定

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即可成功展示刚刚收集到的数据

报警

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

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

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

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

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

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

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

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

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

RabbitMQ钉钉报警

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

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权限,否则会报如下错误

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis钉钉报警
    • 数据收集
      • 数据保存
        • 数据展示
          • 报警
          • MySQL钉钉报警
          • RabbitMQ钉钉报警
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档