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
Hbase监控指标项的更多相关文章
- hbase 监控指标项
名词解释 JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项 GC:Garbage Collection,垃圾收集,垃圾回收机制 指标项来源 主机名 u ...
- kafka监控指标项
监控配置 kafka基本分为broker.producer.consumer三个子项,每一项的启动都需要用到 $KAFKA_HOME/bin/kafka-run-class.sh 脚本,在该脚本中 ...
- Flume监控指标项
配置监控 1.修改flume-env.sh export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmx ...
- Hadoop监控指标项
配置 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh # 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码 e ...
- Spark指标项监控
监控配置 spark的监控主要分为Master.Worker.driver.executor监控.Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要 ...
- Linux CPU监控指标
Linux CPU监控指标 Linux提供了非常丰富的命令可以进行CPU相关数据进行监控,例如:top.vmstat等命令.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执 ...
- 【转载一】Grafana –美观、强大的可视化监控指标展示工具
在之前的InfluxDB系列教程 中,我们给大家介绍了当下流行的一款时序数据库--InfluxDB. 接下来给大家带来一款强大的,与InfluxDB搭配使用的前端指标项展示项目--Grafana. G ...
- MySQL 监控指标
为了排查问题,对数据库的监控是必不可少的,在此介绍下 MySQL 中的常用监控指标. 简介 MySQL 有多个分支版本,常见的有 MySQL.Percona.MariaDB,各个版本所对应的监控项也会 ...
- HikariCP监控指标介绍和应用
概述 HikariCP提供了一些监控指标,他的监控指标都是基于MicroMeter提供出来的,然后支持Prometheus和Dropwizard.本次我们将讨论一下HikariCp的监控指标有哪些,为 ...
随机推荐
- NIO开发Http服务器(3):核心配置和Request封装
最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.n ...
- SWD下载k60
转:JTAG各类接口针脚定义,含义及SWD接线方式 IAR设置如下
- 阿里企业邮箱smtp设置
阿里的邮箱没有SMTP授权码信息 SMTP服务器:smtp.mxhichina.com
- layui.js源码分析
/*! @Title: Layui @Description:经典模块化前端框架 @Site: www.layui.com @Author: 贤心 @License:MIT */ ;!functi ...
- sqlite移植
编译 # tar xvf sqlite-3.6.16.tar.gz # cd sqlite-3.6.16 # ./configure # ./configure --host=arm-linux -- ...
- ISCC之msc2
倒立屋 Flag:9102_cCsI 一道典型的LSB隐写,不过提交格式嘛,就很坑了 Stegsolve打开分析图片,注意到RGB三类图片的最低位基本相同,可能藏了东西. 有一个IsCc_2019,反 ...
- 《hello-world》第九次团队作业:【Beta】Scrum meeting 1
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目验收 团队名称 <hello--wor ...
- test20190815 NOIP2019 模拟题
100+60+40=200,被后面两个题卡着我很不爽. 立方数 [问题描述] 作为 XX 战队的狂热粉丝,MdZzZZ 看到了自己心仪的队伍在半决赛落败,顿时 心灰意冷.看着自己手中的从黄牛那里抢来的 ...
- test20190731 夏令营NOIP训练16
0+90+0=90.我只挑了T2做. 连接格点 有一个M行N列的点阵,相邻两点可以相连.一条纵向的连线花费一个单位,一条横向的连线花费两个单位.某些点之间已经有连线了,试问至少还需要花费多少个单位才能 ...
- LG3768 简单的数学题
P3768 简单的数学题 题目描述 输入一个整数n和一个整数p,你需要求出$(\sum_{i=1}^n\sum_{j=1}^n ijgcd(i,j))~mod~p$,其中gcd(a,b)表示a与b的最 ...