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的监控指标有哪些,为 ...
随机推荐
- Programming Principles and Practice Using C++ Notes1
序 0.4 创造性和问题求解 首要目标是帮助你学会用代码表达你的思想2,而不是叫你如何获得这些思想.沿着这样一个思路,给出很多实列,展示如何求解问题. 我们认为程序设计本事是问题求解的一种描述形式: ...
- live555的使用(转载)
Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现 了对多种音视频编码格式的音视频数据的流 ...
- Redis 学习-Redis 的其他功能
一.慢查询 找到 系统中瓶颈的命令 1. 客户端请求的生命周期: ①. 慢查询通常发生在第三阶段. ②. 客户端超时不一定是慢查询,但慢查询是客户端超时的一个可能因素. 2. 相关配置 慢查询命令会存 ...
- SpringMVC 八大注解
1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...
- spring的Autowired、Resource、Inject的使用
基本知识:spring最底层使用的是Map,id是bean的id,value是bean的class或者是实例. 1:bean的加载顺序. @Bean("testDao") publ ...
- 微信小程序 时间戳 转化为 日期格式
util.js : function transTime(unixtime) { var dateTime = new Date(parseInt(unixtime) * 1000) var yea ...
- 限制mongoDB内存的方法
docker运行MongoDB,针对于docker容器来进行内存资源的限制 修改MongoDB的运行配置文件,并且重启mongodb storage: dbPath: /var/lib/mongodb ...
- Redhat下Oracle 12c单节点安装
操作系统:Redhat6.7 64位[root@Oracle12CDB ~]# more /etc/redhat-release Red Hat Enterprise Linux Server rel ...
- SpringCloud2.0 Turbine 断路器集群监控 基础教程(九)
1.启动基础工程 1.1.启动[服务中心]集群,工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...
- 二维码内嵌LOGO
package Test; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; imp ...