CAdvisor+InfluxDB+Granfana para monitoreo de contenedores Docker
1. Comandos nativos
Pregunta :
A través del comando docker stats, puede ver fácilmente la CPU, la memoria, el tráfico de red y otros datos de todos los contenedores en el host actual, lo que generalmente es suficiente para las pequeñas empresas. . . .
Sin embargo, los resultados estadísticos de Docker Statistics solo pueden ser para todos los contenedores del host actual. Los datos son en tiempo real. No hay lugar para almacenarlos y no hay ninguna función como la advertencia de sobrelínea del indicador de salud.
2. ¿Qué es?
Container Monitoring 3 Swordsman: recopilación de monitoreo de CAdvisor + datos de almacenamiento de InfluxDB + gráfico de visualización de Granfana
3. componer cig de orquestación de contenedores
3.1 Crear un nuevo directorio
mkdir /mydocker/cig
cd /mydocker/cig
3.2 Cree una nueva combinación de conjunto de 3 piezas (docker-compose.ymlCAdvisor+InfluxDB+Granfana) docker-compose.yml
version: '3.1'
volumes:
grafana_data: {}
services:
influxdb:
image: tutum/influxdb:0.9
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
explicar:
version: '3.1' #必须是3.0以上才能运行docker-compose
volumes:
grafana_data: {} #实现了grafana数据的挂载
services: #表示我们要启动的服务,即要docker run的内容,多个实例服务
influxdb:
image: tutum/influxdb:0.9
restart: always
environment:
-PRE_CREATE_DB=cadvisor #预先创建一个数据库,创建一个数据库一样
ports:
-"8083:8083" #对外是8083
-"8086:8086" #内部即8086
volumes:
- ./data/influxdb:/data #B 从A-B即influxdb服务,拉取的镜像,安装的环境,暴露的端口,下面的cadvisor,grafana都是一样的
cadvisor:
image: google/cadvisor
links:
- influxdb:influxsrv
command:
-storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086 #这就是相当于mysql选择的那个驱动
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 #因为有restart,所以如影随形,随着docker启动,就启动
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
#千言万语一句话,全部由docker-compose一键部署
3.3 Verificar configuración
docker compose config -q# 检查配置,有问题才有输出
3.4 Inicie el archivo docker-compose
docker compose up -d 后台启动
3.5 Compruebe si los tres contenedores de servicios están iniciados
docker ps
3.6 Pruebas
3.6.1 Explorar el servicio de recopilación de cAdvisor, http://192.168.3.15:8080/
Cadvisor también tiene funciones básicas de visualización de gráficos y se utiliza principalmente aquí para la recopilación de datos (recopilación de datos en tiempo real).
3.6.2 Explorar el servicio de almacenamiento influxdb, http://192.168.3.15:8083/
3.6.3 Explorar el servicio de visualización de grafana, http://192.168.3.15:3000/
Contraseña de cuenta predeterminada (admin/admin)
Pasos de configuración:
1. Configurar la fuente de datos
2. Seleccione la fuente de datos influxdb
2.Configurar el panel del panel