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語句,

  1. 查詢數據庫
    show databases;
  2. 跳轉數據庫
    use hbaseJmx;
  3. 創建數據庫
    create databse test;
  4. 查看表
    show measurements;
  5. 查詢表
    select * from test limit 1;

Grafana的使用

登陸界面

http://dev01:3000

首頁


數據源配置

圖表展示配置

所有的圖表都是在看板里配置的,先添加一個看板用來展示。

Graph配置

新建Graph

新建一個Graph並對界面進行說明

配置Graph
  1. 界面描述

  1. 配置展示數據

  1. 配置SQL

配置圖的展示規則

Table配置

新建Table

配置SQL

配置Table的展示規則
  1. Time series to rows 根據時間展示行

  1. Time seried to columns 根據時間展示列

  2. Time series aggregation 根據時間做聚合展示

  3. 對列配置規則


免責聲明!

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



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