欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用InfluxDB+cAdvisor+Grafana配置Docker监控

程序员文章站 2022-06-07 08:48:07
...

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).

使用InfluxDB+cAdvisor+Grafana配置Docker监控

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管理平台中,单击“添加数据源”对数据源进行配置。如下图所示。

使用InfluxDB+cAdvisor+Grafana配置Docker监控

基本信息
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;

使用InfluxDB+cAdvisor+Grafana配置Docker监控

2). 在Dashboard面板中选择相应的组件并拖动到相关的位置;

使用InfluxDB+cAdvisor+Grafana配置Docker监控

3). 点击面板的标题,会弹出相应的选项”view”、”edit”、”Duplicates”、”share”和删除按扭;
使用InfluxDB+cAdvisor+Grafana配置Docker监控

4). 选择”edit”选项,出现相应的配置项,在“Metrics”选项卡中配置相应的数据表和数据源信息;
使用InfluxDB+cAdvisor+Grafana配置Docker监控

例如: 配置内存使用率信息
使用InfluxDB+cAdvisor+Grafana配置Docker监控

在Metric选项卡中, 配置数据表来源为:SELECT mean(“value”) FROM “memory_usage” WHERE $timeFilter GROUP BY time(10s) fill(0), 配置数据源Panel Datasource为:cadvisor;

在Axes选项卡中配置相关的显示单位。

使用InfluxDB+cAdvisor+Grafana配置Docker监控
5). 配置完相关的选项后,点击Dashboard导航栏的保存按钮,便可完成Dashboard的配置。
使用InfluxDB+cAdvisor+Grafana配置Docker监控

Save Config
至此, 所有配置步骤完成, 我们能够看到Grafana显示相关的监控图表信息。