Chinaunix首页 | 论坛 | 博客
  • 博客访问: 350551
  • 博文数量: 52
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 577
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-27 14:21
个人简介

知道自己该干嘛,知道自己能干嘛

文章分类

全部博文(52)

文章存档

2019年(1)

2018年(8)

2017年(2)

2016年(11)

2015年(3)

2014年(10)

2013年(17)

我的朋友

分类: 系统运维

2016-12-21 17:47:32


                             监控一直都是运维工作的重要环节,当我们打算使用容器,我们就必须想好成熟的配套方案,去完善它
                             今天我们来做一些kubernetes的node 资源,pod 资源,pod 生命周期监控,相关的监控,报警
                        
  1.                         介绍一下我们今天的prometheus stack三位伙计:  prometheus   alertmanager  grafana

  2.                  
  3.  
  4.                prometheus:   一个Go语言开发的开源的服务监控系统和时间序列数据库 ,后端使用 LevelDB key-value 存储
  5.                alertmanager: 负责处理 prometheus 发送来的报警条目,处理逻辑根据用户配置的 route 来实现报警
  6.                grafana: 负责时序数据的前端展示
  
                              部署 prometheus stack , 整个 stack 部署在一个单独的 docker daemon上,并未内置入k8s中


                             step 1  deploy alertmanager 

                             run -d -p 9093:9093 -v /data/alertmanager/:/etc/alertmanager/ --name alertmanager-debug prom/alertmanager -log.level debug -config.file=/etc/alertmanager/alertmanager-config.yml -storage.path==/alertmanager 

                             [root@VM_1_234_centos alertmanager]# cat /data/alertmanager/alertmanager-config.yml 
                              global:
                                        smtp_smarthost: 'smtp.exmail.qq.com:25'              //  定义全局配置,发送报警邮箱信息
                                        smtp_from: 'monitor@wexxx.com'
                                        smtp_auth_username: 'monitor@wexxx.com'
                                        smtp_auth_password: 'WY@xxx'


                              route:
                                       group_by: ['alertname', 'image', 'service']               //  根绝 label 进行报警分组,定义一个默认收件人
                                       group_wait: 30s
                                       group_interval: 5m
                                       repeat_interval: 3h
                                       receiver: wepiao-alert

                              receivers:                                                                           //   定义报警人方式, webhook 会调用我们用python封装的一个短信接口  
                                - name: 'wepiao-alert'
                                  email_configs:
                                  - to: 'cailu@wepiao.com'
                                  - to: 'zhanglong@wepiao.com'
                                webhook_configs:
                                   - url: ''
                                      send_resolved: false


                            inhibit_rules:                                                                    //  开启压抑模式,当获取指标的 exporter dwon 后,上面的容器就不在报警了
                               - source_match:                                                                 这个 stack 也监控了一些 docker daemon 上面的容器,获取数据指标通过
                                    alertname: 'exporter_down'                                          daemon 上启动的 cadvisor
                                target_match:
                                   alertname: 'ContainersDown'

  1.               step 2 deploy  prometheus
                            docker run -d -p 9090:9090 -v /data/prometheus/:/etc/prometheus -v /data/prometheus_data/:/prmetheus --name prometheus-meup-debug prom/prometheus -log.level "debug" -storage.local.memory-chunks=12074368 -storage.local.chunk-encoding-version=2 -config.file=/etc/prometheus/prometheus.yml -storage.local.path=/prometheus -alertmanager.url=   //  加大存储chunk的内存池大小,启动时关联 alertmanager
  1.                    
  2.               // prometheus数据卷挂在到本机中, 加载 alert.rules  prometheus.yml相关配置

  3.               [root@VM_1_234_centos prometheus]# cat prometheus.yml 
                  global:
                      scrape_interval:     50s
                      evaluation_interval: 50s
     
                  rule_files:
                      - '/etc/prometheus/alert.rules'

                  scrape_configs:
                    - job_name: 'cadvisor'
                      static_configs:
                        - targets: ['10.3.1.22:8080','10.3.1.229:8080','10.3.1.124:8080']
                             labels:
                                service: 'm-site'              // swarm集群容器指标的获取地址
     
                    - job_name: 'node-exporter'
                      static_configs:
                        - targets: ['10.3.1.22:9100','10.3.1.229:9100','10.3.1.124:9100']
                             labels:
                               group: 'product'               // swarm集群node节点指标数据的获取地址

                    - job_name: 'kubernetes-node'
                      scheme: https      // 默认scheme http,声明为 https
                      tls_config:
                        insecure_skip_verify: true  //  跳过不安全的认证提示
                      kubernetes_sd_configs:
                      - api_servers: 
                        - ''
                        role: node
                      relabel_configs:     //  复写meta label
                        - action: labelmap
                          regex: __meta_kubernetes_node_label_(.+)  // 复写后指标为 kubernetes_io_hostname="xxxx", 用于 grafana 作图

                      

                      setp 3 depoly grafana
                      docker run -d -p 3000:3000 -v /data/grafana_data/:/var/lib/grafana --name grafana grafana/grafana
               
                      add data sources
                     
     
                      ok, 数据源也有了,就到了你自己 DIY的时刻到了

                      以下展示几张具体效果;
                     
                      swarm 集群, 可以选择生命周期未结束容器,按照image名称分类
                      
     
                      
                      

                      kubernetes

                      

                      

                      kubernetes node

                      

                      报警邮件示例
     
                      

                           好了,今天就简单介绍一些 prometheus stack 简单应用,有兴趣的同学自己在深入吧.



                                                                                                            Cail_wepiao

                      参考链接:

                               
                               
                               
                       
                                      
阅读(2890) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~