InfluxDB是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,需要提供实时数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。
1.InfluxDB的安装
下载镜像
docker pull tutum/influxdb
创建容器
docker run -di \
-p 8083:8083 \
-p 8086:8086 \
--expose 8099 \
--expose 8099 \
--name influxsrv \
tutum/influxdb
上面,8083端口是web访问端口,8086是数据写入端口。
安装好,浏览器访问192.xxx.xx.xxx:8083
2.使用influxDB
通过query templates下拉选项可以快速使用命令语句。
创建数据库
CREATE DATABASE "cadvisor"
查看所有数据库
SHOW DATABASES
创建用户
CREATE USER "zhangsan" WITH PASSWORD 'password' WITH ALL PRIVILEGES
查看用户
SHOW USERS
用户授权
grant all privileges on cadvisor to zhangsan
grant write on cadvisor to zhangsan
grant READ on cadvisor to zhangsan
查看采集的数据
切换到cadvisor数据库,使用命令采集数据
SHOW MEASUREMENTS
cAdvisor是google开源的用于监控基础设施应用的工具,功能强大,不需要任何配置就可以通过运行在docker主机上的容器来监控docker容器,也可以监控docker主机。
下载镜像
docker pull google/cadvisor
创建容器
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxsrv:8086
或者
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
cadvisor容器启动闪退的解决方法:
mount -o remount,rw '/sys/fs/cgroup'
ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu
浏览器访问192.xxx.xx.xxx:8080/containers/
在此查看influxDB,可以看到cAdvisor采集的数据。
Grafana是一个可视化面板,拥有图表和布局展示,功能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、influxDB\Prometheus和OpenTSDB作为数据源。
下载镜像
docker pull grafana/grafana
创建容器
docker run -d -p 3001:3000 -e INFLUXDB_HOST=influxsrv -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root --link influxsrv:influxsrv --name grafana grafana/grafana
访问http://192.xxx.xx.xxx:3001用户名和密码都是admin
添加数据源
点击设置,data source,添加数据源,设置name为influxdb,type选择InfluxDB,url改为192.xxx.xx.xx:8086,
数据库设置为cadvisor,设置用户名和密码。
添加仪表盘
选择dashboards,点击manager,点击添加按钮,点击graph图标。
新增图表后,点击panel title右边的下拉选择edit。General,修改名称;metrics,选择data source为influxdb,选择表,比如memory_usage,where条件选择容器;Axes,修改x轴y轴。设置完毕,点击保存,设置名称。
预警通知设置
选择菜单,alerting,选择notification channels;点击add channel按钮;设置名称,选择类型为webhook,url使用rancher中容器接收器的hook的地址;http方式为POST。
在图表中使用预警,进入图表面板,选择edit,点击预警图表,添加预警。设置IS ABOVE值,send to选择需要出发的预警。点击保存。