美文网首页
prometheus 监控报警实践

prometheus 监控报警实践

作者: 癞痢头 | 来源:发表于2019-10-24 22:32 被阅读0次

    本文记录一次练手项目的过程,主要用来理解prometheus的监控报警流程及配置,使用docker-compose 快速上手,实现微信以及email报警。本文的主要目的,一是记录, 二时帮助新手来理解报警监控。 项目地址:https://github.com/kekek/prometheus-alert

    这个项目监控了docker-compose管理的服务程序 target-go 手动停止后,prometheus 怎样采集指标 , 上报错误,及报警处理。需要了解更多的指标监控, 请查看prometheus 文档

    本项目涉及到的知识点:
    
    1. docker-compose 编排管理docker服务
    
    2. prometheus 指标采集
    
    3. prometheus 报警管理 
    

    文件目录结构

    .
    ├── alertmanager/
    ├── docker-compose.yml
    ├── grafana/
    ├── mysql/
    ├── mysql-export/
    ├── prometheus/
    ├── readme.md
    └── target-go/
    
    
    • alertmanager/ : prometheus 的 报警管理器,负责报警信息归集,发送通知等
    • prometheus/ : docker 启动的 prometheus 服务, 收集监控信息,根据监控信息发送报警
    • target-go/ : go 启动的一个web服务,被监控对象,docker-compse中服务名称为 kingtrader, 在这个项目中,可以通过启动和停止 kingtrader,该项目来观察 prometheus的监控和报警结果
    • docker-compose.yml : 通过 docker-compose 管理管理上面的服务

    修改配置

    • 启动docker, clone 仓库到本地目录,假如是prom
      git clone https://github.com/kekek/prometheus-alert prom
    
    • 修改 alertmanager 报警通知相关的配置文件

    alertmanager/conf/alertmanager.yml

    ///////////////////////////// 发送邮件  /////////////////////////////
    
    // 修改发送配置
      smtp_from: '发送人'
      smtp_smarthost: '发送服务器'
      smtp_auth_username: '账号'
      smtp_auth_password: "密码"
    
    // 接收者
    
    receivers:
    - name: 'manager'
      email_configs:
      - send_resolved: false
        to: 接收人email
    
    ///////////////////////////// 发送微信消息  /////////////////////////////
      ## 修改 wechat 
      # wechat_api_url: <string> | default = "https://qyapi.weixin.qq.com/cgi-bin/" 
      # wechat_api_secret: <secret> 
      # wechat_api_corp_id: <string> 
    
    

    运行并观察

    • 进入 prom,启动服务
        cd prom
        docker-compose up 
    
    job="kingtrader"服务启动状态 1 指标报警触发状态 绿色
    • 停止 kingtrader 再次查看
        docker-compose stop kingtrader
    
    job="kingtrader"服务启动状态 0 指标报警触发状态 红色

    不出意外的话,过5分钟就能收到报警信息啦

    过程说明

    prometheus 会不停的的采集 job=kingtrader 的状态, 如果根据配置, 如果该值为0 , 则每个采集周期都是发送一条警告信息到 alertmanager去, 由altermanager来处理信息的归集,过滤, 等, 然后发送报警信息

    相关文章

      网友评论

          本文标题:prometheus 监控报警实践

          本文链接:https://www.haomeiwen.com/subject/avhjvctx.html