性能測試監控:Jmeter +InfluxDB +collectd +Grafana(十六)


虛擬機ip 192.168.180.128

  

Influxdb

Influxdb是一個開源的分布式時序、時間和指標數據庫,使用go語言編寫,無需外部依賴。
它有三大特性:
  1. 時序性(Time Series):與時間相關的函數的靈活使用(諸如最大、最小、求和等);
  2. 度量(Metrics):對實時大量數據進行計算;
  3. 事件(Event):支持任意的事件數據,換句話說,任意事件的數據我們都可以做操作。
同時,它有以下幾大特點:
  1. schemaless(無結構),可以是任意數量的列;
  2. min, max, sum, count, mean, median 一系列函數,方便統計;
  3. Native HTTP API, 內置http支持,使用http讀寫;
  4. Powerful Query Language 類似sql;
  5. Built-in Explorer 自帶管理工具。

Influxdb安裝

官方安裝文檔:https://docs.influxdata.com/influxdb/v1.4/introduction/installation/

官網:https://portal.influxdata.com/downloads

在講解具體的安裝步驟之前,先說說influxdb的兩個http端口:8083和8086
 
 
 
 
  • port 8083:管理頁面端口,訪問localhost:8083可以進入你本機的influxdb管理頁面;
  • port 8086:http連接influxdb client端口,一般使用該端口往本機的influxdb讀寫數據。
 
           

1. 安裝InfluxDB(方式一,官方文檔安裝方式)

 
           

新建InfluxDB下載源

輸入  cat << EOF | tee /etc/yum.repos.d/influxdb.repo

