jmxtrans + influxdb + granafa 監控套件使用手冊
需求說明
隨著大資料元件的日益完善,需要隨時隨地保持各個元件的日常執行,對各個元件的監控勢在必行。為了減少運維部門的負擔,通過篩選,我們使用 jmxtrans + influxdb + granafa 套件對各個元件進行監控。
Jmxtrans:JMX可以對外暴露jvm內部的一些指標,但是要獲取那些jvm的內部資訊,就還需要自己寫java程式呼叫jmx介面去獲取資料,並按照某種格式傳送到其他地方(如監控程式Graphite,Zabbix等)。這時jmxtrans就派上用場了,jmxtrans的作用是自動去jvm中獲取所需要的jmx資料,並按照某種格式(json檔案配置格式)輸出到其他應用程式。
- InfluxDb:InfluxDB是一個開源的沒有外部依賴的時間序列資料庫。適用於記錄度量,事件及執行分析。內建HTTP API,所以不用再寫服務端程式碼來啟動和執行。資料可以被標記,允許非常靈活的查詢。類似SQL的查詢語言安裝和管理簡單,資料輸入和輸出速度快。它旨在實時響應查詢。這意味著point資料寫入即被索引並立即可供響應時間應小於100ms的查詢使用。
Grafana:Grafana是一個視覺化面板(Dashboard),有著非常漂亮的圖表和佈局展示,功能齊全的度量儀表盤和圖形編輯器,支援Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作為資料來源。Grafana主要特性:靈活豐富的圖形化選項;可以混合多種風格;支援白天和夜間模式;多個數據源。
適用人群
- 管理層人員
- 資料部門人員
- 運維部門人員
- 其他想要學習此類知識的人員
監控套件架構圖
登入網址
環境 | 網址 |
---|---|
資料組測試叢集 | http://dev01:3000 |
jmxtrans的使用
配置資料來源
Jmxtrans 元件會讀取 /var/lib/jmxtrans 目錄下所有資料來源配置檔案(json格式檔案),實時從資料來源中獲取資料,解析資料後儲存到 InfluxDb 中。
以下是資料來源配置例子:
{ "servers":[ { "port":"10102", "host":"192.168.20.11", "queries":[ { "obj":"Hadoop:service=HBase,name=JvmMetrics", "attr":[ "GcCount" ], "resultAlias":"GcCount", "outputWriters":[ { "@class":"com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory", "url":"http://192.168.20.10:8086/", "username":"admin", "password":"111111", "database":"hbaseJmx", "tags" : {"JVM" : "GcCount"} } ] } ] } ] }
資料項說明:
名稱 | 描述 | 型別 |
---|---|---|
servers | 資料來源配置 | 陣列 |
port | 接收jmx的json資料的埠 | 字串 |
host | 接收jmx的json資料的IP地址 | 字串 |
queries | 解析json的規則 | 陣列 |
obj | http://192.168.20.10:60010/jmx?qry=xxx 中的xxx | 字串 |
attr | 需要儲存的指標項欄位,該欄位名是資料目標表的欄位名 | 陣列 |
resultAlias | InfluxDb 中的表名 | 字串 |
outputWriters | 資料目的地( InfluxDb ) | 陣列 |
@class | 資料目的地( InfluxDb )的類 | 字串 |
url | 資料目的地( InfluxDb )的url | 字串 |
username | InfluxDb登入名 | 字串 |
password | InfluxDb密碼 | 字串 |
database | InfluxDb資料庫名(需要預先創好) | 字串 |
tags | 避免指標項在 InfluxDb 表中所對應的欄位重名的情況 | json |
啟動配置項
啟動指令碼
/usr/share/jmxtrans/bin/jmxtrans.sh start
配置項修改
sudo vim /usr/share/jmxtrans/bin/jmxtrans.sh
SECONDS_BETWEEN_RUNS=${SECONDS_BETWEEN_RUNS:-"60"} #資料獲取間隔,秒級
HARDKILL_THRESHOLD=${HARDKILL_THRESHOLD:-60}
InfluxDb的使用
InfluxDb原先有web介面,但是這個web管理介面在1.1以後的版本中被刪除。
啟動指令碼
啟動指令碼
sudo service influxdb start
停止指令碼
sudo service influxdb stop
啟動influxDb shell
influx
shell指令碼
查詢語句高度類似於SQL語句,
- 查詢資料庫
show databases;
- 跳轉資料庫
use hbaseJmx;
- 建立資料庫
create databse test;
- 查看錶
show measurements;
- 查詢表
select * from test limit 1;
Grafana的使用
登陸介面
http://dev01:3000
首頁
資料來源配置
圖表展示配置
所有的圖表都是在看板裡配置的,先新增一個看板用來展示。
Graph配置
新建Graph
新建一個Graph並對介面進行說明
配置Graph
- 介面描述
- 配置展示資料
- 配置SQL
配置圖的展示規則
Table配置
新建Table
配置SQL
配置Table的展示規則
- Time series to rows 根據時間展示行
Time seried to columns 根據時間展示列
Time series aggregation 根據時間做聚合展示
對列配置規則