- 环境:CentOS7, JMeter 5.4.1
- 文章背景:网上资料都是基于 influxdb1.x+grafana 的搭建监控方案,但是关于 Influxdb2 资料比较少,最近正好在学习性能测试所以就记录下来,分享给大家。使用Influxdb2 已经集成了图形界面可以无需使用 grafana。
- 文章目的:一步一步教你如果使用 Influxdb2 完成服务器的指标监控。
- 正文内容:主要包含几个部分"官网介绍、工具安装、配置文件、基本使用、数据验证".
- 总结经验:要确保电脑可以连接上"真正的互联网"。
官网下载及安装方法:https://portal.influxdata.com/downloads/ 。我服务器是 CentOS 7 所以我选择的是 RedHat&CentOS,目前官网最新版本为 2.0.4。
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4.x86_64.rpm
sudo yum localinstall influxdb2-2.0.4.x86_64.rpm
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.18.0-1.x86_64.rpm
sudo yum localinstall telegraf-1.18.0-1.x86_64.rpm
Github 下载地址及安装方法:官网如果下载不了可以尝试从 github 上下载
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4.x86_64.rpm
rpm -iv influxdb2-2.0.3.x86_64.rpm
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.18.0-1.x86_64.rpm
rpm -iv telegraf-1.18.0-1.x86_64.rpm
启动服务:sudo service influxdb start
访问:http://192.168.163.11:8086/ 第一次初始化需要输入账号、密码、组织、bucket 等信息。
如果需要通过 CLI(command line interface),官网建议我们做一个设置以避免每次都需要进行身份验证。在终端输入一下信息,-o:为组织名称,-t 是 token。
influx config create -n default \
-u http://192.168.163.11:8086 \
-o MillerOrg \
-t ripoNMQhBlscArM7Nr_mGnjroq_dltBUxAqf5eI4zXsSIRion_eu0_f-DYIeZIFQ5Rc5zztVD34FEUNQQETNLQ== \
-a
JMeter 数据写入 Influxdb 需要在 influxdb 中生成一个 token 用于外部系统写入数据库。
在 Influxdb 中选择 Data > Tokens, 点击 Generate > Read/Write Token .
生成之后返回"Tokens"Tab 页,点击"JMeterToken"弹出 token 页面点击"Copy to Clipboard"复制 token 到剪切板。
启动 JMeter。在测试计划下添加一个"Thread Group",添加一个"Java Request",添加一个"View Results Tree",一个"Summary Report"。
添加一个 BackendListener 用于将 JMeter 的数据发送给 Influxdb,"Thread Group --> Add -->Listener-->Backend Listener", Backend Listener 选择"org.apache.jmeter.visualizers.backend.influxdb.InfluxDB*RawBackendListenerClient*".
- influxdbMetricsSender: org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
- influxdbUrl:http://192.168.163.11:8086/api/v2/write?org=MillerOrg&bucket=JMeter
- influxdbToken:填写 Influxdb 网站中 Data-->Tokens-->刚才创建的"JMeterToken"中的 token 值。
- measurement:jmeter
- 注意:如果 JMeter 是 5.4 以前的版本可以没有 Raw 这个监听器,那选择"org.apache.jmeter.visualizers.backend.influxdb.InfluxDBBackendListenerClient".然后添加一个参数 Add-->Name:influxdbToken, Value:MyToken。
下载安装:略,上面安装 Influxdb 时已经介绍过了下载地址及安装方法。
创建配置文件:左侧菜单 Data-->Telegraf-->Create Configuration-->Bucket 选择 JMeter-->指标选择 System-->Continue-->
创建完会提示让你验证你的配置,直接"Finish"即可。创建完之后会在 Tokens 页自动创建用于读写 telegraf 的 token。
拷贝配置文件内容
备份 telegraf.conf 并且使用我们刚刚新生成的配置文件内容, 需要修改配置文件里面的 token。logfile 可以根据自行选择进行添加路径,目前我设置的是 logfile = "/var/log/telegraf/telegraf.log"。
[root@perf src]# cd /etc/telegraf/
[root@perf telegraf]# mv telegraf.conf telegraf.conf.back
[root@perf telegraf]# vi telegraf.conf
启动服务:service telegraf start
添加 dashboard,从模板中创建。
点击刚刚创建的 System 模板,添加一条过滤规则,根据主机名进行过滤。(不知道主机名的在命令行敲:hostname)
from(bucket: v.bucket)
|> range(start: v.timeRangeStart)
|> filter(fn: (r) => r._measurement == "system")
|> filter(fn: (r) => r._field == "uptime")
|> filter(fn: (r) => r["host"] == "perf这里输入你自己的主机名")
|> last()
|> map(fn: (r) => ({r with _value: r._value / 86400}))
|> yield(name: "last")
查询指定表的数据
influx query -o MillerOrg 'from(bucket:"JMeter")|>range(start:-1m)'
通过界面查看 sql 语句.点击 “Script Editor“
https://portal.influxdata.com/downloads/
https://docs.influxdata.com/influxdb/v2.0/query-data/flux/
https://qainsights.com/jmeter-integration-with-influxdb-2-0/