zoukankan      html  css  js  c++  java
  • docker 监控数据整合

    安装docker

    #开启内核转发
    echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
    sysctl -p
    wget -O /etc/yum.repos.d/ali_docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    # centos7.x :
    # 安装依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    # 添加Docker软件包源
    yum-config-manager 
    --add-repo 
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 安装Docker CE
    yum install -y docker-ce
    
    
    ## 配置docker
    
    rm -f /etc/docker/*
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://ajvcw8qn.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=systemd"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    systemctl enable docker.service
    

    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=8088: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:8088/
    

    配置cadvisor:

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

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

    配置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
      
      查看: cat /etc/prometheus/prometheus.yml
      
          static_configs:
        - targets: ['localhost:9090']
      - job_name: 'docker'
        static_configs:
        - targets: ['192.168.3.100:8081']
        
      修改为:
        - targets: ['localhost:9090']   #在这一行下方添加,‘job不与targets同级’ :
      - job_name: 'docker'
        static_configs:
        - targets: ['192.168.3.100:8088','192.168.3.85:8088']  
        
      #targets填写:cadvisor 的IP和端口。targets:
      修改完成,重启 prometheus容器 即可
      
      
    3. 重启prometheus容器:
    docker restart prometheus
    

    页面添加:

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

    填写被监控服务器的IP:

    页面检查:

    通过访问:
    http://192.168.3.85:8088/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]) * 100
    rate(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 保存,每个监控选项都需要修添加
    

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    修改 Mac 默认 PHP 运行环境,给 MAMP 配置全局 Composer
    修改 Mac 默认 PHP 运行环境,给 MAMP 配置全局 Composer
    Intellij Idea/Webstorm/Phpstorm 的高效快捷键
    Intellij Idea/Webstorm/Phpstorm 的高效快捷键
    管理工具推荐
    mongo find
    redis 工具
    Redis Quick Start [熟练版]
    Redis cluster
    redis cluster 使用中出现的问题
  • 原文地址:https://www.cnblogs.com/superlinux/p/15137481.html
Copyright © 2011-2022 走看看