docker搭建jmeter可视化监控:jmeter + influxdb + grafana

一、首先是安装docker 

1、linux 安装所需要的包:yum install -y yum-utils device-mapper-persistent-data Ivm2

2、安装docker 最新版本 : yum install docker-ce -y 

3、启动docker : systemctl start docker   

4、查看docker 状态:systemctl status docker

5、设置开机启动:systemctl enable docker

6、查看 是否开机启动:systemctl is-enabled docker

7、 重新加载配置: systemctl daemon-reload

8、 验证查看docker 版本:docker version

其他命令:

停止docker :systemctl stop docker

重启docker:systemctl restart docker

设置开机不启动:systemctl disable docker

 

二、配置docker 镜像

1、首先创建 docker 目录:mkdir /etc/docker

2、创建daemon.json 文件: vim   /etc/docker/daemon.json

3、 daemon.json 配置镜像:

[root@demo docker]# pwd
/etc/docker

[root@demo docker]# vim daemon.json

{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirrors.tuna.tsinghua.edu.cn",
        "http://mirrors.sohu.com",
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "https://ccr.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://docker.awsl9527.cn"
    ]
}

4、 重新加载配置:systemctl daemon-reload

 
5、重启Docker:systemctl restart docker
 
三、拉取 influxdb  镜像
1、拉去镜像:docker pull influxdb:1.7.1
2、运行容器:docker run --name influxdb -d -p 18086:8086 influxdb:1.7.1
[root@demo~]# docker run --name influxdb -d -p 18086:8086 influxdb:1.7.1
3d9f0d362bb69c09dfc576e4322380f04c2cb4b3e5e615d609322946d3ddcf4b
[root@demo~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
influxdb     1.7.1     623f651910b3   6 years ago   238MB
3、 查看容器:docker ps
[root@demo~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3d9f0d362bb6 influxdb:1.7.1 "/entrypoint.sh infl…" 25 seconds ago Up 24 seconds 0.0.0.0:18086->8086/tcp, :::18086->8086/tcp influxdb

4、 创建数据库:

进入容器
[root@demo docker]# docker exec -it 3d9f0d362bb6 /bin/bash   
查看 influx
root@3d9f0d362bb6:/# influx
Connected to http://localhost:8086 version 1.7.1
InfluxDB shell version: 1.7.1
Enter an InfluxQL query
> show databases; -- 查看数据库
name: databases
name
----
_internal
> create database jmeter;  -- 创建数据库
> show databases;  -- 查看数据库
name: databases
name
----
_internal
jmeter
> use jmeter;  -- 查看jmeter数据库
Using database jmeter
> select * from jmeter; 
> exit -- 退出

root@3d9f0d362bb6:/#

 容器中不能使用vi 以及vim 编辑文件,因此需要:挂载文件、目录

root@3d9f0d362bb6:/# vim /etc/influxdb/influxdb.conf
bash: vim: command not found

root@3d9f0d362bb6:/# cat /etc/influxdb/influxdb.conf
[meta]
dir = "/var/lib/influxdb/meta"

[data]
dir = "/var/lib/influxdb/data"
engine = "tsm1"
wal-dir = "/var/lib/influxdb/wal"
root@3d9f0d362bb6:/# vi /etc/influxdb/influxdb.conf
bash: vi: command not found
root@3d9f0d362bb6:/#

创建配置文件和数据文件的 映射文件夹

-- 进入目录,没有找到文件夹

[root@demo docker]# cd /root/docker/influxdb  
-bash: cd: /root/docker/influxdb: No such file or directory

创建 /influxdb/conf 文件夹
[root@demo  docker]# mkdir -p ~/docker/influxdb/conf
You have new mail in /var/spool/mail/root

创建 influxdb文件夹
[root@demo docker]# mkdir -p ~/docker/influxdb/influxdb

编写配置
[root@demo docker]# vim ~/docker/influxdb/conf/influxdb.conf

[meta]
  dir = "/var/lib/influxdb/meta"
[data]
  dir = "/var/lib/influxdb/data"
  engine = "tsm1"
  wal-dir = "/var/lib/influxdb/wal"

[root@demo docker]# cat ~/docker/influxdb/conf/influxdb.conf

[root@demo docker]# cd /root/docker/influxdb/conf
[root@demo conf]# ls
influxdb.conf

[root@demo influxdb]# ls
conf influxdb

创建 数据文件

[root@demo influxdb]# mkdir -p ~/docker/influxdb/influxdb/data

文件 进行授权

[root@demo influxdb]# chmod -R 777 ~/docker/influxdb

前面启动了docker ,此时进行停止,删除

docker stop influxdb && docker rm influxdb
 1 [root@demo conf]# docker stop influxdb && docker rm influxdb
 2 influxdb
 3 influxdb
 4 [root@demo conf]# docker run --name influxdb -p 18086:8086 -v /root/docker/influxdb/conf/influxdb.conf:/etc/influxdb/influxdb.conf -v /root/docker/influxdb/influxdb:/var/lib/influxdb -v /etc/localtime:/etc/localtime -d influxdb:1.7.1
 5 b59365cd212d6e15f5f8f19221106f9216b4d551662bbba5e5f823df2eef20d6
 6 [root@demo conf]# docker ps -a
 7 CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS         PORTS                                         NAMES
 8 b59365cd212d   influxdb:1.7.1   "/entrypoint.sh infl…"   10 seconds ago   Up 9 seconds   0.0.0.0:18086->8086/tcp, :::18086->8086/tcp   influxdb
 9 [root@demo conf]# docker ps
10 CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS          PORTS                                         NAMES
11 b59365cd212d   influxdb:1.7.1   "/entrypoint.sh infl…"   13 seconds ago   Up 13 seconds   0.0.0.0:18086->8086/tcp, :::18086->8086/tcp   influxdb
12 [root@demo conf]# 

如果  docker ps,没有看到启动的容器,使用 docker ps -a 看 可以看到所有容器的状态

[root@demo data]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
574f4511a1b5 influxdb:1.7.1 "/entrypoint.sh infl…" 3 minutes ago Exited (1) About a minute ago influxdb
You have new mail in /var/spool/mail/root

如果是Exited  就是没有正常启动,使用日志命令去查看问题

[root@demo data]# docker logs influxdb
run: parse config: Near line 1 (last key parsed 'meta'): bare keys cannot contain '\u00a0'
run: parse config: Near line 1 (last key parsed 'meta'): bare keys cannot contain '\u00a0'
run: parse config: Near line 1 (last key parsed 'meta'): bare keys cannot contain '\u00a0'

上面提示meta配置文件有错误,就去修改,修改好了,停止容器,删除容器,重新启动

-------

若:auth-enabled = true 给influxdb 创建用户:

-- 进入容器  
[root@ddemo data]# docker exec -it 3d9f0d362bb6 /bin/bash
-- 进入influx
root@3d9f0d362bb6:/# influx 5 Connected to http://localhost:8086 version 1.7.1 6 InfluxDB shell version: 1.7.1 7 Enter an InfluxQL query
-- 使用 数据库
> show databases; 9 name: databases 10 name 11 ---- 12 _internal 13 jmeter
-- 创建用户密码
14 > create user "root" with password '123456' with all privileges; 15 > show databases; 16 name: databases 17 name 18 ---- 19 _internal 20 jmeter
-- 使用登录
21 > auth 22 username: root 23 password: 24 > exit 25 root@3d9f0d362bb6:/# exit 26 exit

若是没有,则创建jmeter数据库;

> show databases;
name: databases
name
----
_internal
> create database jmeter;
> show databases;
name: databases
name
----
_internal
jmeter
>

 

四、 安装grafana

 1、 拉取 镜像:docker pull grafana/grafana:6.7.3
[root@demo ~]# docker pull grafana/grafana:6.7.3
6.7.3: Pulling from grafana/grafana
4167d3e14976: Pull complete 
dd2bf2ad25d9: Pull complete 
bc3026833a3a: Pull complete 
8789bc1f4250: Pull complete 
fc931efc1e71: Pull complete 
09de0f0f5c91: Pull complete 
b9833e14e8a2: Pull complete 
763366917f49: Pull complete 
Digest: sha256:b409a69218ca5990b61e33fe00121c94b2f9b5a7ec2f3118c703454c26067020
Status: Downloaded newer image for grafana/grafana:6.7.3
docker.io/grafana/grafana:6.7.3
[root@demo~]# 

 2、 运行容器:docker run --name grafana -d -p 3001:3000 grafana/grafana:6.7.3

[root@demo ~]# docker run --name grafana -d -p 3001:3000 grafana/grafana:6.7.3
bcf1cb1020b97d249d68380db41aab97cc2078e4ecad6b78c58d3abe339ba743
You have new mail in /var/spool/mail/root
3、 查看容器:

[root@demo~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bcf1cb1020b9 grafana/grafana:6.7.3 "/run.sh" 50 seconds ago Up 48 seconds 0.0.0.0:3001->3000/tcp, :::3001->3000/tcp grafana
b59365cd212d influxdb:1.7.1 "/entrypoint.sh infl…" 40 minutes ago Up 40 minutes 0.0.0.0:18086->8086/tcp, :::18086->8086/tcp influxdb

4、 浏览器打开访问:

http://192.168.118.180:3001/login 

账号:admin  密码: admin

 导入模板;可以再这里找:https://grafana.com/grafana/dashboards/?search=jmeter

 5496 

 成功:

 

五、使用Jmeter 运行脚本,查看监控

 Jmeter 创建脚本,添加后端监听器,填写influxdb的数据

 

 

posted @ 2025-07-22 17:49  Shafir莎菲尔  阅读(186)  评论(0)    收藏  举报