hbase 監控指標項


名詞解釋

JMX:Java Management Extensions,用於用於Java程序擴展監控和管理項
GC:Garbage Collection,垃圾收集,垃圾回收機制

指標項來源

主機名 url
192.168.20.10 http://192.168.20.10:60010/jmx
192.168.20.11 http://192.168.20.11:16030/jmx
192.168.20.12 http://192.168.20.12:16030/jmx

hbase監控項

Hadoop 系統都提供了豐富的 JMX 監控項,所以我們可以直接從 HBase 系統本身提供的 JMX 信息獲取我們需要的監控項。 HBase 提供的 JMX 信息的 web 頁面,地址就是 http://host:60010/jmx , JMX web頁面的數據格式是 json 格式。

主機基本監控項

CPU,內存,磁盤,網絡 主機四大基本監控項,這4項機器監控保證我們運行我們HBase集群的機器是正常的。

數據來源

在集群的每個機器上均能獲得以下數據,分別記錄每個機器的數據。

{
    "name" : "java.lang:type=OperatingSystem",
    "description" : "Information on the management interface of the MBean",
    "modelerType" : "sun.management.OperatingSystemImpl",
    "OpenFileDescriptorCount" : 377,
    "MaxFileDescriptorCount" : 1048576,
    "CommittedVirtualMemorySize" : 4034031616,
    "TotalSwapSpaceSize" : 0,
    "FreeSwapSpaceSize" : 0,
    "ProcessCpuTime" : 21960000000,
    "FreePhysicalMemorySize" : 1889230848,
    "TotalPhysicalMemorySize" : 8370974720,
    "SystemCpuLoad" : 0.6198521647307286,
    "ProcessCpuLoad" : 0.00791974656810982,
    "Name" : "Linux",
    "Arch" : "amd64",
    "SystemLoadAverage" : 1.02,
    "AvailableProcessors" : 4,
    "Version" : "4.4.0-131-generic",
    "ObjectName" : "java.lang:type=OperatingSystem"
  }

指標項說明

指標項 說明
FreePhysicalMemorySize 空閑物理內存大小
ProcessCpuLoad 進程cpu使用率
SystemCpuLoad 系統cpu使用率
AvailableProcessors 處理器核數

JVM監控項

HBase 集群涉及的系統 HDFS,HBase,ZooKeeper都是用 Java 編寫的,運行在 JVM 中,必須采集 JVM 相關的監控項。
Hbase 中對於 JVM 的監控數據,主要是 JvmMetrics 的對象來進行的。

數據來源

在集群的每個機器上均能獲得以下數據,分別記錄每個機器的數據。

{
    "name" : "Hadoop:service=HBase,name=JvmMetrics",
    "modelerType" : "JvmMetrics",
    "tag.Context" : "jvm",
    "tag.ProcessName" : "Master",
    "tag.SessionId" : "",
    "tag.Hostname" : "dev01",
    "MemNonHeapUsedM" : 53.011223,
    "MemNonHeapCommittedM" : 53.996094,
    "MemNonHeapMaxM" : -9.536743E-7,
    "MemHeapUsedM" : 30.099304,
    "MemHeapCommittedM" : 121.8125,
    "MemHeapMaxM" : 1962.75,
    "MemMaxM" : 1962.75,
    "GcCountParNew" : 17,
    "GcTimeMillisParNew" : 116,
    "GcCountConcurrentMarkSweep" : 1,
    "GcTimeMillisConcurrentMarkSweep" : 12,
    "GcCount" : 18,
    "GcTimeMillis" : 128,
    "ThreadsNew" : 0,
    "ThreadsRunnable" : 19,
    "ThreadsBlocked" : 0,
    "ThreadsWaiting" : 51,
    "ThreadsTimedWaiting" : 16,
    "ThreadsTerminated" : 0,
    "LogFatal" : 0,
    "LogError" : 0,
    "LogWarn" : 0,
    "LogInfo" : 0
  }

