[效能測試+資料採集展示分析+告警策略]Jmeter+Collectd+Influxdb+Grafana
Grafana相比graphite, 優勢非常大, 特別是配置和部署, 要簡單很多, 介面方面的體驗做得非常好, 特別是還相容graphite的資料。由於grafana僅僅只是提供介面顯示, 所以他需要從influxdb中獲取資料, 而influxdb中的資料又需要從其他地方收集過來, 常用的收集工具是collectd和telegraf, 我們選擇telegraf,collectd在這裡不做介紹, 有些資料不是太適合, 而 influxdb 自身整合 telegraf外掛, 不需要進行專門的配置。
採集資料(collectd)-> 儲存資料(influxdb) -> 顯示資料(grafana)
InfluxDB 是 Go 語言開發的一個開源分散式時序資料庫,非常適合儲存指標、事件、分析等資料
collectd C 語言寫的一個系統效能採集工具
Grafana 是純 Javascript 開發的前端工具,用於訪問 InfluxDB,自定義報表、顯示圖表等
- Jmeter是Apache組織開發的基於Java的壓力測試工具
報警:自開發shell/Python
系統效能指標圖示例:
在此採用centos+Influxdb+collectd+grafana搭建監控系統,特此說明下influxdb的0.9,0.10,0.11,0.12均不支援delect功能,0.8和0.13支援delect功能,其實最主要的區別是0.9版本和0.10版本,0.10更改了資料儲存引擎,能夠節省大量空間,查詢速度也快了很多,所以第一次安裝的話最好優先選擇0.10及以上版本,在此,個人採用0.13。
一、 Collectd
1. 下載安裝
官網下載地址:https://collectd.org/download.shtml
tar xf collectd-version.tar.bz2
cd collectd-version
./configure
make all install
yum安裝
先查詢是否已安裝epel-release ,沒有則執行yum install epel-release–y安裝;
yum install -y collectd;
2. 修改配置
vi /etc/collectd.conf
確保以下幾項的註釋(#)是去掉的
Hostname "192.168.1.126" 此處改為安裝collectd的機器IP地址
LoadPlugin cpu
LoadPlugin memory
LoadPlugin network
LoadPlugin swap
<Plugin cpu>
ReportByCpu true
ReportByState true
ValuesPercentage true 此處啟用cpu的使用率,5.7.*以上才有,低版本的不支援百分百
</Plugin>
<Plugin network>
<Server "192.168.1.222" "25826"> 此處指定將collectd收集的資料傳送到的influxdb地址和埠
Interface "enp0s31f6" 通過ifconfig獲取網路卡的名稱
</Server>
</Plugin>
3. 啟動
service collectd start
二、 InfluxDB
1. 下載安裝
下載地址:https://portal.influxdata.com/downloads
選擇InfluxDB最新版本如:v1.4.2,點選進去後選擇對應的系統版本,如:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.4.2-static_linux_amd64.tar.gz
解壓:tar xvfz influxdb-1.4.2-static_linux_amd64.tar.gz
2. 修改配置
vi influxdb.conf
找到 [http] 和 [[collectd]] 、 [[graphite]]節點,enabled改為true(預設是開啟的),bind-address修改繫結的IP和埠:
[http]
#Determines whether HTTP endpoint is enabled.
enabled= true
# The bindaddress used by the HTTP service.
bind-address= ":8086" 此處配置的IP和埠供grafana連線使用
[[collectd]]
enabled= true
bind-address = ":25826" 此處配置的IP和埠供collectd上傳資料使用
typesdb = " /usr/share/collectd/types.db" 可在安裝collectd的機器上(yum安裝預設在/usr/share/collectd目錄)拷貝過來,儲存在指定的目錄
[[graphite]]
enabled= true Jmeter通過“Backend Listener”,將測試的資料上傳到InfluxDB來儲存
database= "graphite" 指定jmeter的效能監控資料儲存的資料庫名稱
bind-address= ":2003" 此處配置的IP和埠供jmeter上傳資料使用
3. 啟動
執行 ./influxd&
啟動成功後執行./influx建立collectd 和 graphite 資料庫:
同時還要執行create database graphite 建立graphite資料供jmeter上傳資料使用;
看到圖中會出現httpd的日誌,可以修改influxdb.conf 將log-enabled 改為 false,關閉日誌列印功能;
influxdb的資料量一多,會非常影響效能,可以設定只保留5天的資料:
use collectd
create retention policy "5_days" on collectd duration 5d replication 1 default
show retention policies on collectd
InfluxDB 自帶的 collectd 外掛預設是關閉的,需要手動配置開啟 enabled = true,並填上 database = “collectd” 這一行,這裡的 “collectd” 就是我們上面建立的那個資料庫,更改配置後記得重啟 InfluxDB.
在剛安裝好的 InfluxDB 上建立一個名為 collectd 的資料庫,可以用命令列建立,也可以用 Web 管理介面操作:
三、 Jmeter
1. 下載安裝
下載地址:http://jmeter.apache.org/download_jmeter.cgi
可選擇zip包,如“apache-jmeter-3.3.zip”,下載到windows上直接解壓即可。
2. 啟動
在bin目錄,執行jmeter.bat,可開啟圖形化介面。
3. 新增測試計劃
右擊測試計劃,指向新增,展開選單後選擇Thread(Users),點選執行緒組;
右擊執行緒組,新增http請求:
輸入請求的域名或IP,新增引數
右擊測試計劃,選擇新增→監聽器→Backend Listener(用於將效能資料上傳到Influxdb)
如下圖填好相應引數:
啟動測試後,jmeter會非同步將測試的資料上傳到InfluxDB;
如果要叢集測試,linux上執行“./jmeter-server”,windows上執行jmeter-server.bat,客戶端需要在jmeter.properties上配置remote_hosts屬性,設定遠端機器的IP和埠,然後客戶端執行jmeter.bat,開啟圖形化介面,選擇執行→遠端啟動。
四、 Grafana1. 下載安裝
下載地址:https://grafana.com/grafana/download
選擇對應的系統版本,Linux通用的下載地址
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2.linux-x64.tar.gz
解壓:tar -zxvf grafana-4.6.2.linux-x64.tar.gz
2. 修改配置
http_port= 3000 管理介面的訪問埠
admin_user= admin 管理介面登入的使用者名稱
admin_password= admin 管理介面登入的密碼
type =mysql 可配置mysql、postgres、sqlite3,預設是sqlite3,第一次啟動自動建立資料庫和初始化表
host =192.168.1.222:3307 資料庫的地址和埠
name =grafana 資料庫名稱
user =root 資料庫使用者名稱
# If the password contains # or ; you have to wrap it with triple quotes. Ex"""#password;"""
password= 123456 資料庫密碼
3. 啟動
./grafana-server
瀏覽器訪問:http://ip:3000 ,輸入使用者名稱和密碼(預設admin)
4. 配置DataSource
登入Granfana管理頁面後,點選左上角的圖示,展開二級選單,點選“Data Source”進入資料來源管理頁面:
點選Add datasource新增資料來源:
按實際填好資料好,點選“Add”,成功新增會顯示“Data source is working”
5. 配置Dashboard(系統指標)
點選左上角圖示,展開二級選單,滑鼠指向Dashboards,展開右側的選單,點選New:
進入Newdashboard頁面:
點選Graph,進入如下頁面:
點選PannelTitle,然後點選Edit,出現Graph的編輯區域:
點選ToggleEdit Mode可看到生成的sql,如下:
點選Add Query,分別新增cpu的idle、system、wait資料;
在General選單項Title屬性,輸入“Cpu”;
在Axes選單項Left Y 的Unit,選擇none – percent(0-100) , 修改Y軸單位;
一個機器cpu的監控即可配置完成,如下圖:
按CTRL+S,輸入監控的機器IP,儲存設定。
點選左上角的 “Backto dashboard”返回dashboard頁面,點選“+ADDROW”,分別新增網路流量、記憶體、Swap等監控。
網路流量只能在ToggleEdit Mode模式下輸入以上SQL,單位是datarate > bytes/sec
記憶體的單位是data(IEC)> bytes
Swap的單位是data(IEC)> bytes
如果監控安裝collectd的機器與Grafana的機器時間有差異,可以在Time range修改:
新增一個新的Dashboards,配置名字Jmeter;
新增響應時間的Graph,Axes的unit設定為none:
新增TPS的Graph,Axes的unit設定為none:
Jmeter監控指標圖示例:
【參考資料】
1、基於jmeter+sysstat+influxdb+grafana+flume的效能測試平臺 - https://blog.csdn.net/weilan100/article/details/51953572
2、日誌系統的搭建(collectd + logstash + influxdb) - CSDN部落格 https://blog.csdn.net/julykobe/article/details/44002687
(rsyslog-->ELK-->logstash-->Influxdb+collectd+grafana)
3、Influxdb+collectd+grafana搭建現代化監控系統 - https://blog.csdn.net/qq_27078095/article/details/52088423
4、58.應用效能監控APM之collectd+InfluxDB+Grafana系統搭建 - CSDN部落格 https://blog.csdn.net/a464057216/article/details/53043551
5、collectd plugin:mysql - CSDN部落格 https://blog.csdn.net/jndxjing/article/details/8469328
6、grafana+influxdb+telegraf監控伺服器cpu,記憶體和硬碟 -https://blog.csdn.net/myhuashengmi/article/details/77097705
7、使用 Grafana、collectd 和 InfluxDB 打造現代監控系統_伺服器應用_Linux公社-Linux系統入口網站 https://www.linuxidc.com/Linux/2015-04/116123.htm
8、使用Zabbix和grafana來監控交換機流量-ZJ的記事本-51CTO部落格 http://blog.51cto.com/wangzhijian/2112431
9、使用Prometheus和Grafana監控Mysql伺服器效能 -https://www.cnblogs.com/tomato0906/articles/6026290.html
10、Grafana連線 ntop 資料來源 - CSDN部落格 https://blog.csdn.net/zxln007/article/details/78906082
相關文章
- Android 自動化測試及效能資料採集的 Python 指令碼AndroidPython指令碼
- 資料採集與分析的那些事——從資料埋點到AB測試
- Locust+InfluxDB+Grafana 效能測試資料視覺化展示UXGrafana視覺化
- lazada商品列表資料採集介面程式碼展示
- 效能狗(Perfdog)測試與資料分析
- lazada商品詳情資料採集介面程式碼展示
- 【資料分析】抖音商家電話採集軟體資料分析
- 效能測試之資料庫監控分析工具PMM資料庫
- tomcat日誌集中採集、分析與展示的幾種方法Tomcat
- 業務場景下資料採集機制和策略
- python採集淘寶天貓商品列表資料介面程式碼展示Python
- gRPC PHP與GO 資料增長效能測試與分析RPCPHPGo
- Kafka效能測試分析Kafka
- WebGPU效能測試分析WebGPU
- 資料分析的根基:資料採集的4大基本特徵特徵
- ViCANdo — 智慧駕駛資料採集及資料分析平臺
- 淘寶天貓店鋪所有商品資料採集介面程式碼展示
- 淘寶天貓商品評論資料採集API介面程式碼展示API
- 監控採集上報和儲存監控資料策略
- 目標檢測資料集分析
- 效能測試之資料庫監控分析工具Grafana+Prometheus資料庫GrafanaPrometheus
- clickhouse 億級資料效能測試
- 近期前端效能測試採坑總結前端
- 淺談效能測試分析
- 遊戲日誌分析2:全方位資料採集遊戲
- 業務人員怎麼做資料採集分析?
- 大資料採集之後,怎麼分析才好呢?大資料
- 效能測試之測試分析與調優
- API介面的測試步驟和返回資料展示API
- 什麼工具可以採集獨立站點資料?如何分析資料?
- elasticsearch查詢之大資料集分頁效能分析Elasticsearch大資料
- 資料採集知識分享|4大資料採集方式都有什麼?大資料
- lazada選品:lazada商品評論資料採集介面(支援多國)程式碼展示
- DDT資料驅動效能測試(一)
- 河北穩控科技振弦採集儀在岩土工程中的資料採集與分析
- 【安全告警資料分析之道:一】資料透視篇
- 效能測試連載-需求分析
- 記錄一次專案資料採集分析-NEWC資料洩漏