1.简述
监控一个主机系统实时信息,比如cpu,内存等信息看起来是一件比较难的时,其实即使用传统的方法安装influxdb和cadvisor还有granfana就可以了,再说现在使用docker来部署环境简直就是so easy!
Docker的火爆程度就不说了,随着docker的生态圈的发展,将原来部署起来很复杂的环境变得非常简单,下面的教程我们通过上述的三个组件(cadvisor influxdb grafana)来搭建一个监控主机系统的实时信息。
首先介绍下几个组件的功能,cadvisor谷歌公司自己用来监控他们基础设施的一款工具,这个工具厉害之处不仅能监控docker容器的实时信息,而且还能将你的cadvisor这容器所在的主机的系统的实时信息!(谷歌就这么牛逼,掌握核心技术!),但是由于cadvisor只是能监控到实时的信息而不能保存,所以我们要使用influxdb将这些实时监控到的信息存放起来,以备以后需要。而grafana这个就是将influxdb存放的信息以图表的形式,非常清晰,完美地展现出来!下面,我们简述部署的过程。
2.环境部署
2.1 平台信息
假设你的虚拟机已经安装并配置好了docker(能直接pull镜像,要是不行可以先在外面下载好再导进去),并且你的虚拟机能和浏览器进行连接,以我的环境为例子,我的环境的信息如下:
IP | 主机名 | 备注 |
10.63.39.38 | lijiaze | 系统CentOS7.1 |
2.2 安装influxdb
2.2.1 启动influxdb容器
# 1 在本地创建一个存放influxdb数据的目录
# mkdir -p /data/influxdb
# 2 启动influxdb容器,必须注意的是这里的influxdb镜像要使用v0.8.8的
# 为了方便后面其他的容器和它连接,启动一个名叫influxsrv容器,并将容器的信息保存在本地目录/data/infludb
# docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 --volume=/data/influxdb:/data --name influxsrv tutum/influxdb:0.8.8
2.2.2 创建cadvisor数据表
1、登陆http://10.63.39.38:8083 使用username为root,password为root登陆influxdb。如下图
2、登陆influxdb后,点击页面的上方Databases连接,输入数据库的名称cadvisor并点击Create Database按钮。如下图
2.3 安装cadvisor
1、启动cadvisor容器
# 启动cadvisor容器,并和前面创建的influxdb的容器连接起来
# docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro <span style="font-family: Arial, Helvetica, sans-serif;">--publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor:latest -storage_driver=influxdb </span><span style="font-family: Arial, Helvetica, sans-serif;">-storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
2、一旦容器创建成功,就可以通过URL为http://10.63.39.38:8080 登陆到cadvisor的UI界面,如下图
2.4 安装grafana
2.4.1 启动grafana容器
# 启动grafana容器,并和influxdb容器连接
# docker run -d -p 3000:3000 -e INFLUXDB_HOST=influxsrv -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root <span style="font-family: Arial, Helvetica, sans-serif;">--link influxsrv:influxsrv --name grafana grafana/grafana
2.4.2 配置grafana
1、通过URL 为http://10.63.39.38:3000 登陆grafana的UI界面,以username为admin,password为admin登陆。
2、连接influxdb的配置,首先点击界面左边的Data Sources,然后点击Add New Data Source这样就会弹出一个编辑框。
a、我们在编辑框的Edit data source下面填入如下信息:
Name | influxdb |
Type | influxDB 0.8.x |
注:将Default旁边的框框选上 |
b、在Http settings下面填入如下信息
Url | http://influxsrv:8086 |
Access | proxy |
Basic Auth | Enabled |
User | admin |
Password | admin |
c、在InfluxDB Details下面填入如下信息
Database | cadvisor |
User | root |
Password | root |
3、上述操作完成后,我们将看到如下的图
4、定义要监控的信息,首先点击grafana的UI界面的左边的Dashboards按钮,然后点击New按钮,此时将会在Dashboards的旁边出现一个绿色图标,移动鼠标到该图标上,将会有一系列表展现出来,这时选择Add Panel然后在选择Graph。如下图
这时将会弹出一个表格类型图,点击表的标题(no title (click here)),选择edit 按钮,进行编辑。如下图
a、这样就会弹出一个编辑的表格,我们首先在已有的Query1 里面填写如下的信息
series | stats |
alias | Limit |
select | mean(fs_limit) |
b、然后点击右下方的Add Query 按钮再创建一个Query2,并在Query2里面填写如下的信息
series | stats |
alias | Usage |
select | mean(fs_usage) |
c、点击General按钮,修改你的表格的标题,点击Axis & Grid 按钮,改变显示的坐标的单位,Left Y Unit:Bytes
5、这样上述操作完成后的图如下,点击界面上方的Save按钮进行保存。
3 后记
其实,很早就想写记录下自己工作或者学习所弄过的一些东西,没时间去弄,今天熬夜也得把第一篇博客写好,哈哈终于写完了!当然这里主机里面有很多参数可以将其展现出来,不过作为一个教程只是举其中一个简单的例子,后续如果有时间在贴上吧!