将 InfluxDB cAdvisor Grafana 集成在一起构成一个监控平台。
InfluxDB 是数据中心,cAdvisor 采集监控数据存放到 InfluxDB,Grafana 是监控界面,从 InfluxDB 获取数据。
我们先启动 InfluxDB,然后启动 cAdvisor,指定 InfluxDB 的连接信息,最后启动 Grafana,在其中添加数据源,查看监控数据。
一、启动 InfluxDB
$ docker run \
-d \
-p 8086:8086 \
-v ~/influxdb:/var/lib/influxdb \
--name influxdb \
influxdb
进入容器内的客户端命令行,创建一个数据库:
$ docker exec -it influxdb influx
> create database cadvisor
创建一个root用户,密码也为root,该用户拥有所有权限:
> create user "root" with password 'root' with all privileges
二、启动 cAdvisor
$ docker run \
-d \
-v /:/rootfs \
-v /var/run:/var/run \
-v /sys:/sys \
-v /var/lib/docker:/var/lib/docker \
--link=influxdb:influxdb \
--name=cadvisor \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_host=influxdb:8086 \
-storage_driver_db=cadvisor \
-storage_driver_user=root \
-storage_driver_password=root
关联了容器 influxdb,并设置了存储引擎为 influxdb,和连接信息。
三、启动 Grafana
$ docker run \
-d \
-p 3000:3000 \
-v ~/grafana:/var/lib/grafana \
--link=influxdb:influxdb \
--name=grafana \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
grafana/grafana
我遇到问题,grafana 启动失败,查看日志:
$ docker logs grafana
# 显示
...
mkdir: cannot create directory '/var/lib/grafana/plugins': Permission denied
...
挂载的目录没有权限,设置权限:
$ chmod 777 -R ~/grafana
重新启动 grafana:
$ docker restart grafana
启动成功。
访问 localhost:3000,输入用户名密码 admin/secret 登录。
点击 ”Add data source“ 添加数据源,选择 InfluxDB。
URL 填写:http://influxdb:8086
,Database 填写 cadvisor
,User 填写 root
,Password 填写 root
。
点击 Save & Test,配置正确的话会显示成功信息:
回到主界面,新建 dashboard。
选择 Graph,这时会显示一个空的面板:
点击 "Panel Title",选择下拉列表中的 ”Edit“,显示界面:
点击 ”select measurement“,显示所有度量:
可以选择某个关心的度量,还可以添加多个,例如查询A选择度量 memory_usage,查询B选择 cpu_usage_total,上面的 Panel 中就会显示对应的统计图表:
Panel 中点击度量名称进行切换。