(十二)使用InfluxDB模板

以下内容来自 尚硅谷,写这一系列的文章,主要是为了方便后续自己的查看,不用带着个PDF找来找去的,太麻烦!

第 12 章 使用InfluxDB模板

12.1 什么是InfluxDB模板

1、InfluxDB模板是一份yaml风格的配置文件。它包含了一套完整的仪表盘、Telegraf配置和报警配置。InfluxDB模板力图保证开箱即用,把yaml文件下载下来,往InfluxDB里一导,从数据采集一直到数据监控报警就全部为你创建好。

2、InfluxDB官方在github上收录了一批模板。开发前可以在这里逛一逛,看有没有可以直接拿来用的。https://github.com/influxdata/community-templates

12.2 示例:使用模板快速部署

1、在示例中,我们会使用社区模板快速创建一套docker的监控模板。要完成这个示例,你需要提前掌握docker的相关知识。

12.2.1 找到Docker模板文档

1、访问上一节的 https://github.com/influxdata/community-templates 找到Docker模板的目录,点进去。可以看到,有一节的标题是Quick install里面有详细的配置说明。

在这里插入图片描述

12.2.2 安装模板

1、使用influx-cli安装模板。

influx apply -f https://raw.githubusercontent.com/influxdata/community-templates/master/docker/docker.yml

2、命令执行后,会弹出下面的消息,询问你是否使用上面的资源。

在这里插入图片描述
3、这里所指的资源,涉及要在你的InfluxDB中创建什么名称的Bucket,创建什么定时任务和报警任务,创建什么仪表盘等等。如果你是在一个正在生产、且存在相似业务的InfluxDB上,那这个列表还是要好好看一看的,避免出现存储桶重名之类的现象。确定没有问题之后,敲y回车。

4、如果接下来展示的内容以Stack ID: xxxx结尾,那说明安装成功!这里的Stack(栈)概念,其实就是模板的实例。

在这里插入图片描述

12.2.3 查看安装结果

1、现在,我们打开InfluxDB的Web UI,看一下我们模板的导入效果。下图是模板为我们创建的存储桶,名为docker。

12.2.3.1 存储桶

1、有一个名为docker的存储桶

在这里插入图片描述

12.2.3.2 telegraf配置

1、一个名为Docker Monitor的Telegraf配置文件,这个配置文件可能需要根据你Docker的配置进行一些修改

在这里插入图片描述

12.2.3.3 仪表盘

1、模板还帮我们创建了一个名为Docker仪表盘,来。

在这里插入图片描述

2、只不过我们现在的Bucket里面还没有数据,所以这列的图表都还没有显示出

在这里插入图片描述

12.2.3.4 报警规则

1、模板还帮我们设置了 4 个报警规则,根据题目的描述,分别是

  • 容器CPU使用率持续 15 分钟超过80%
  • 容器硬盘使用率超过 8 0%
  • 容器的内存使用率持续 15 分钟超过 8 0%
  • 容器没有以 0 状态(正常结束)退出。

在这里插入图片描述

12.2.4 运行Telegraf采集数据

1、现在我们要使用Teleggraf跑docker模板里的配置文件。但之前我们在~/bin目录下写过一个host_tel.sh的启停脚本,那个文件会保证全局只有一个telegraf。所以,为了避免混乱,我们现在要先把之前的telegraf停掉。

host_tel.sh stop

2、接下来,我们编写新的脚本。还是在~/bin目录下,创建docker_tel.sh文件。键入以下内容。

#!/bin/bash
export INFLUX_TOKEN=h106QMEj47juNUco-6Top1Tzz0IeMh5MhBIDT8vUdv1R3BVeAzMvWGq2DtmJIcyuPwvPmHTLbZLTbnKxz3UKA==
export INFLUX_HOST=http://localhost:8086/
export INFLUX_ORG=atguigu
/opt/module/telegraf-1.23.4/usr/bin/telegraf --config http://localhost:8086/api/v2/telegrafs/09edf888eeeb6000