[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

使用yum下載InfluxDB

yum install -y influxdb
 
          

2. 安裝InfluxDB(方式二)

下載rpm包

wget https://s3.amazonaws.com/influxdb/influxdb-race-nightly-1.x86_64.rpm

 安裝好之后 解壓
[root@Lamw usr]# rpm -ivh influxdb-race-nightly-1.x86_64.rpm
如果提示
chown: cannot access `/var/lib/influxdb': No such file ordirectory
chown: cannot access `/var/log/influxdb': No such file ordirectory
就先建立目錄然后再安裝
[root@Lamw usr]#  mkdir -p /var/lib/influxdb
[root@Lamw usr]#  mkdir -p /var/log/influxdb
   查看rpm -qa|grep influxdb     安裝成功與否 
 然后  rpm -ql influxdb-1.4.2-1.x86_64 查看安裝路徑 

 

 這邊因為 按照網上教程說的/etc/init.d/influxdb start  啟動  小七這邊 沒有init.d這個目錄(貌似是因為官方1.4版本的移除了web頁面)     可忽略這句
所以按照上面的方式找到了啟動路徑
 發現  /usr/lib/influxdb/scripts/influxdb.service   這里有個啟動路徑
然后進入到 scripts 目錄下  cat 查看這個啟動文件

 執行啟動命令 /usr/bin/influxd -config /etc/influxdb/influxdb.conf $INFLUXD_OPTS       (2019-09-05再次安裝后發現,先執行下面第三步的“修改配置”,再啟動。即可成功訪問)

打開瀏覽器,訪問虛擬機IP“http://192.168.180.128:8086/”

啟動成功之后 會發現 訪問的時候 提示 404 page not found 不用着急 因為只部署一個influxdb是無法在web頁面監控到的(官方1.2以上都移除了web頁面監控)

可以通過檢查端口查看是否啟動成功

[root@Lamw scripts]#  netstat -tlnpu |grep influxd

如果還出現訪問不了的情況,可以檢查下防火牆是否關閉。如未關閉,關閉防火牆之后 再嘗試。

  

3. 修改配置

修改InfluxDB的配置,主要配置jmeter存儲的數據庫與端口號,還有需要將UI端口開放,   找到 [http] 、 [[graphite]]節點,enabled改為true(默認是開啟的),bind-address修改綁定的IP和端口:

[root@Lamw ~]# vi /etc/influxdb/influxdb.conf
 
# 找到graphite並且修改它的庫與端口
[[graphite]]
  enabled = true
  database = "jmeter"
  bind-address = ":2003"
  protocol = "tcp"
  consistency-level = "one"
原圖:
修改如下:

 
           

 # [http]

       #Determines whether HTTP endpoint is enabled.

       enabled= true      

       # The bindaddress used by the HTTP service.

       bind-address= ":8086"          此處配置的IP和端口供grafana連接使用


 修改后
# 找到admin,將前面的#號去掉,開放它的UI端口
[admin]
  # Determines whether the admin service is enabled.
  enabled = true

  # The default bind address used by the admin service.
  bind-address = ":8083"

  # Whether the admin service should use HTTPS.
  # https-enabled = false

  # The SSL certificate used when HTTPS is enabled.
  # https-certificate = "/etc/ssl/influxdb.pem

  

配置完了之后:

啟動InfluxDB

[root@localhost ~]# influx

 

查看數據庫

show databases

創建數據庫

create database "jmeter"

創建influxdb數據庫,數據庫名稱是jmeter

切換數據庫

use jmeter

 

上面的 show database報錯是因為打錯了了, 應該是show databases

 

 

 

 

 

4. 安裝collectd(可有可無,小七裝了之后沒啟用)

# yum install epel-release -y
# yum install -y collectd

啟動collectd:

# service collectd start # service collectd status

5. 安裝Grafana

使用yum下載Grafana並且安裝

yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm



2019-09-05 更新的最新下載地址 wget https://dl.grafana.com/oss/release/grafana-6.3.5-1.x86_64.rpm
Grafana 官網 https://grafana.com/grafana/download

下載后的安裝
1、運行 rpm -ivh grafana-6.3.5-1.x86_64.rpm
報錯:warning: grafana-6.3.5-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
error: Failed dependencies:
	urw-fonts is needed by grafana-6.3.5-1.x86_64

 

 

2、執行 yum install -y urw-fonts
3、再進行第一步的運行rpm -ivh grafana-6.3.5-1.x86_64.rpm

4、然后啟動即可/etc/init.d/grafana-server restart

 

 

  

  

 

啟動Grafana

[root@Lamw usr]# /etc/init.d/grafana-server restart

  

打開瀏覽器,訪問虛擬機IP“http://192.168.180.128:3000

輸入用戶名,密碼登錄系統。用戶名與密碼都是"admin"

添加需要展示數據的數據庫(配置InfluxDB )

添加InfluxDB數據庫配置。輸入帳號密碼“admin / admin”,點擊“add”添加之后點擊“Test & Save” 提示“Success”說明成功了

PS:2019-09-05更新內Grafana的版本更新后,部分內容更新了 如下圖

  

 

 

【注意】URL的端口是8086,而剛才配置的8083是UI的端口。

    - 8083端口是InfluxDB的UI界面展示的端口

    - 8086端口是Grafana用來從數據庫取數據的端口

    - 2003端口則是剛剛設置的,Jmeter往數據庫發數據的端口

 

 

6. 下面來配置JMeter

1. jmeter中,添加“監聽器 -> Backend Listener”

  

 

 

順便添加個http請求

能正常跑通之后,即可在Grafana中查看到數據,下面來配置Grafana從數據庫中讀取數據來展示

7. 配置Grafana

添加一個展示項目

點擊“Home -> New”

  

 

 

添加一個圖表

點擊旁邊的綠點“Add Panel -> Graph”

  

配置圖表

配置好了,就能看到圖了。如果看不到圖,請用Jmeter多發幾次請求。下圖中選擇監控的選項,可以在Jmeter的官網上查看到對應的解釋。

  

點擊Edit設置需要展示的數據 比如 tps 線程數  rt cpu ......等等

  

 

 

名稱 描述
jmeter.all.h.count 所有請求的TPS
jmeter.<請求名稱>.h.count 對應<請求名稱>的TPS
jmeter.all.ok.pct99 99%的請求響應時間
jmeter.<請求名稱>.ok.pct99 對應<請求名稱>99%的請求響應時間
jmeter.all.test.startedT 線程數

 

 

【注意】如果要監控<請求名稱>的話,Jmeter上的“Backend Listener”修改如下參數

1. 將“summanyOnly”修改成False,

2. 將“userRegexpForSamplersList”修改成True,

3. 並且要設置“samplersList”的值,“samplersList”是可以支持正則表達式的,“samplersList”的設置要與請求對應,否則找不到該請求。如圖

設置好了,運行一下,在Grafana里面,就可以看到自己的請求了

 

 Jmeter的官網地址去查看閱讀“http://jmeter.apache.org/usermanual/realtime-results.html” 詳細了解更多監控信息

 

Graph里面的選項有:

    General(常規選擇)、Metrics(指標)、Axes(坐標軸)、Legend(圖例)、 Display(顯示樣式)、Time range(時間范圍)

Genera(常規選擇):添加圖形標題,圖形寬度高度等

    Title:儀表板上的面板標題

    Span:列在面板中的寬度

    Height:面板內容高度(以像素為單位)

鑽取/詳細信息鏈接(Drilldown / detail link)

    鑽取部分允許添加動態面板的鏈接,可以鏈接到其他儀表板或URL。

    每個鏈接都有一個標題,一個類型和參數。鏈接可以是 dashboard或 absolute鏈接。如果它是一個儀表板鏈接, dashboard值必須是一個儀表板的名字。如果這是一個 absolute鏈接,是URL鏈接的URL。

    params允許添加額外的URL參數的鏈接。格式是 name=value與多個參數分開,當鏈接到另一個儀表板使用模板變量,你可以使用 var-myvar=value填充模板變量的期望值鏈接。

 

Metrics(指標)

    定義了來源數據的呈現,每個數據源都提供不同的選擇。面板的來源數據通過group,host,application,item從zabbix中獲得。

Axes(坐標軸)

    用於坐標軸和網格的顯示方式,包括單位,比例,標簽等。

Left Y和 Right Y可以定制使用,因其中的可選參數太多,請在使用的時候參考官方文檔

Legend(圖例):圖例展示

    圖例的參數:

    Total:返回所有度量查詢值的總和

    Current:返回度量查詢的最后一個值

    Min:返回最小的度量查詢值

    Max:返回最大的度量查詢值

    Avg:返回所有度量查詢的平均值

    Decimals:控制Legend值的多少,以小數顯示懸浮工具提示(圖)

    Grafana 中Legend值的計算取決於你使用的度量查詢方式和什么樣類型的聚合或合並點來實現的,所有上述所說的值在同一時間可能都是不正確的。例如,如果你是每秒請求一次,這可能是使用平均值來作為一個整合,然而這個Legend值不會代表請求的總數。這只是Grafana收到的所有數據點的總和。

 

Display(顯示樣式)

    顯示樣式的控件屬性圖如下:

圖表模式(Draw Modes)

Bar:一個條形圖顯示值

Lines:顯示線圖值

 Points:顯示點值

選擇模式(Mode Options)

Fill:系列的顏色填充,0是沒有。

Line Width:線的寬度。

 Staircase:樓梯狀顯示。

    如果有多個選擇項,它們可以作為一個群體顯示。

疊加和空值(Stacking & Null value)

Stack:每個系列是疊在另一個之上

Null value:空值

    如果你啟用了堆棧可以選擇應該顯示鼠標懸停功能。

Time range(時間范圍)

 

更多Grafana功能請查閱官方文檔....https://grafana.com/grafana

 

 

2019-09-06補充更新

最近 重新部署這套面板,發現更新了挺多內容

https://grafana.com/grafana/dashboards?search=jmeter

 目前界內很多大佬都有上傳自己研發的一套監控體系,看以從儀表盤下載對應的需求的儀表盤進行監控,同時可以從中優化 添加時候自己工作業務需要的監控

 

這里有一點需要注意的,如果需要執行的是NON-GUI模式的性能壓測,命令執行之后,在Grafana無法獲取壓測結果數據

 

 所以需要在jmeter下載一個插件 (下圖中的也是依賴插件)

鏈接: https://pan.baidu.com/s/1U387s1d-BoMvfh1IjSK_2g 提取碼: xsiw 

 

 

直接到 Available Plugins去搜索下載,因為我這里下載了 所以高亮顯示在 INstalled Plugins

如果下載比較慢的 也可以通過網盤下載

鏈接: https://pan.baidu.com/s/1QKpEbEbSai5lKriXPN8TBw 提取碼: ts36 

 

上面2個插件下載后,直接放到 jmeter路徑下的\lib\ext 目錄下即可 重啟jmeter即可使用

 

 

 

 

 裝好之后,執行命令壓測..后續問題還在調試中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM