主要内容:
一、安装Grafana
二、安装Telegra
三、安装InfluxDB
四、配置仪表盘
五、使用Jmeter
一、安装InfluxDB
1.1. 在docker官方镜像中找到influxdb(https://hub.docker.com/_/influxdb),根据安装提示安装:
docker run -d -p 8086:8086 --name=influxdb influxdb
1.2. 安装完成后,通过api查询服务是否安装成功并启动:
curl -G http://localhost:8086/query --data-urlencode "q=show databases"
1.3. 打开8086防火墙端口,不然之后grafana在配置数据源的时候会访问不到influxdb:
systemctl start firewalld.service --启动防火墙
firewall-cmd --zone=public --add-port=8086/tcp --permanent
systemctl restart firewalld.service --启动防火墙
二、安装Telegraf
2.1. 在github中找到telegraf的wget的安装包,下载并安装:
yum install wget
wget https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.x86_64.rpm
yum localinstall telegraf-nightly.x86_64.rpm
2.2. 修改teltgraf配置,为其配置访问路径及默认数据库
vi /etc/telegraf/telegraf.conf
2.3. 重启telegraf,并查看服务启动状态:
systemctl start telegraf
systemctl status telegraf
2.4. 进入influxdb容器,查看是否存在telegraf数据库,如果telegraf数据库不存在,则说明tetegraf服务没有正常启动,则可以通过查看启动状态中的报错信息来定位问题
docker exec -it influxdb /bin/sh
influx
show databases
三、安装Grafana
3.1. 在docker官方镜像中找到grafana(https://hub.docker.com/r/grafana/grafana),根据安装提示安装:
docker run -d -p 3000:3000 --name=grafana grafana/grafana
3.2. 在虚拟机外访问grafana(默认帐号和密码都是:admin):
3.3. 登录后先要修改密码后,进入主页,接下来要添加数据源展示数据的仪表盘
3.4. 选择上图中的Add data source后,进入添加数据源页面,选择InfluxDB:
3.5. 更改下图中红框的配置,来连接influxdb容器内的数据库telegraf:
四、配置仪表盘
4.1. 添加完数据源后,返回首页,选择New dashboard
4.2. 选择可视化界面编辑:
4.3. 选择添加查询,更改数据库和查询语句,通过类似的方式,可以制作出需要展示数据的仪表盘:
五、使用Jmeter进行压力测试,并将结果展示在仪表盘中
5.1. 在influxdb中添加jmeter数据库:
docker exec -it influxdb /bin/sh
influx
show databases
create database "jmeter"
5.2. 为了将jmeter的压测数据导入到influxdb中,需要先更改配置。由于influxdb的docker中没有vim工具,则需要先进行安装:
apt update
apt install vim
安装完成后,在influxdb的配置中增加graphite,使得数据可以录入influxdb的数据库中:
// 打开配置文件
vi /etc/influxdb/influxdb.conf
// 增加如下配置
[[graphite]]
enabled = true
database = "jmeter"
bind-address = ":2003"
protocol = "tcp"
consistency-level = "one"
在容器中重启influxdb服务:
influxd -config /etc/influxdb/influxdb.conf
5.3. 在jmeter中增加Backend Listener:
选择graphite的监听方式,并更改监听端口和监听数据的正则匹配规则:
添加HTTP请求,启动执行,同时查看数据是否可以正常录入到influxdb中:
进入influxdb容器查看jmeter数据库中是否产生数据:
docker exec -it influxdb /bin/sh
influx
show measurements
5.4. 在grafana中新增influxdb的数据源,且数据库选择jmeter:
5.5. 制作jmeter数据的仪表盘,本次选择使用模版(https://grafana.com/dashboards):
选择想要的模版,复制模版id:
在grafana中的添加dashboard中,选择import:
在导入界面填入模版id,点击其它地方,会自动加载模版信息,并进入模版信息确认页面:
在此处选择数据库的名字,并点击导入:
在这个dashboard中就会显示刚才执行的jmeter的监控结果:
参考:
docker influxdb:https://hub.docker.com/_/influxdb
docker grafana:https://hub.docker.com/r/grafana/grafana
docker telegraf:https://hub.docker.com/_/telegraf
influx相关官方文档:https://docs.influxdata.com/
influx2.0相关官方文档:https://v2.docs.influxdata.com/v2.0/get-started/
influxdata_telegraf相关文档(包含下载):https://github.com/influxdata/telegraf
grafana Dashboards:https://grafana.com/dashboards
jmeter BackendListener:https://jmeter.apache.org/usermanual/component_reference.html#Backend_Listener