InfluxDB+cAdvisor+Grafana容器管理

强颜欢笑 提交于 2020-02-06 15:24:52
  • InfluxDB

InfluxDB是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,需要提供实时数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。

1.InfluxDB的安装

下载镜像

docker  pull  tutum/influxdb

创建容器

docker  run  -di  \

-p  8083:8083  \

-p  8086:8086  \

--expose  8099  \

--expose  8099  \

--name  influxsrv  \

tutum/influxdb

上面,8083端口是web访问端口,8086是数据写入端口。

安装好,浏览器访问192.xxx.xx.xxx:8083

2.使用influxDB

通过query  templates下拉选项可以快速使用命令语句。

创建数据库

CREATE  DATABASE  "cadvisor"

查看所有数据库

SHOW  DATABASES

创建用户

CREATE  USER  "zhangsan"  WITH  PASSWORD  'password'  WITH  ALL PRIVILEGES

查看用户

SHOW  USERS

用户授权

grant  all  privileges  on  cadvisor  to  zhangsan

grant  write  on  cadvisor  to  zhangsan

grant  READ  on  cadvisor  to  zhangsan

查看采集的数据

切换到cadvisor数据库,使用命令采集数据

SHOW  MEASUREMENTS

  • cAdvisor软件

cAdvisor是google开源的用于监控基础设施应用的工具,功能强大,不需要任何配置就可以通过运行在docker主机上的容器来监控docker容器,也可以监控docker主机。

下载镜像

docker  pull  google/cadvisor

创建容器

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 \

  --name=cadvisor \

  google/cadvisor \

  -storage_driver=influxdb \

  -storage_driver_db=cadvisor \

  -storage_driver_host=influxsrv:8086

或者

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=cadvisor  -storage_driver_host=influxsrv:8086

cadvisor容器启动闪退的解决方法:

mount  -o  remount,rw  '/sys/fs/cgroup'

ln  -s  /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu

浏览器访问192.xxx.xx.xxx:8080/containers/

在此查看influxDB,可以看到cAdvisor采集的数据。

  • Grafana

Grafana是一个可视化面板,拥有图表和布局展示,功能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、influxDB\Prometheus和OpenTSDB作为数据源。

下载镜像

docker  pull  grafana/grafana

创建容器

docker  run  -d  -p  3001:3000  -e  INFLUXDB_HOST=influxsrv  -e  INFLUXDB_PORT=8086  -e  INFLUXDB_NAME=cadvisor  -e  INFLUXDB_USER=root  -e  INFLUXDB_PASS=root  --link  influxsrv:influxsrv  --name  grafana  grafana/grafana

访问http://192.xxx.xx.xxx:3001用户名和密码都是admin

添加数据源

点击设置,data  source,添加数据源,设置name为influxdb,type选择InfluxDB,url改为192.xxx.xx.xx:8086,

数据库设置为cadvisor,设置用户名和密码。

添加仪表盘

选择dashboards,点击manager,点击添加按钮,点击graph图标。

新增图表后,点击panel title右边的下拉选择edit。General,修改名称;metrics,选择data source为influxdb,选择表,比如memory_usage,where条件选择容器;Axes,修改x轴y轴。设置完毕,点击保存,设置名称。

预警通知设置

选择菜单,alerting,选择notification  channels;点击add  channel按钮;设置名称,选择类型为webhook,url使用rancher中容器接收器的hook的地址;http方式为POST。

在图表中使用预警,进入图表面板,选择edit,点击预警图表,添加预警。设置IS ABOVE值,send  to选择需要出发的预警。点击保存。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!