zoukankan      html  css  js  c++  java
  • [k8s]容器化node-expolore(9100)+cadvisor(8080)+prometheus(9090) metric搜集,grafana展示

    Prometheus 的核心,多维数据模型

    传统监控工具统计数据方式

    指标多

    - 需求1,统计app1-3,的(总)内存,则定义3个指标
    
    container.memory_usage_bytes.webapp*     - 获取值
        container.memory_usage_bytes.webapp1 - 定义指标,搜集app1
        container.memory_usage_bytes.webapp2 - 定义指标,搜集app2
        container.memory_usage_bytes.webapp3 - 定义指标,搜集app3
    例如: Graphite函数
    sum(container.memory_usage_bytes.webapp*)- 求app1-3总占内容
    
    
    - 需求2: 对比一下某一组容器在生产环境和测试环境中对内存使用的不同
    
    container.memory_usage_bytes.webapp1.test
    container.memory_usage_bytes.webapp1.prod
    

    Prometheus多维数据模型

    定义多列,通过PromQL来组合数据,聚合能力超强悍.

    比如对于前面 webapp1 的三条取样数据,转换成 Prometheus 多维数据将变成:

    后面三列 container_name、image、env 就是数据的三个维度。

    如果不同 env(prod、test、dev),不同 image(mycom/webapp:1.2、mycom/webapp:1.3)的容器,它们的内存使用数据中标注了这三个维度信息,那么将能满足很多业务需求,比如:
    
    1.计算 webapp2 的平均内存使用情况
    avg(container_memory_usage_bytes{container_name=“webapp2”})
    
    2.计算运行 mycom/webapp:1.3 镜像的所有容器内存使用总量:
    sum(container_memory_usage_bytes{image=“mycom/webapp:1.3”})
    
    3.统计不同运行环境中 webapp 容器内存使用总量:
    sum(container_memory_usage_bytes{container_name=~“webapp”}) by (env)
    

    容器指标数据收集利器 cAdvisor

    • 展示 Host 和容器两个层次的监控数据。

    • 展示历史变化数据

    • cAdvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。

    • cAdvisor 定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。

    - 运行cadvisor搜集容器指标
    docker run 
      -v=/:/rootfs:ro 
      -v=/var/run:/var/run:rw 
      -v=/sys:/sys:ro 
      -v=/dev/disk/:/dev/disk:ro 
      -v=/var/lib/docker/:/var/lib/docker:ro 
      --publish=8080:8080 
      --detach=true 
      --name=cadvisor 
      google/cadvisor
    
    

    访问: http://192.168.14.11:8080/metrics

    其本质上也是一个容器的metric api对接代码集.

    node-expolore(9100)+cadvisor(8080)+prometheus(9090) metric搜集,grafana展示

    - 运行node-expolore容器监听9100
    通过: http://192.168.14.11:9100/metrics可访问
    
    docker run -d -p 9100:9100 
      -v "/proc:/host/proc" 
      -v "/sys:/host/sys" 
      -v "/:/rootfs" 
      --net=host 
      prom/node-exporter 
      --path.procfs /host/proc 
      --path.sysfs /host/sys 
      --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
    
    
    - 运行cadvisor,监听8080
    通过: http://192.168.14.11:8080/metrics可访问
    
    docker run 
      -v=/:/rootfs:ro 
      -v=/var/run:/var/run:rw 
      -v=/sys:/sys:ro 
      -v=/var/lib/docker/:/var/lib/docker:ro 
      --publish=8080:8080 
      --detach=true 
      --name=cadvisor 
      --net=host 
      google/cadvisor:latest
     
    
    - 运行prometheus
    通过: http://192.168.14.11:9090/metrics可访问
    
    docker run -d -p 9090:9090 
      -v /root/prometheus.yml:/etc/prometheus/prometheus.yml 
      --name prometheus 
      --net=host 
      prom/prometheus
    
    
    - 运行grafana容器
    docker run -d -i -p 3000:3000 
      -e "GF_SERVER_ROOT_URL=http://192.168.14.11"  
      -e "GF_SECURITY_ADMIN_PASSWORD=admin"  
      --net=host 
      grafana/grafana
    
    添加数据源
    https://grafana.com/dashboards?dataSource=prometheus&search=docker 有很多docker的dashboard
    
    比如下载 Docker and system monitoring,得到一个 json 文件,然后点击 Grafana 左上角菜单 Dashboards -> Import。
    
    得到如下效果图:
    

    docker安装普罗

    - 直接启动
    docker run --name prometheus -d -p 9090:9090 quay.io/prometheus/prometheus
    
    
    - 需要预置配置文件
    docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml 
           -v /tmp/prometheus-data:/prometheus-data 
           prom/prometheus
    
    - 访问
    http://localhost:9090 /访问。
    
  • 相关阅读:
    玩聚的互联网热点新发现 精度上升到了一个新高度
    玩聚热点新发现中国的techmeme
    个性化阅读的过去和未来【中】
    【职经分享】走出公司进入产业建立圈子
    玩聚Alpha版本上线运行
    产品路径经营者当局者迷
    个性化阅读的过去和未来【上】
    Web2.0人性驱动的事业和仿生学
    获得硬盘上文件 文件夹
    电脑上QQ出现“该页面暂时无法显示”解决办法!
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8252623.html
Copyright © 2011-2022 走看看