由于服务器环境上运行的Docker容器比较多,有时候一些容器的运行情况需要监控,特别是生产环境下的容器监控,这个时候我们安装Influxdb + Cadvisor + Grafana服务特别有用。
一、Influxdb 用于数据存储
InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。所以我们要使用influxdb将这些实时监控到的信息存放起来。
二、Cadvisor 收集容器监控数据
1、InfluxDB主要特点
无结构(无模式)
可以是任意数量的列
支持min, max, sum, count, mean, median 等一系列函数,方便统计
原生的HTTP支持,内置HTTP API
强大的类SQL语法
自带管理界面,方便使用
三、Grafana 图表监控数据展示
Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器
四、基于Docker的InfluxDB服务部署
root@QT-SERVER-11:~# docker run -d --name influxdb -p 28083:8083 -p 28086:8086 tutum/influxdb
2f3f6a030b9e62482d457a09f680723c0b1c60b4679fce11eacad13a20f50404
root@QT-SERVER-11:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f3f6a030b9e tutum/influxdb "/run.sh" 6 seconds ago Up 5 seconds 0.0.0.0:28083->8083/tcp, 0.0.0.0:28086->8086/tcp influxdb
22c24d2f797a rancher/scheduler:v0.8.3 "/.r/r /rancher-en..." 10 hours ago Up 10 hours r-scheduler-scheduler-1-ea5bb5d3
6c5e46db218a hyper/docker-registry-web "start.sh" 28 hours ago Up 26 hours 0.0.0.0:28080->8080/tcp registry-web
1bff5a4925b7 rancher/net:v0.13.11 "/rancher-entrypoi..." 5 weeks ago Up 10 days r-ipsec-ipsec-router-1-f13c299f
cfef2f6427f5 rancher/net:v0.13.11 "/rancher-entrypoi..." 5 weeks ago Up 10 days r-ipsec-ipsec-connectivity-check-1-5563eaa9
984158ce5bb4 rancher/net:holder "/.r/r /rancher-en..." 5 weeks ago Up 10 days r-ipsec-ipsec-1-15296286
120f9b0afe84 rancher/healthcheck:v0.3.6 "/.r/r /rancher-en..." 5 weeks ago Up 10 days r-healthcheck-healthcheck-1-edcd9fc2
c3e1841892fc rancher/dns:v0.17.3 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-metadata-dns-1-e1adba1e
0d4441507017 rancher/metadata:v0.10.2 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-metadata-1-1f9b0961
cf4ae5be7db9 rancher/net:v0.13.11 "/rancher-entrypoi..." 6 months ago Up 10 days r-ipsec-cni-driver-1-6fb955ae
0b509384c103 rancher/network-manager:v0.7.20 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-network-manager-1-f4da073c
8b1d69d5c4ae rancher/agent:v1.2.10 "/run.sh run" 6 months ago Up 10 days rancher-agent
d5016c17b6f4 rancher/server "/usr/bin/entry /u..." 6 months ago Up 10 days 3306/tcp, 0.0.0.0:23808->8080/tcp vigilant_mahavira
46da3197826a registry:2 "/entrypoint.sh /e..." 6 months ago Up 10 days 0.0.0.0:5000->5000/tcp registry
04dcacf517c3 showdoc "docker-php-entryp..." 12 months ago Up 4 days 0.0.0.0:4999->80/tcp showdoc
de58d8c1536a gitlab/gitlab-ce:latest "/assets/wrapper" 14 months ago Up 10 days (healthy) 0.0.0.0:443->443/tcp, 0.0.0.0:30->22/tcp, 0.0.0.0:23000->80/tcp quantengGitlab
85b9ce08f04c redis "docker-entrypoint..." 16 months ago Up 10 days 0.0.0.0:26379->6379/tcp gallant_blackwell
b17453f09079 redis "docker-entrypoint..." 16 months ago Up 10 days 6379/tcp gcmsredis
5009a3d44c46 mysql:5.6 "docker-entrypoint..." 16 months ago Up 10 days 0.0.0.0:22000->3306/tcp mysql-gcms-db
3b249c115ae1 mysql:5.6 "docker-entrypoint..." 17 months ago Up 10 days 0.0.0.0:21000->3306/tcp mysql-gamemarket-db
8e734f3993a5 lscreager/docker-json-server:latest "npm start" 19 months ago Up 10 days 0.0.0.0:20030->3000/tcp JsonServer
f96217c09cd1 mysql:5.6 "docker-entrypoint..." 19 months ago Up 10 days 0.0.0.0:20010->3306/tcp mysql-jira-db1
a04693d391e1 idoall/jira "/usr/bin/supervis..." 19 months ago Up 10 days 0.0.0.0:20015->22/tcp, 0.0.0.0:20012->8080/tcp, 0.0.0.0:20011->8085/tcp, 0.0.0.0:20014->8090/tcp, 0.0.0.0:20013->8443/tcp jira
解释:
- -d : 后台启动
- -p : 端口映射(8083为InfluxDB的后台管理端口,8086为InfluxDB的数据传输端口)
- --name : 容器别名
- 特别提示 8083端口需要映射为别的端口,否则无法访问后台管理平台,可能是我服务器环境的问题导致,后来映射了就没有任何问题了。
1. 管理平台
2. 可以在后台管理平台创建数据库,用户
3. 也可以用命令客户端创建数据库,用户
root@QT-SERVER-11:~# docker exec -it influxdb influx
Connected to http://localhost:8086 version 1.0.0
InfluxDB shell version: 1.0.0
> show databases
name: databases
---------------
name
_internal
cadvisor
>
解释:
- docker exec 进入容器
- -it 为容器分配终端
- influxdb 容器名
- influx 进入容器执行influx命令
五、部署Cadvisor服务
docker run -d \
> --name=cadvisor \
> -p 28082:8080 \
> -v /:/rootfs,ro \
> -v /var/run:/var/run \
> -v /sys:/sys,ro \
> -v /var/lib/docker/:/var/lib/docker,ro \
> google/cadvisor \
> -storage_driver=influxdb \
> -storage_driver_db=cadvisor \
> -storage_driver_host=192.168.0.11:28086
1f30e69371a0ed04c19fd1d942db1414d9085c37663cbe5a55853ec07c927140
root@QT-SERVER-11:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f30e69371a0 google/cadvisor "/usr/bin/cadvisor..." 10 seconds ago Up 9 seconds 0.0.0.0:28082->8080/tcp cadvisor
2f3f6a030b9e tutum/influxdb "/run.sh" 9 minutes ago Up 9 minutes 0.0.0.0:28083->8083/tcp, 0.0.0.0:28086->8086/tcp influxdb
22c24d2f797a rancher/scheduler:v0.8.3 "/.r/r /rancher-en..." 10 hours ago Up 10 hours r-scheduler-scheduler-1-ea5bb5d3
6c5e46db218a hyper/docker-registry-web "start.sh" 28 hours ago Up 27 hours 0.0.0.0:28080->8080/tcp registry-web
1bff5a4925b7 rancher/net:v0.13.11 "/rancher-entrypoi..." 5 weeks ago Up 10 days r-ipsec-ipsec-router-1-f13c299f
cfef2f6427f5 rancher/net:v0.13.11 "/rancher-entrypoi..." 5 weeks ago Up 10 days r-ipsec-ipsec-connectivity-check-1-5563eaa9
984158ce5bb4 rancher/net:holder "/.r/r /rancher-en..." 5 weeks ago Up 10 days r-ipsec-ipsec-1-15296286
120f9b0afe84 rancher/healthcheck:v0.3.6 "/.r/r /rancher-en..." 5 weeks ago Up 10 days r-healthcheck-healthcheck-1-edcd9fc2
c3e1841892fc rancher/dns:v0.17.3 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-metadata-dns-1-e1adba1e
0d4441507017 rancher/metadata:v0.10.2 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-metadata-1-1f9b0961
cf4ae5be7db9 rancher/net:v0.13.11 "/rancher-entrypoi..." 6 months ago Up 10 days r-ipsec-cni-driver-1-6fb955ae
0b509384c103 rancher/network-manager:v0.7.20 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-network-manager-1-f4da073c
8b1d69d5c4ae rancher/agent:v1.2.10 "/run.sh run" 6 months ago Up 10 days rancher-agent
d5016c17b6f4 rancher/server "/usr/bin/entry /u..." 6 months ago Up 10 days 3306/tcp, 0.0.0.0:23808->8080/tcp vigilant_mahavira
46da3197826a registry:2 "/entrypoint.sh /e..." 6 months ago Up 10 days 0.0.0.0:5000->5000/tcp registry
04dcacf517c3 showdoc "docker-php-entryp..." 12 months ago Up 4 days 0.0.0.0:4999->80/tcp showdoc
de58d8c1536a gitlab/gitlab-ce:latest "/assets/wrapper" 14 months ago Up 10 days (healthy) 0.0.0.0:443->443/tcp, 0.0.0.0:30->22/tcp, 0.0.0.0:23000->80/tcp quantengGitlab
85b9ce08f04c redis "docker-entrypoint..." 16 months ago Up 10 days 0.0.0.0:26379->6379/tcp gallant_blackwell
b17453f09079 redis "docker-entrypoint..." 16 months ago Up 10 days 6379/tcp gcmsredis
5009a3d44c46 mysql:5.6 "docker-entrypoint..." 16 months ago Up 10 days 0.0.0.0:22000->3306/tcp mysql-gcms-db
3b249c115ae1 mysql:5.6 "docker-entrypoint..." 17 months ago Up 10 days 0.0.0.0:21000->3306/tcp mysql-gamemarket-db
8e734f3993a5 lscreager/docker-json-server:latest "npm start" 19 months ago Up 10 days 0.0.0.0:20030->3000/tcp JsonServer
f96217c09cd1 mysql:5.6 "docker-entrypoint..." 19 months ago Up 10 days 0.0.0.0:20010->3306/tcp mysql-jira-db1
a04693d391e1 idoall/jira "/usr/bin/supervis..." 19 months ago Up 10 days 0.0.0.0:20015->22/tcp, 0.0.0.0:20012->8080/tcp, 0.0.0.0:20011->8085/tcp, 0.0.0.0:20014->8090/tcp, 0.0.0.0:20013->8443/tcp jira
解释:
- -storage_driver=influxdb 数据库驱动
- -storage_driver_db=cadvisor 数据库名
- -storage_driver_host=192.168.0.11:28086 数据库连接地址端口
- -v 容器目录和本地目录映射
六、部署Grafana服务
root@QT-SERVER-11:~# docker run -d --name grafana -p 25000:3000 grafana/grafana
e91c2de89fe62b62103d49e9fada6e66992694168b791326b76a32206347f348
root@QT-SERVER-11:~# clear
root@QT-SERVER-11:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e91c2de89fe6 grafana/grafana "/run.sh" 5 minutes ago Up 5 minutes 0.0.0.0:25000->3000/tcp grafana
1f30e69371a0 google/cadvisor "/usr/bin/cadvisor..." 12 minutes ago Up 12 minutes 0.0.0.0:28082->8080/tcp cadvisor
2f3f6a030b9e tutum/influxdb "/run.sh" 21 minutes ago Up 21 minutes 0.0.0.0:28083->8083/tcp, 0.0.0.0:28086->8086/tcp influxdb
22c24d2f797a rancher/scheduler:v0.8.3 "/.r/r /rancher-en..." 10 hours ago Up 10 hours r-scheduler-scheduler-1-ea5bb5d3
6c5e46db218a hyper/docker-registry-web "start.sh" 28 hours ago Up 27 hours 0.0.0.0:28080->8080/tcp registry-web
1bff5a4925b7 rancher/net:v0.13.11 "/rancher-entrypoi..." 5 weeks ago Up 10 days r-ipsec-ipsec-router-1-f13c299f
cfef2f6427f5 rancher/net:v0.13.11 "/rancher-entrypoi..." 5 weeks ago Up 10 days r-ipsec-ipsec-connectivity-check-1-5563eaa9
984158ce5bb4 rancher/net:holder "/.r/r /rancher-en..." 5 weeks ago Up 10 days r-ipsec-ipsec-1-15296286
120f9b0afe84 rancher/healthcheck:v0.3.6 "/.r/r /rancher-en..." 5 weeks ago Up 10 days r-healthcheck-healthcheck-1-edcd9fc2
c3e1841892fc rancher/dns:v0.17.3 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-metadata-dns-1-e1adba1e
0d4441507017 rancher/metadata:v0.10.2 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-metadata-1-1f9b0961
cf4ae5be7db9 rancher/net:v0.13.11 "/rancher-entrypoi..." 6 months ago Up 10 days r-ipsec-cni-driver-1-6fb955ae
0b509384c103 rancher/network-manager:v0.7.20 "/rancher-entrypoi..." 6 months ago Up 10 days r-network-services-network-manager-1-f4da073c
8b1d69d5c4ae rancher/agent:v1.2.10 "/run.sh run" 6 months ago Up 10 days rancher-agent
d5016c17b6f4 rancher/server "/usr/bin/entry /u..." 6 months ago Up 10 days 3306/tcp, 0.0.0.0:23808->8080/tcp vigilant_mahavira
46da3197826a registry:2 "/entrypoint.sh /e..." 6 months ago Up 10 days 0.0.0.0:5000->5000/tcp registry
04dcacf517c3 showdoc "docker-php-entryp..." 12 months ago Up 4 days 0.0.0.0:4999->80/tcp showdoc
de58d8c1536a gitlab/gitlab-ce:latest "/assets/wrapper" 14 months ago Up 10 days (healthy) 0.0.0.0:443->443/tcp, 0.0.0.0:30->22/tcp, 0.0.0.0:23000->80/tcp quantengGitlab
85b9ce08f04c redis "docker-entrypoint..." 16 months ago Up 10 days 0.0.0.0:26379->6379/tcp gallant_blackwell
b17453f09079 redis "docker-entrypoint..." 16 months ago Up 10 days 6379/tcp gcmsredis
5009a3d44c46 mysql:5.6 "docker-entrypoint..." 16 months ago Up 10 days 0.0.0.0:22000->3306/tcp mysql-gcms-db
3b249c115ae1 mysql:5.6 "docker-entrypoint..." 17 months ago Up 10 days 0.0.0.0:21000->3306/tcp mysql-gamemarket-db
8e734f3993a5 lscreager/docker-json-server:latest "npm start" 19 months ago Up 10 days 0.0.0.0:20030->3000/tcp JsonServer
f96217c09cd1 mysql:5.6 "docker-entrypoint..." 19 months ago Up 10 days 0.0.0.0:20010->3306/tcp mysql-jira-db1
a04693d391e1 idoall/jira "/usr/bin/supervis..." 19 months ago Up 10 days 0.0.0.0:20015->22/tcp, 0.0.0.0:20012->8080/tcp, 0.0.0.0:20011->8085/tcp, 0.0.0.0:20014->8090/tcp, 0.0.0.0:20013->8443/tcp jira
七、安装认证
- 查看Cadvasor数据是否收集
2、查看InfluxDB数据是否入库
3. 最后数据展示
用户登录: admin/admin
数据源配置:
图表创建:
最后保存