您的位置:首页 > 运维架构 > Docker

使用influxdb+cadvisor+grafana的docker镜像搭建一个实时监控系统的环境

2015-11-17 22:52 1271 查看

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

1.在本地创建一个存放influxdb数据的目录

<span style="font-size:14px;">[root@lijiaze:~] # mkdir -p /data/influxdb</span>


2. 启动influxdb容器,必须注意的是这里的influxdb镜像要使用v0.8.8的

<span style="font-size:14px;"># 为了方便后面其他的容器和它连接,启动一个名叫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</span>
3. 创建cadvisor数据表

   (1).登陆http://10.63.39.38:8083 使用username为root,password为root登陆influxdb。如下图



   (2).登陆influxdb后,点击页面的上方Databases连接,输入数据库的名称cadvisor并点击Create Database按钮。如下图



2.3 安装cadvisor

1. 启动cadvisor容器

<span style="font-size:14px;"># 启动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</span></span>
2. 一旦容器创建成功,就可以通过URL为http://10.63.39.38:8080 登陆到cadvisor的UI界面,如下图



2.4 安装grafana

1.启动grafana容器

<span style="font-size:14px;"># 启动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</span></span>
2. 配置grafana

  (1) 通过URL 为http://10.63.39.38:3000 登陆grafana的UI界面,以username为admin,password为admin登陆。

  (2) 连接influxdb的配置,首先点击界面左边的Data Sources,然后点击Add New Data Source这样就会弹出一个编辑框。

我们在编辑框的Edit data source下面填入如下信息

Name:influxdb

Type   :influxDB 0.8.x

将Default旁边的框框选上

在Http settings下面填入如下信息

Url:http://influxsrv:8086

Access:proxy

Basic Auth: Enabled

User: admin

Password: admin

在InfluxDB Details下面填入如下信息

Database:cadvisor

User:root

Password:root

    上述操作完成后,我们将看到如下的图

4000



           (3) 定义要监控的信息,首先点击grafana的UI界面的左边的Dashboards按钮,然后点击New按钮,此时将会在Dashboards的旁边出现一个绿色图标,移动鼠标到该图标上,将会有一系列表展现出来,这时选择Add Panel然后在选择Graph。如下图



这时将会弹出一个表格类型图,点击表的标题(no title (click here)),选择edit 按钮,进行编辑。如下图



这样就会弹出一个编辑的表格,我们首先在已有的Query1 里面填写如下的信息

series:stats

alias::Limit

select:mean(fs_limit)

然后点击右下方的Add Query 按钮再创建一个Query2,并在Query2里面填写如下的信息

series:stats

alias::Usage

select:mean(fs_usage)

点击General按钮,修改你的表格的标题

点击Axis & Grid 按钮,改变显示的坐标的单位,Left Y Unit:Bytes

这样上述操作完成后的图如下



这样上述操作完成后,点击界面上方的Save按钮进行保存。这样整个部署流程就走完了!是不是很帅气呢?!

3 后记

其实,很早就想写记录下自己工作或者学习所弄过的一些东西,没时间去弄,今天熬夜也得把第一篇博客写好,哈哈终于写完了!当然这里主机里面有很多参数可以将其展现出来,不过作为一个教程只是举其中一个简单的例子,后续如果有时间在贴上吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker influxdb cadv