使用InfluxDB+cAdvisor+Grafana配置Docker监控
Docker监控简介
我们提供的Docker主机和容器越来越多,对Docker服务器和容器的监控越来越必要。本文将引导你了解如何通过多个不同组件的配置和协作,以实现Docker监控。
Docker监控组件
首先, 我们假设在您的主机上已经安装、配置和运行Docker Engine。请确保您可以通过Web浏览器在本地或者通过网络IP连接到Docker主机。以下我们将详细介绍如何创建我们的Docker监控方案。
cAdvisor: Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker主机。更多详细操作和配置选项可以查看Github上的cAdvisor项目文档。
influxDB: 它是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。
Grafana: Grafana可视化展示平台允许我们可视化地展示监控信息。它允许我们对influxDB进行查询,并通过强大的图表功能进行可视化展示。
本文配置组件版本信息如下:
- InfluxDB: V 1.0.0
- cAdvisior: V 0.24.1
- Grafana: V 4.0.2
Docker监控安装与配置
下面,我们将根据上述的Docker监控组件进行安装和配置,形成统一的Docker监控平台。
我们将首先先安装influxDB, 以便于它能够与cAdvisor进行协作。
1.安装influxDB
下载influxDB镜像
docker pull tutum/influxdb
运行influxdb容器
docker run -d \
-p 8083:8083 \
-p 8086:8086 \
--expose 8090 \
--expose 8099 \
--name influxsrv \
tutum/influxdb
influxdb容器运行成功后,通过Web浏览器访问http://docker-host-ip:8083访问influxdb后台管理,并登录后台管理系统(默认用户名:root, 默认密码:root).
2.创建cAdvisor应用数据库
在登录influxdb后台数据库管理平台后, 创建cAdvisor数据库, 用于存储cAdvisor应用所获取的实时监控数据。在influxDB管理界面中的Querie s输入框中创建数据库和用户:
create_database
创建数据库
create database 'cadvisor';
创建用户
CREATE USER 'cadvisor' WITH PASSWORD 'cadvisor'
用户授权
grant all privileges on 'cadvisor' to 'cadvisor'
授予读写权限
grant WRITE on 'cadvisor' to 'cadvisor'
grant READ on 'cadvisor' to 'cadvisor'
3.运行cAdvisor应用容器并与influxDB容器进行互联
启动cAdvisor容器
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
-p 8080:8080 \
--detach=true \
--link influxsrv:influxsrv \
--name=cadvisor \
google/cadvisor:latest \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxsrv:8086
cAdvisor应用容器启动成功后,通过Web浏览器访问地址http://docker-host-ip:8080,便可以查看cAdvisor监控工具所收集到的Docker主机和容器的资源统计信息。
4.运行Grafana可视化平台并与influxDB容器进行互联
docker run -d \
-p 3000:3000 \
-e INFLUXDB_HOST=localhost \
-e INFLUXDB_PORT=8086 \
-e INFLUXDB_NAME=cadvisor \
-e INFLUXDB_USER=root \
-e INFLUXDB_PASS=root \
--link influxsrv:influxsrv \
--name grafana \
grafana/grafana
5.登录Grafana管理平台
通过Web浏览器访问地址http://docker-host-ip:3000登录Grafana管理平台。
用户名:admin
密 码:admin
Grafana_Login
6.配置Grafana与influxDB数据库连接
(1). 配置Granfana数据源
在Grafana管理平台中,单击“添加数据源”对数据源进行配置。如下图所示。
基本信息
Name:influxdb
Type:influxDB
Default: checked
Http settings
Url:http://influxsrv:8086
Access:proxy
HTTP Auth
Basic Auth: checked
Basic Auth Details
User: admin
Password: admin
InfluxDB Details
Database:cadvisor
User:cadvisor
Password:cadvisor
配置完成后, 我们已经建立与influxDB的连接,下面我们将其进行测试。
(2). 添加Dashboard
下面我们将使用Grafana配置我们的第一个Dashboard,并可视化来自cAdvisor的监控数据。
1). 点击“Grafana”图标, 打开Dashboard菜单,选择新建Dashboard;
2). 在Dashboard面板中选择相应的组件并拖动到相关的位置;
3). 点击面板的标题,会弹出相应的选项”view”、”edit”、”Duplicates”、”share”和删除按扭;
4). 选择”edit”选项,出现相应的配置项,在“Metrics”选项卡中配置相应的数据表和数据源信息;
例如: 配置内存使用率信息
在Metric选项卡中, 配置数据表来源为:SELECT mean(“value”) FROM “memory_usage” WHERE $timeFilter GROUP BY time(10s) fill(0), 配置数据源Panel Datasource为:cadvisor;
在Axes选项卡中配置相关的显示单位。
5). 配置完相关的选项后,点击Dashboard导航栏的保存按钮,便可完成Dashboard的配置。
Save Config
至此, 所有配置步骤完成, 我们能够看到Grafana显示相关的监控图表信息。
推荐阅读
-
使用SpringBoot简单了解Druid的监控系统的配置方法
-
使用Docker Compose搭建部署ElasticSearch的配置过程
-
详解Docker 国内镜像的配置及使用
-
在Ubuntu上使用Grafana监控Docker的方法
-
[MySQL] docker下安装使用mysql配置主从复制
-
在Docker中运行纸壳CMS并配置使用MySql
-
linux使用docker-compose部署软件配置详解
-
使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库
-
zabbix监控docker应用配置
-
Docker 配置网络 - 如何使用 bridge 网络配置网络