性能測試監控: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/html

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

在講解具體的安裝步驟以前,先說說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.repoweb

[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.rpmsql

 安裝好以後 解壓
[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頁面監控)apache

能夠經過檢查端口查看是否啓動成功瀏覽器

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

若是還出現訪問不了的狀況,能夠檢查下防火牆是否關閉。如未關閉,關閉防火牆以後 再嘗試。less

  

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

下載後的安裝
一、運行 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

 

 

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

四、而後啓動便可/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便可使用

 

 

 

 

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

相關文章
相關標籤/搜索