十次方后端笔记十:容器管理与监控
使用 Rancher + influxDB + Grafana 实现 Docker 容器监控与管理

Rancher

安装和初始化(省略)

参考文章:Rancher入门

扩容和缩容

扩容

  1. 添加服务,不需要添加端口映射

  2. 点击API -> Webhooks -> 添加接收器

  3. 输入名称,扩容,选择刚刚创建的服务,输入数量。

  4. 复制触发地址,使用POST请求访问该地址。(每执行一次,增加步长值相等数量的容器,直到容器数量达到最大数量)

  5. 查看是否扩容成功

缩容

操作和扩容类似,需要注意的是步长,每次访问链接时,会增加/减少的容器数量为步长。

InfluxDB

什么是InfluxDB

InfluxDB是一款时间序列数据库,本质是数据库,只是存储数据的结构不同。

目前时间序列数据库大多用在物联网行业,我司也有使用,不过是另一款,叫做OPENTSDB,阿里云的时间序列数据库,就是构建在OPENTSDB之上的。

InfluxDB安装

  1. 拉取镜像

    1
    docker pull influxdb
  2. 运行容器

    1
    docker run -di --name=influxdb -p 8086:8086 -v /var/influxdb:/var/liv/influxdb influxdb
  3. 测试是否可用

    1
    2
    3
    4
    # 进入容器
    docker exec -it influxdb bin/bash
    # 查看influx版本
    /usr/bin/influx -version # 输出结果:InfluxDB shell version: 1.7.7

    注意:influxdb早期的版本是有web ui的,但是版本比较的老,新的版本已经将web ui移除了。

InfluxDB常用操作

操作InfluxDB首先需要进入容器:docker exec -it influxdb bin/bash

进入InfluxDB命令行:/usr/bin/influx

创建数据库

1
create database cadvisor

查看所有数据库

1
show database

删除数据库

1
drop database cadvisor

用户操作

  • 创建用户

    1
    2
    3
    4
    # 选择数据库
    use cadvisor
    # 创建用户
    create user "cadvisor" with password 'cadvisor' with all privileges
  • 用户授权

    1
    2
    3
    4
    5
    grant all privileges on cadvisor to cadvisor
    # 写入权限
    grant write on cadvisor to cadvisor
    # 读权限
    grant read on cadvisor to cadvisor

cAdvisor

什么是cAdvisor

Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任 何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker主机。

cAdvisor安装

  1. 拉取镜像

    1
    docker pull cadvisor
  2. 制作并运行容器

    1
    docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --hostname=cadvisor --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_host=192.168.136.104:8086 -storage_driver_db=cadvisor -storage_driver_user=cadvisor -storage_driver_password=cadvisor
  3. 查看web ui

Grafana

什么是Grafana

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功 能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。

Grafana主要特性:

  • 灵活丰富的图形化选项
  • 可以混合多种风格
  • 支持白天和夜间模式
  • 多个数据源。

Grafana安装

  1. 拉取镜像

    1
    docker pull grafana/grafana
  2. 运行容器

    1
    docker run -di --name=garafana -p 3001:3000 -e INFLUXDB_HOST=192.168.136.104:8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_PASS=cadvisor  grafana/grafana
  3. 访问:http://192.168.136.104:3001

    账号密码都是admin

Grafana操作

  1. 添加数据源(省略)

  2. 添加仪表盘(省略)

  3. 预警

    通过监控内存,当内存达到阈值时,调用Rancher的扩容API。

文章作者: imxushuai
文章链接: https://www.imxushuai.com/2002/01/02/10.十次方后端笔记十:容器管理与监控/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 imxushuai
支付宝打赏
微信打赏