名词解释

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

Hbase监控指标项的更多相关文章

  1. hbase 监控指标项

    名词解释 JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项 GC:Garbage Collection,垃圾收集,垃圾回收机制 指标项来源 主机名 u ...

  2. kafka监控指标项

    监控配置 ​ kafka基本分为broker.producer.consumer三个子项,每一项的启动都需要用到 $KAFKA_HOME/bin/kafka-run-class.sh 脚本,在该脚本中 ...

  3. Flume监控指标项

    配置监控 1.修改flume-env.sh export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmx ...

  4. Hadoop监控指标项

    配置 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh # 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码 e ...

  5. Spark指标项监控

    监控配置 spark的监控主要分为Master.Worker.driver.executor监控.Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要 ...

  6. Linux CPU监控指标

    Linux CPU监控指标 Linux提供了非常丰富的命令可以进行CPU相关数据进行监控,例如:top.vmstat等命令.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执 ...

  7. 【转载一】Grafana –美观、强大的可视化监控指标展示工具

    在之前的InfluxDB系列教程 中,我们给大家介绍了当下流行的一款时序数据库--InfluxDB. 接下来给大家带来一款强大的,与InfluxDB搭配使用的前端指标项展示项目--Grafana. G ...

  8. MySQL 监控指标

    为了排查问题,对数据库的监控是必不可少的,在此介绍下 MySQL 中的常用监控指标. 简介 MySQL 有多个分支版本,常见的有 MySQL.Percona.MariaDB,各个版本所对应的监控项也会 ...

  9. HikariCP监控指标介绍和应用

    概述 HikariCP提供了一些监控指标,他的监控指标都是基于MicroMeter提供出来的,然后支持Prometheus和Dropwizard.本次我们将讨论一下HikariCp的监控指标有哪些,为 ...

随机推荐

  1. semaphore demo 并行 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    import 'dart:async'; import 'package:semaphore/semaphore.dart'; import 'dart:io'; import 'dart:conve ...

  2. mac 上使用 idea 上传项目代码到阿里云git上

    1.Idea 打开需要上传的项目   2.先在本地创建一个git仓库 VCS --> Import into Version Control --> Create Git reposito ...

  3. 浅谈React编程思想

    React是Facebook推出的面向视图层开发的一个框架,用于解决大型应用,包括如何很好地管理DOM结构,是构建大型,快速Web app的首选方式. React使用JavaScript来构建用户界面 ...

  4. DCL 管理权限

    一个数据库里面有着多个用户,每个用户的权限也不仅相同. 一.查询权限 1.基本语法格式: show grants for '用户名'@'主机名';  2.具体操作 查看 user1 用户的权限 注意: ...

  5. iOS 简化冗余代码

    正在给深圳某家智能家居开发iPad版本,在已经存在的iPhone版上修改,该app的界面采用的是xib.xib相比代码来写界面,快速高效,但是可维护性和可读性太差.言归正传,看到这些代码后,我的心情很 ...

  6. 在SAP Hybris commerce Storefront里购物下单

    操作过程和大家平时在网上购物没有太大差别. 选中一款心仪的产品,点击Add to cart加到购物车里: 点击Check out结帐: 生成一个购物车ID: 维护发货地址: 维护发货方式: 点击Pla ...

  7. es5中变量提升的问题

    <script> //变量提升的问题 var tem=new Date(); //函数f 输出tem var命令会发生“变量提升”现象 //局部变量优先高于全局变量 var tem=&qu ...

  8. 使用FastJSON 对Map/JSON/String 进行互转

    Fastjson是一个Java语言编写的高性能功能完善的JSON库,由阿里巴巴公司团队开发的主要特性主要体现在以下几个方面: 1.高性能 fastjson采用独创的算法,将parse的速度提升到极致, ...

  9. 51nod 2486 小b和矩阵

    小b有一个m行n列的矩阵. 她会从(1,1)开始,顺时针螺旋访问该矩阵,每个元素恰好被访问一次. 请你按小b的访问顺序输出每个元素. 收起   输入 第一行输入两个数m和n,其中0<m,n≤50 ...

  10. python网络-静态Web服务器案例(29)

    一.静态Web服务器案例代码static_web_server.py # coding:utf-8 # 导入socket模块 import socket # 导入正则表达式模块 import re # ...