指標項說明

JvmMetrics 主要統計的信息包括:內存的使用狀態信息; GC 的統計信息;線程的統計信息;以及事件的統計信息。

類型 指標項 說明
內存 MemNonHeapUsedM JVM 當前已經使用的 NonHeapMemory 的大小
內存 MemNonHeapMaxM JVM 配置的 NonHeapMemory 的大小
內存 MemHeapUsedM JVM 當前已經使用的 HeapMemory 的大小
內存 MemHeapMaxM JVM 配置的 HeapMemory 的大小
內存 MemMaxM JVM 運行時的可以使用的最大的內存的大小
GC GcCountParNew 新生代GC次數
GC GcTimeMillisParNew 新生代GC耗時(ms)
GC GcCountConcurrentMarkSweep 老年代GC次數
GC GcTimeMillisConcurrentMarkSweep 老年代GC耗時
線程 ThreadsNew 當前線程的處於 NEW 狀態下的線程數量
線程 ThreadsRunnable 當前線程的處於 RUNNABLE 狀態下的線程數量
線程 ThreadsBlocked 當前線程的處於 BLOCKED 狀態下的線程數量
線程 ThreadsWaiting 當前線程的處於 WAITING 狀態下的線程數量
線程 ThreadsTimedWaiting 當前線程的處於 TIMED_WAITING 狀態下的線程數量
線程 ThreadsTerminated 當前線程的處於 TERMINATED 狀態下的線程數量
事件 LogFatal 固定時間間隔內的 Fatal 的數量
事件 LogError 固定時間間隔內的 Error 的數量
事件 LogWarn 固定時間間隔內的 Warn 的數量
事件 LogInfo 固定時間間隔內的 Info 的數量

HBase集群各系統存活監控項

HBase集群各個系統的進程是否存活是必須也是最基本的監控項。具體有hmaster;regionserver;namenode;datanode;journalnode;zkfc;zookeeper的存活監控。具體判斷存活的方式我們可以去判斷各系統相應的進程是否存在,也可以去判斷各系統的web頁面或者jmx頁面是否正常。

master監控

數據來源

地址:http://192.168.20.10:60010/jmx?qry=Hadoop:service=HBase,name=Master,sub=Server

{
    "name" : "Hadoop:service=HBase,name=Master,sub=Server",
    "modelerType" : "Master,sub=Server",
    "tag.liveRegionServers" : "dev02,16020,1539595528256;dev03,16020,1539595527594",
    "tag.deadRegionServers" : "",
    "tag.zookeeperQuorum" : "dev03:2181,dev02:2181",
    "tag.serverName" : "dev01,16020,1539595524290",
    "tag.clusterId" : "0cef1691-05bd-47cd-9a76-1c3abb8e56bf",
    "tag.isActiveMaster" : "true",
    "tag.Context" : "master",
    "tag.Hostname" : "dev01",
    "masterActiveTime" : 1539595528498,
    "masterStartTime" : 1539595524290,
    "averageLoad" : 19.5,
    "numRegionServers" : 2,
    "numDeadRegionServers" : 0,
    "clusterRequests" : 203
  }

指標項說明

指標項 說明
tag.liveRegionServers 活動的region
tag.deadRegionServers 停止的region

regionserver監控

JMX全稱是Java Management Extensions,用於用於Java程序擴展監控和管理項。而許多Hadoop系統都提供了豐富的JMX監控項,所以我們可以直接從HBase系統本身提供的JMX信息獲取我們需要的監控項。HBase提供的JMX信息的web頁面,地址就是 http://your_hmaster:60010/jmx,JMX web頁面的數據格式是json格式。由於信息比較多,也提供了一個qry=name的方式獲取具體某一項所需的數據,例如:http://namenode:50070/jmx?qry=hadoop:service=NameNode,name=NameNodeInfo只收集nameinfo相關的數據。 所以我們可以用多線程或多進程同時采集多個指標項,同時也要注意在每個線程處理的時候數據應該是異步的,否則同步可能導致某一個指標項采集阻塞, 使得之后的所有指標項在一個采集周期內無法正常返回數據。

