性能监控平台之influxdb搭建

发布时间 2023-11-23 11:26:17作者: 三水吉

今天开始,我会把自己搭建性能监控平台的亲身经历记录成博客,其实通过百度搜索,网上相关的操作指引一抓一大把,但还真是应了那句话,纸上得来终觉浅,自己踩过的坑永远印象最深刻。

其实,我也是靠着百度大神的指引一步步摸索实践,但很多时候初学者和大神对于系统的理解并不在同一起跑线上,很多时候可能对大神来说只是一个常识性的细节一笔略过,但恰恰就是这么一个细节遗漏而不自知就能困扰初学者很久很久。所以在博客中,我会把自己踩过的一些坑都记录下来,方便自己以后查阅的同时,也希望能帮助到更多的读者。

整个性能监控平台的架构其实就是通过jmeter+influxdb+grafana+prometheus四部分来实现的。其中jmeter作为压测工具来执行性能测试脚本,通过jmeter自带的后端监听器把压测期间对应的吞吐量、响应时长、并发数以及错误率等信息插入到influxdb数据库中。同时,在不同的服务器上安装相应的prometheus监听器,采集服务器实时的资源消耗情况并存储在prometheus数据库中,最后通过grafana来做一个汇总数据展示。这就是目前市面上主流的性能监控平台了。

今天就先来讲解influxdb的安装与使用。首先,我强烈建议各位通过docker的方式来安装influxdb,相对于传统方式,使用docker来搭建influxdb只需要简单的简单的五个步骤就能安装并运行influxdb,但考虑到部分读者不会使用docker,所以传统的方式我也会在本文中罗列。

docker方式安装influxdb

1.# 拉取influxdb镜像(influxdb 1.x和2.x的版本内容差异较大,建议使用1.x版本)
docker pull influxdb:1.8.6

2.# 创建容器并将其命名为jmeterdb,同时设置对外映射端口8086
docker run -itd --name jmeterdb -p 8086:8086 influxdb:1.8.6

3.# 进入容器
docker exec -it  容器Id /bin/bash

4.# 进入数据库
influx 
# 查看数据库
show databases
 
5.# 创建数据库,取名为jmeter(这里设置的数据库名称就是后期在grafana中配置的influxdb数据库名称)
create database jmeter 

注意:如果docker启动后,我们再对防火墙firewalld进行操作,在启动容器时,系统会报错: Error response from daemon: driver failed programming external connectivity on endpoint XXX,此时我们只能通过命令systemctl restart docker重启docker解决问题。

传统方式安装influxdb

  1.下载安装包

#下载并安装
yum install https://dl.influxdata.com/influxdb/releases/influxdb-1.8.6.x86_64.rpm

  2.编辑配置文件

#在/etc/influxdb下修改influxdb.conf的文件
vim /etc/influxdb/influxdb.conf

#输入i进入编辑模式,修改如下信息,修改好之后点击ESC退出编辑模式,然后输入:wq保存并退出

 

  3.创建文件夹并给予权限 

#这里会遇到一个坑,influxdb用到这些目录进行数据存储,但是并不会自动创建这些目录,需要自己手动创建并给予权限,否则之后运行会报错。且必须要一次性把所有文件夹都创建好再给予权限,顺序错了只能卸载重新安装!!!

  mkdir /var/lib/influxdb
  mkdir /var/lib/influxdb/meta
  mkdir /var/lib/influxdb/data
  mkdir /var/lib/influxdb/wal
  chown -R influxdb:influxdb /var/lib/influxdb/

  4.启动influxdb

#加载配置文件
influxd -config /etc/influxdb/influxdb.conf

  5.创建数据库

#进入数据库
influx

#创建数据库
create database jmeter

#查看全部数据库
show databases

#使用数据库
use jmeter

#退出数据库
exit

介绍了两种 influxdb的安装方式,对比下来是否觉得docker更方便呢?如果不会使用docker,建议可以在菜鸟教程https://www.runoob.com/上花个半天自学一下,多操作几遍,基本操作应该就不成问题了