3、按照docker模板的要求,在运行 telegraf之前,我们需要声明 INFLUX_TOKEN、INFLUX_HOST和INFLUX_ORG三个变量。然后,我们修改一下docker_tel.sh的执行权限。最终,启动docker_tel.sh

chmod 755 ./docker_tel.sh
./docker_tel.sh

4、如图所示,telegraf成功启动。

在这里插入图片描述

12.2.5 查看模板效果

1、首先,可以在DataExplorer中查看docker存储桶中有没有数据。如图所示,数据已经成功进入InfluxDB。
在这里插入图片描述
2、接下来,我们可以看一下仪表盘的状态,如下图,仪表盘也是成功展示数据的。

在这里插入图片描述

12.2.6 运行一个docker容器

1、使用下面的命令,运行一个docker的入门容器。如果你的主机上没有docker/getting-started镜像,那么docker回去dockerhub上拉取镜像,因为这个镜像在国外,速度可能会很慢,如果拉取失败,请自行百度替换源的方法。另外,容器运行后,还需要一段时间让telegraf采集数据。

docker run -dp 80:80 docker/getting-started

12.2.7 再次查看仪表盘

1、如下图所示,我们的镜像和容器数都从 0 变成了 1 。而且系统的内存使用率变高了。

在这里插入图片描述

12.2.8 删除stack(模板实例)

1、 在Web UI上,点击左侧工具栏的 按钮,再点击上方的TEMPLATES。可以看到已安装的模板列表,每个末班列表的右边都有一个删除按钮,通过这种方式可以快捷删除。删除后,stack所涉的所有资源会全部消失。

在这里插入图片描述

2、你也可以通过influx-cli来删除

influx stacks remove -o atguigu --stack-id=09ee 20 c 8 0d 692000

3、influx-cli的功能很全,你也可以用它来给stack重命名,或者查看一个组织下的所有
stack等。

12.3 InfluxDB模板的不足

12.3.1 FLUX兼容性

1、我们之前看到,很多 InfluxDB模板里面都会内嵌 FLUX 语言脚本。但是不同的InfluxDB里面编译进去的FLUX语言版本是不一样的。最重要的是,FLUX语言目前还处在较快的变动期,标准库还未确定。尤其是后面版本的 FLUX可能会废弃之前版本里的函数和API。这就导致FLUX语言向前兼容性不佳。

2、下图是InfluxDB版本和FLUX语言版本的对应关系。

在这里插入图片描述

3、比如,InfluxDB 2. 4 的FLUX版本是 0 .179,Influx2.0就是 0 .131.0。 4 次迭代就能让FLUX相差 40 多个版本。最典型的比如smaple-data这个模板。

在这里插入图片描述

4、在InfluxDB 2.3之后就不能用了。如果你加载这份模板,会提示配置文件的第 11 行有问题。这其实就是因为这份模板中的,csv.from(url:xxx)已被废弃。再加上官方维护的这套模板仓库、出于“年久失修”的状态,缺乏维护。所以、你可能还需要自己手动修改一下模板。

在这里插入图片描述

在这里插入图片描述

12.3.2 生态不如Grafana

1、Grafana是一个专门做监控仪表盘的框架、支持设置监控任务而且支持以多种数据库作为数据源。社区活跃度高于InfluxDB,所以Grafana框架下有更加丰富且好用的模板。Grafana还支持将InfluxDB作为数据源,这样在框架选型上可以使用InfluxDB+Grafana的方案。这样,InfluxDB就只负责读写,Grafana负责数据展示和报警。下图是Grafana社区提供的模板。可以看到过滤后,支持以InfluxDB作为数据源的仪表盘就有 1117 个。

在这里插入图片描述

2、反观InfluxDB收录的模板、活跃度和模板更新上都赶不上granfana。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38263083/article/details/131931530