數據來源

每個表每個region的數據

在每個regionserver的jmx頁面均可獲取到該數據
地址:
http://192.168.20.11:16030/jmx?qry=Hadoop:service=HBase,name=RegionServer,sub=Regions
http://dev03:16030/jmx?qry=Hadoop:service=HBase,name=RegionServer,sub=Regions

{
    "name" : "Hadoop:service=HBase,name=RegionServer,sub=Regions",
    "modelerType" : "RegionServer,sub=Regions",
    "tag.Context" : "regionserver",
    "tag.Hostname" : "dev02",
    "Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_storeCount" : 1,
    "Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_storeFileCount" : 0,
    "Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_memStoreSize" : 408,
    "Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_storeFileSize" : 0,
    "Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_compactionsCompletedCount" : 0,
    "Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_numBytesCompactedCount" : 0,
    "Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_numFilesCompactedCount" : 0,
    "Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_storeCount" : 1,
    "Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_storeFileCount" : 0,
    "Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_memStoreSize" : 408,
    "Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_storeFileSize" : 0,
    "Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_compactionsCompletedCount" : 0,
    "Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_numBytesCompactedCount" : 0,
    "Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_numFilesCompactedCount" : 0
}
每個regionserver的監控數據

地址:
http://192.168.20.11:16030/jmx
http://192.168.20.12:16030/jmx
大致分為server、IPC、WAL、Memory、MemoryPool四類,數據較長,以下僅展示一部分

{
    "name" : "Hadoop:service=HBase,name=RegionServer,sub=Server",
    "modelerType" : "RegionServer,sub=Server",
    "tag.zookeeperQuorum" : "dev03:2181,dev02:2181",
    "tag.serverName" : "dev02,16020,1539696865983",
    "tag.clusterId" : "0cef1691-05bd-47cd-9a76-1c3abb8e56bf",
    "tag.Context" : "regionserver",
    "tag.Hostname" : "dev02",
    "regionCount" : 20,
    "blockCacheFreeSize" : 400221160,
    "blockCacheCount" : 2,
    "blockCacheSize" : 413528,
    "blockCacheHitCount" : 3,
    ...
  }
{
    "name" : "Hadoop:service=HBase,name=RegionServer,sub=IPC",
    "modelerType" : "RegionServer,sub=IPC",
    "tag.Context" : "regionserver",
    "tag.Hostname" : "dev02",
    "queueSize" : 0,
    "numCallsInGeneralQueue" : 0,
    "numCallsInReplicationQueue" : 0,
    ...
  }{
    "name" : "java.lang:type=Memory",
    "modelerType" : "sun.management.MemoryImpl",
    "ObjectPendingFinalizationCount" : 0,
    "HeapMemoryUsage" : {
      "committed" : 62849024,
      "init" : 65011712,
      "max" : 1001586688,
      "used" : 27014176
    },
    ...
  }
{
    "name" : "Hadoop:service=HBase,name=RegionServer,sub=WAL",
    "modelerType" : "RegionServer,sub=WAL",
    "tag.Context" : "regionserver",
    "tag.Hostname" : "dev02",
    "AppendSize_num_ops" : 20,
    "AppendSize_min" : 130,
    ...
  }
    "name" : "java.lang:type=MemoryPool,name=Par Survivor Space",
    "modelerType" : "sun.management.MemoryPoolImpl",
    "Valid" : true,
    "Name" : "Par Survivor Space",
    "Type" : "HEAP",
    "Usage" : {
      "committed" : 2162688,
      "init" : 2162688,
      "max" : 34406400,
      "used" : 146208
    },
    ...
  }{
    "name" : "java.lang:type=MemoryPool,name=Par Eden Space",
    "modelerType" : "sun.management.MemoryPoolImpl",
    "Valid" : true,
    "Name" : "Par Eden Space",
    "Type" : "HEAP",
    "Usage" : {
      "committed" : 17301504,
      "init" : 17301504,
      "max" : 275775488,
      "used" : 14569520
    },
    ...
  }{
    "name" : "java.lang:type=MemoryPool,name=CMS Old Gen",
    "modelerType" : "sun.management.MemoryPoolImpl",
    "Valid" : true,
    "Name" : "CMS Old Gen",
    "Type" : "HEAP",
    "Usage" : {
      "committed" : 43384832,
      "init" : 43384832,
      "max" : 691404800,
      "used" : 12108656
    },
    ...
  }

