[docker] 用influxDB & Grafana & Telegraf & Jmeter搭建服务监控平台

Posted allbetter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[docker] 用influxDB & Grafana & Telegraf & Jmeter搭建服务监控平台相关的知识,希望对你有一定的参考价值。

主要内容:

    一、安装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

 

Telegraf+InfluxDB+Grafana搭建服务器监控平台:https://blog.csdn.net/w958660278/article/details/80484486

Jmeter + Grafana + InfluxDB 性能测试监控:https://www.cnblogs.com/yyhh/p/5990228.html

性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控:https://blog.csdn.net/zuozewei/article/details/82911173#InfluxDB_101

influxdb学习记录:https://blog.csdn.net/sunsloth/article/details/82260174

Linux tar包安装步骤:https://blog.csdn.net/dwj1250254648/article/details/77696676

解决docker,ubuntu镜像中没有vi/vim:https://www.cnblogs.com/yeleia/p/9192600.html

以上是关于[docker] 用influxDB & Grafana & Telegraf & Jmeter搭建服务监控平台的主要内容,如果未能解决你的问题,请参考以下文章

基于docker的influxdb时序数据库搭建

基于docker的influxdb时序数据库搭建

基于docker的influxdb时序数据库搭建

Influxdb-v0.11 集群搭建(docker+nginx+influxdb)

docker run Influxdb

Docker下部署influxdb