文章目录
本章学习目标:
掌握时间序列数据库 influxDB 的安装与使用;
掌握容器监控工具 cAdvisor 的安装与使用;
掌握图表工具 Grafana 的安装与使用。
一、时序数据库 influxDB
1. 什么是 influxDB
influxDB 是一个分布式时间序列数据库,运维常用。由于 cAdvisor 仅仅显示实时信息,但是不能存储监视数据。因此我们需要提供时序数据库用于存储 cAdvisor 组件所提供的监控信息,以便显示除实时信息之外的时序数据。
实时信息之外的时序数据:比如当前的内存大小、CPU 的占用情况等。
2. influxDB 的安装
第一步:下载镜像;
docker pull tutum/influxdb
第二步:创建容器;
docker run -di \
-p 8083:8083 \
-p 8086:8086 \
--expose 8090 \
--expose 8099 \
--name influxsrv \
tutum/influxdb
该容器中:8083 端口为 Web 访问端口,8086 端口为数据写入端口,8090 和 8099 是要求暴露出来的端口。
第三步:容器创建成功之后,在本地进行访问,显示如下界面即安装完成;
3. influxDB 常用操作
创建数据库
我们可以通过查询模板 “Query Templates
” 快速输入相关命令;
输入命令后按下回车,即可创建成功;
创建用户并授权
--创建用户 majinjian,密码 990214,为该用户赋予所有权限
CREATE USER "majinjian" WITH PASSWORD '990214' WITH ALL PRIVILEGES
此时搜索用户,可以看到我们创建的新用户;
用户授权语法如下:on 数据库名 to 用户名
;
--在 majinjian 数据库中为用户 majinjian 授予所有权限
grant all privileges on majinjian to majinjian
--在 majinjian 数据库中为用户 majinjian 授予写权限
grant WRITE on majinjian to majinjian
--在 majinjian 数据库中为用户 majinjian 授予读权限
grant READ on majinjian to majinjian
查看采集的数据
查看采集数据需要使用指令 SHOW MEASUREMENTS
;可以看到此时是没有内容的,因为我们的数据库刚刚创建,并没有产生数据。
二、容器监控工具 cAdvisor
1. 什么是 cAdvisor
cAdvisor 是 Google 开源的用于监控基础设施应用的工具,是一个强大的监控工具,不需要任何配置就可以通过运行在 Docker 主机上的容器来监控 Docker 容器,而且可以监控 Docker 主机。
该应用的主要作用就是监控,而监控所产生的数据均存储于时序数据库 influxDB 中。
2. cAdvisor 的安装
第一步:下载镜像;
docker pull google/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 \
--publish=8080:8080 \
--detach=true \
--link influxsrv:influxsrv \
--name=cadvisor \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=majinjian \
-storage_driver_host=influxsrv:8086
-storage_driver_db=majinjian
-storage_driver_host=influxsrv:8086
语法为连接 influxDB 数据库,此处的majinjian
是我在 influxDB 中创建的数据库名。
第三步:在本地使用 虚拟机/服务器 IP:8080/containers/
进行访问,看到以下界面即 cAdvisor 安装成功;
此时 cAdvisor 就已经处于运行状态了,它也会将监控产生的数据存入 influxDB 当中。
再次查看 influxDB 中的采集数据,可以看到已有数据产生;
三、图表工具 Granfana
1. 什么是 Grafana
通过上一节可以看到,在 influxDB 中查看数据时,数据比较凌乱且不够直观,而 Grafana 正是来解决这个问题的。
Grafana 是一个可视化面板,有着非常好的图表和布局展示,包含功能齐全的度量仪表盘和图形编辑器。支持 Graphite、zabbix、influxDB 和 OpenTSDB 作为数据源。
它的主要特性为:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式的切换;支持多个数据源。
2. Grafana 的安装
第一步:下载镜像
docker pull grafana/grafana
第二步:创建容器并连接 influxDB
docker run \
-d \
-p 3001:3000 \
-e INFLUXDB_HOST=influxsrv \
-e INFLUXDB_PORT=8086 \
-e INFLUXDB_NAME=majinjian \
-e INFLUXDB_USER=majinjian \
-e INFLUXDB_PASS=majinjian \
--link influxsrv:influxsrv \
--name grafana grafana/grafana
-e INFLUXDB_NAME=majinjian 数据库名称
-e INFLUXDB_USER=majinjian 数据库用户名
-e INFLUXDB_PASS=majinjian 数据库密码
第三步:本地浏览器进行访问,初始界面如下
输入用户名和密码登录,默认用户名为 admin,密码为 admin,首次登录后需要修改密码;
3. Grafana 的常用操作
添加数据源
点击设置 --> “Data sources”;
点击 “Add date source” 添加数据源,然后我们这里选择 influxDB;
设置相关参数;
点击 “save & test”,如下添加成功;
添加仪表盘
选择 “Dashboards” --> “Browse”;
点击 “New Dashboards” 添加,然后选择一种图表类型添加;
接下来就进入了图表编辑页面,可以设置数据源、图表标题、X轴、Y轴等各种属性;
如下是我按照容器名称索取的数据;
设置完成之后,点击 “save” 进行保存,如下为添加成功后图表;
当微服务开始运行后产生的数据便会体现在此图表上。