zoukankan      html  css  js  c++  java
  • grafan+cadvisor+prometheus监控docker

    grafan+cadvisor+prometheus监控docker:

      运行cadvisor:
      
      docker run 
      --volume=/:/rootfs:ro 
      --volume=/var/run:/var/run:ro 
      --volume=/sys:/sys:ro 
      --volume=/var/lib/docker/:/var/lib/docker:ro 
      --volume=/dev/disk/:/dev/disk:ro 
      --publish=8081:8080 
      --detach=true 
      --name=cadvisor  
      google/cadvisor:latest
      
     
     运行grafana:
      
      docker run -d 
      --name=grafana 
      -p 3000:3000 
      grafana/grafana
    
      
      
      运行prometheus:
      
      docker run -d 
      --name=prometheus 
      -p 9090:9090 
      prom/prometheus
    
    
    
    # 访问端口:
    http://192.168.3.100:3000/
    http://192.168.3.100:9090/
    http://192.168.3.100:8081/
    

    配置cadvisor:

    访问入口: http://[ip]:8081

    能看到数据信息就说明配置没问题

    配置prometheus:

    #进入prometheus
    docker exec -it prometheus sh
    
    
    #修改配置
    vim /etc/prometheus/prometheus.yml 
    
      static_configs:                                                                            
        - targets: ['localhost:9090']                                                                
      - job_name: 'docker'                                                                           
        static_configs:                                                                              
        - targets: ['192.168.3.100:8081']
        
    #修改完毕后重启  prometheus 容器:
    docker restart prometheus
    

    进入web页面:

    点击 http://192.168.3.100:8081/metrics能看到数据,说明配置没问题

    能看到监控数据则没有问题

    配置启动grafana:

    docker run -d 
    > --name=grafana 
    > -p 3000:3000 
    grafana/grafana
    
    
    # 默认账号密码都是 admin
    

    添加数据源:

    选择 prometheus 为数据源:

    选择这个源:

    添加数据展示 仪表盘:


    container_memory_usage_bytes{image!="",name="cadvisor"}
    container_memory_max_usage_bytes{image!="",name="cadvisor"}
    
    填写完毕后 保存配置
    
    #官方有很多仪表盘提供使用
    #其中较为适合监控docker容器的仪表盘号: 193
    

    效果:

    问题:

    grafana图表无数据问题原因:
    
    1. 如果grafna没有数据,可能时时间不对,需要每台服务器时间保持一致
    2. promql存在问题,如:版本不兼容
    3. prometheus里无数据,需要排查prometheus
    

    多服务器监控docker

    默认只能监控当前主机,如果需要监控多个主机,就需要做以下操作步骤:
    
    1. 被监控主机安装 cadvisor 
      docker run 
      --volume=/:/rootfs:ro 
      --volume=/var/run:/var/run:ro 
      --volume=/sys:/sys:ro 
      --volume=/var/lib/docker/:/var/lib/docker:ro 
      --volume=/dev/disk/:/dev/disk:ro 
      --publish=8081:8080 
      --detach=true 
      --name=cadvisor  
      google/cadvisor:latest
    
    
    
    2. 在其他服务器运行prometheus:
    
      docker run -d 
      --name=prometheus 
      -p 9090:9090 
      prom/prometheus
    
    
    3. 在prometheus容器中新增被监控服务器的IP[所有IP]
    
      docker exec -it prometheus sh
      
      查看:
          static_configs:
        - targets: ['localhost:9090']
      - job_name: 'docker'
        static_configs:
        - targets: ['192.168.3.100:8081']
        
      修改为:
        - targets: ['localhost:9090']  #在这一行下方添加:
      - job_name: 'docker'
        static_configs:
        - targets: ['192.168.3.100:8081','192.168.3.85:8081']  
        
      #targets填写:cadvisor 的IP和端口。targets:
      修改完成,重启 prometheus容器 即可
      
      
    3. 重启prometheus容器:
    docker restart prometheus
    

    页面添加:

    进入prometheus 设置页面 点击 :  ’Add data source‘ 添加数据源
    

    填写被监控服务器的IP:

    页面检查:

    通过访问:
    http://192.168.3.85:8081/containers/
    http://192.168.3.100:8081/containers/
    查看是否安装 cadvisor

    导入监控:

    label_values(up,instance)
    

    多个主机配置配置这个是一样的

    做了这一步后去编辑图表,让他显示其他节点信息,节点多的情况下每个节点都需要增加 query0配置 label_values(up,instance)

    # 在编辑页面修改参数为:rate(container_cpu_user_seconds_total{image!="",instance="$Node"}[5m]) * 100rate(container_cpu_user_seconds_total{image!=""}[5m]) * 100#保存即可这个$Node 就是 Variables 这个Name: query0  也可以配置为 $query0  也可以配置为 $Node 那下面图这里就要改成 $Node
    

    添加复选框

    找到:Home / Settings选择  Variables 右边选项卡出现后在 Query 后面 添加: label_values(up,instance)修改完成后 保存或者 update 即可
    

    #因为这里 看到 variable中定义的 Name: query0 那么他就是获取信息的关键在每个图形页面添加如下设置:,instance="$query0"添加完成后点击 save 保存
    

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    【iOS】7.4 定位服务->2.1.1 定位
    【iOS】7.4 定位服务->1.0 简介
    1.2.1 OC概述
    5.1 网络基础
    4.4 多线程进阶篇<下>(NSOperation)
    4.3 多线程进阶篇<中>(GCD)
    4.1/4.2 多线程进阶篇<上>(Pthread & NSThread)
    4.0 多线程基础篇
    2.1 -1.0 Xcode(发布时间、使用、快捷键、插件相关)
    一款面试复习应用源码
  • 原文地址:https://www.cnblogs.com/superlinux/p/15010893.html
Copyright © 2011-2022 走看看