15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用

15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用

@
目录

  • [15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用](#15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用)
  • [1. CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表 的概述](#1. CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表 的概述)
    • [1.1 CAdvisor 监控收集](#1.1 CAdvisor 监控收集)
    • [1.2 InfluxDB 存储数据](#1.2 InfluxDB 存储数据)
    • [1.3 Granfana 展示图表](#1.3 Granfana 展示图表)
  • [2. compose 容器编排,一套安装(CAdvisor+InfluxDB+Granfana)](#2. compose 容器编排,一套安装(CAdvisor+InfluxDB+Granfana))
  • [3. 最后:](#3. 最后:)

1. CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表 的概述

docker stats命令的结果:

通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了。

但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能

这时候我们就可以第三方的:容器监控 3 剑客来解决:CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表

1.1 CAdvisor 监控收集

1.2 InfluxDB 存储数据

1.3 Granfana 展示图表

三者的关系:

2. compose 容器编排,一套安装(CAdvisor+InfluxDB+Granfana)

  1. 新建一个安装目录:
sh 复制代码
[root@localhost /]# mkdir cig
  1. 新建3件套组合的 docker-compose.yml 文件,同时编写该容器编排文件:
yaml 复制代码
version: '3.1'
 
volumes:
  grafana_data: {}
 
services:
 influxdb:
  image: tutum/influxdb
  restart: always
  environment:
    - PRE_CREATE_DB=cadvisor
  ports:
    - "8083:8083"
    - "8086:8086"
  volumes:
    - ./data/influxdb:/data
 
 cadvisor:
  image: google/cadvisor
  links:
    - influxdb:influxsrv
  command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
  restart: always
  ports:
    - "8080:8080"
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
 
 grafana:
  user: "104"
  image: grafana/grafana
  user: "104"
  restart: always
  links:
    - influxdb:influxsrv
  ports:
    - "3000:3000"
  volumes:
    - grafana_data:/var/lib/grafana
  environment:
    - HTTP_USER=admin
    - HTTP_PASS=admin
    - INFLUXDB_HOST=influxsrv
    - INFLUXDB_PORT=8086
    - INFLUXDB_NAME=cadvisor
    - INFLUXDB_USER=root
    - INFLUXDB_PASS=root
sh 复制代码
[root@localhost cig]# vim docker-compose.yml
sh 复制代码
[root@localhost cig]# docker pull tutum/influxdb
[root@localhost cig]# docker pull grafana/grafana
[root@localhost cig]# docker pull google/cadvisor
  1. 启动docker-compose文件
sh 复制代码
docker-compose up
  1. 查看三个服务容器是否启动
sh 复制代码
[root@localhost ~]# docker ps
  1. 浏览cAdvisor收集服务,http://ip:8080/

http://192.168.76.149:8080/containers/

第一次访问慢,请稍等。cadvisor也有基础的图形展现功能,这里主要用它来作数据采集。

  1. 浏览influxdb存储服务,http://ip:8083/

http://192.168.76.149:8083/

  1. 浏览grafana展现服务,http://ip:3000

http://192.168.76.149:3000/login

ip+3000端口的方式访问,默认帐户密码(admin/admin)

  • 配置数据源


  • 选择influxdb数据源
  • 配置细节
sh 复制代码
http://Influxdb:8086


配置面板panel




  1. 到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成了

补充: Docker 是对在 一个 Docker 容器当中的,容器实例进行管理的(管理Docker 容器当中的容器实例的通信等等,仅仅只是在本地/本机的一个Docker 管理)。而想要对其他远程的Docker 容器,多个异地的 Docker 容器进行管理在是需要,我们学习 K8s 技术了。

3. 最后:

"在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。"