需求說明
隨着大數據組件的日益完善,需要隨時隨地保持各個組件的日常運行,對各個組件的監控勢在必行。為了減少運維部門的負擔,通過篩選,我們使用 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的使用
登陸界面
首頁
數據源配置
圖表展示配置
所有的圖表都是在看板里配置的,先添加一個看板用來展示。
Graph配置
新建Graph
新建一個Graph並對界面進行說明
配置Graph
- 界面描述
- 配置展示數據
- 配置SQL
配置圖的展示規則
Table配置
新建Table
配置SQL
配置Table的展示規則
- Time series to rows 根據時間展示行
-
Time seried to columns 根據時間展示列
-
Time series aggregation 根據時間做聚合展示
-
對列配置規則