1. 問題
在 linux 服務器或遠程服務器上,安裝 Jmeter,打不開 Jmeter 的 GUI 界面。
環境:
- linux 服務器
- mac 電腦
需求:在遠程服務器中,啟動 jmeter(./bin/jmeter &)后,在 mac 電腦可展示 Jmeter 的 GUI 界面,即:在本地展示遠程服務器上的圖形界面。
步驟:
在遠程服務器中,下載 jmeter 的 zip 包,并解壓后,運行 jmeter(./bin/jmeter &),報錯如下:
常見的報錯日志如下:
報錯 1:
No X11 DISPLAY variable was set
說明:linux環境需要圖像界面,配置DISPLAY
報錯 2:
Can't connect to X11 window server using '100.99.98.97:10.0' as the value of the DISPLAY variable
說明:X-client 客戶端未配置 SSH X11 轉發
根據報錯日志,錯誤提示主要集中于:X11 和 DISPLAY 配置。
2. 原因和解決方法
說明原因:
linux 操作系統,區別于 windows 有內嵌的圖形用戶界面 GUI,linux 注重命令行模式 CLI,沒有 GUI。
linux 操作系統,分為內核、應用程序,其中,內核是 linux 操作系統自帶的系統程序,其他應用程序,比如:圖形用戶界面等,需要用戶自行安裝。
如果要展示 linux 上的圖形,需要使用 X11 轉發。
X11 支持將遠程服務器上的圖形,展示在本地。X11 是 C/S 模式,遠程服務器是 X11 的客戶端,負責發起請求;本地機器是 X11 的服務器端,復雜渲染圖形、接收鍵盤鼠標輸入。
所有的操作和配置,都是圍繞這 2 個目的進行:
- linux 服務器安裝、支持圖形界面應用程序;
- 連接 linux 服務器的圖形界面和本地,即:將 linux 服務器中需要展示的圖形,轉發到本地 mac 電腦上。
以下是配置 X11 的步驟:
2.1 X11 服務器端
1. 安裝 XQuartz 應用程序,mac 專用 X-server 應用程序;
2. ssh 登陸遠程服務器,-X 表示強制信任轉發
ssh -X -Y root@遠程服務器IP
2.2 X11 客戶端
1. 切換到 root 賬號
2. 安裝圖形界面程序,比如:Xorg
yum -y install xorg-x11-xauth xorg-x11-server-utils xorg-x11-server-Xnest libXtst
3.?打開 ssh 配置文件:/etc/ssh/sshd_config,修改配置,并重新運行
# 第1步:修改配置
X11Forwarding yes
X11UseLocalhost yes# 第2步:重啟運行
sudo systemctl restart sshd
4.?配置 DISPLAY 變量,DISPLAY 變量,會連接 X11 的客戶端和服務器端,即:告知 X11 客戶端,其圖形展示的位置
# 當前終端配置,關閉終端后,DISPLAY變量不存在;IP為本地mac的IP地址,或直接為localhost
export DISPLAY=IP:10.0
# 或
export DISPLAY=localhost:10.0# 推薦方式:永久生效,添加在配置文件中,vim /etc/bash_profile
export DISPLAY=localhost:10.0
# 執行,配置生效
source /etc/bash_profile# 可查看DISPLAY變量
echo $DISPLAY
5. 驗證和測試:
xclock # 顯示時鐘
xeyes # 顯示眼睛
以上驗證和測試通過后,可在遠程服務器打開 Jmeter 的 GUI 方式,即:./bin/jmeter &
,會看到在本地打開了 XQuartz 應用程序,隨即 jmeter 的 GUI 界面打開。
需要說明的是:在使用 Jmeter 的 GUI 方式時,主要用于調試配置,在實際壓測過程中,使用的是非 GUI 方式直接壓測 jmx 文件。
以上通過 X11 轉發,在本地展示遠程服務器圖形的方法,不僅適用于 jmeter 的圖形界面,也適用于其他的圖形界面,比如:打開遠程服務器的 Pycharm 的 GUI 界面等。