指標項說明

每個表每個region的的指標項說明

第一個xxx代表namespace名
第二個xxx代表表名
第三個xxx代表region的ID

指標項 說明
Namespace_xxx_table_xxx_region_xxx_metric_storeCount Store個數
Namespace_xxx_table_xxx_region_xxx_metric_storeFileCount StoreFile個數
Namespace_xxx_table_xxx_region_xxx_metric_memStoreSize
Namespace_xxx_table_xxx_region_xxx_metric_storeFileSize
Namespace_xxx_table_xxx_region_xxx_metric_compactionsCompletedCount 合並完成次數
Namespace_xxx_table_xxx_region_xxx_metric_numBytesCompactedCount 合並文件總大小
Namespace_xxx_table_xxx_region_xxx_metric_numFilesCompactedCount 合並完成文件個數
每個regionserver的指標項說明

MemoryPool 值,比如 Par Eden Space 、CMS Perm Gen、Par Survivor Space、CMS Old Gen、Code Cache

指標項 類型 說明
regionCount Server Regionserver管理region數量
memStoreSize Server Regionserver管理的總memstoresize
storeFileSize Server Regionserver管理的storefile大小
staticIndexSize Server regionserver所管理的表索引大小
storeFileCount Server regionserver所管理的storefile個數
hlogFileSize Server WAL文件大小
hlogFileCount Server WAL文件個數
storeCount Server regionserver所管理的store個數
storeFileCount Server regionserver所管理的storefile個數
totalRequestCount Server 總請求數
readRequestCount Server 讀請求數
writeRequestCount Server 寫請求數
compactedCellsCount Server 合並cell個數
majorCompactedCellsCount Server 大合並cell個數
flushedCellsSize Server flush到磁盤的大小
splitRequestCount Server region分裂請求次數
splitSuccessCount Server region分裂成功次數
slowGetCount Server 請求完成時間超過1000ms的次數
numOpenConnections IPC 該regionserver打開的連接數
numActiveHandler IPC rpc handler數
receivedBytes IPC 收到數據量
sentBytes IPC 發出數據量
SyncTime_mean WAL WAL寫hdfs的平均時間
HeapMemoryUsage>>used Memory 堆內存使用量
Par Survivor Space>>CollectionUsage>>used MemoryPool Survivor內存大小
Par Eden Space>>CollectionUsage>>used MemoryPool Eden區使用空間大小
CMS Old Gen>>CollectionUsage>>used MemoryPool 老年代內存大小

hbase監控工具

hbase原生支持ganglia,如果發送給zabbix,需要自己開發獲取其中的數據,解析出來。數據的格式一般是最外層一個beans的key,里面的value是一個jsonarray。arrayobject里面可能包含jsonobjec或者jsonarray。
目前測試集群使用jmxtrans+influxdb+granafa套件監控。
監控地址:http://dev01:3000/login

原文鏈接:
https://www.cnblogs.com/fengzzi/p/10033728.html
其他借鑒:
https://www.jianshu.com/p/5623026b1dd2


免責聲明!

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



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