HBase集群监控那些事儿

为什么需要监控?

为了保证系统的稳定性,可靠性,可运维性。

  • 掌控集群的核心性能指标,了解集群的性能表现;
  • 集群出现问题时及时报警,便于运维同学及时修复问题;
  • 集群重要指标值异常时进行预警,将问题扼杀在摇篮中,不用等集群真正不可用时才采取行动;
  • 当集群出现问题时,监控系统可以帮助我们更快的定位问题和解决问题。

如何构建 HBase 集群监控系统?

公司有自己的监控系统,我们所要做的就是将 HBase 中我们关心的指标项发送到监控系统去,问题就转换为我们开发,采集并返回哪些 HBase 集群监控指标项。

HBase 集群监控指标

采集的监控数据主要包括以下几个方面:某台机器 OS 层面上的数据,例如 CPU、内存、磁盘、网络、load、网络流量等;某台 regionserver(或master)机器 jvm 的状态,例如关于线程的信息,GC 的次数和时间,内存使用状况,以及 ERROR、WARN、Fatal 事件出现的次数;regionserver(或 master)进程中的统计信息。

可以通过以下地址获取 HBase 提供的 JMX 信息的 web 页面

JMX web 页面的数据格式是json格式,信息很多!

OS 监控数据

HBase 中对于 OS 的监控数据,主要是 OperatingSystem 的对象来进行的,如下就是我提取出来的 JSON 信息。

其中比较重要的指标有 OpenFileDescriptorCount , FreePhysicalMemorySize , ProcessCpuLoad , SystemCpuLoad , AvailableProcessors , SystemLoadAverage

JVM 监控数据

Hbase 中对于 JVM 的监控数据,主要是 JvmMetrics 的对象来进行的,如下就是我提取出来的 JSON 信息,

JvmMetrics 主要统计的信息包括:内存的使用状态信息;GC的统计信息;线程的统计信息;以及事件的统计信息。

内存的统计信息主要是:JVM 当前已经使用的 NonHeapMemory 的大小、以及配置的 NonHeapMemory 的大小;JVM 当前已经使用的 HeapMemory 的大小、以及配置的 HeapMemory 的大小; JVM 运行时的可以使用的最大的内存的大小。

GC 的统计较为简单,仅统计了进程在固定间隔内 GC 的次数和花费的总时间。

线程的统计,主要是统计进程内当前线程的处于 NEW 、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED 这六种状态下的线程数量。

对于事件的统计,主要统计固定时间间隔内的 Fatal、Error、Warn 以及 Info 的数量。(这块好像不怎么重要)

REGION SERVERS 健康

你也可以通过如下地址:

获得到 Region Servers 健康值:

MEMORYPOOL

从全部的 JSON 值中你会看到很多种 MemoryPool 值,比如 Par Eden Space 、CMS Perm Gen、Par Survivor Space、CMS Old Gen、Code Cache ,按需获取吧。

总结

任何一个服务的监控系统都是一个不断迭代,不断优化的过程,不可能一开始就做到最好。监控总是比问题发生来的更早一些,而每一次出问题,又进一步加强相应方面的监控,我们需要让监控系统从出问题时才报警到可能出现问题时就预警逐渐过渡,最终让监控系统成为我们保证系统稳定性的一个有力工具。

最后,监控指标有很多,但请按需获取 !

参考资料

  • hbase性能监控(一) https://www.tuicool.com/articles/zQNrM3
  • hbase性能监控(二) https://www.tuicool.com/articles/YbQbIj
  • hbase性能监控(三) https://www.tuicool.com/articles/imArAb
  • HBase 集群监控系统构建 https://blog.bcmeng.com/post/hbase-monitor.html
  • hbase jmx常用监控指标 http://blog.csdn.net/englishsname/article/details/53883682

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2017-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯Bugly的专栏

快速定位crash的炫酷方式

本人所在项目组主要负责一款Android平台产品的开发,因为用户量比较大,正式版本发布后,每天Crash次数的上报量都在几十万量级,即便是内测版,每天Crash...

391120
来自专栏用户2442861的专栏

Java NIO浅析

作者:美团点评技术团队 链接:https://zhuanlan.zhihu.com/p/23488863 来源:知乎 著作权归作者所有。商业转载请联系作者...

20640
来自专栏ThoughtWorks

登录工程:传统 Web 应用中的身份验证技术|洞见

标题中的 “传统Web应用” 这一说法并没有什么官方定义,只是为了与“现代化Web应用”做比较而自拟的一个概念。 所谓“现代化Web应用”指的是那些基于分布式架...

42350
来自专栏沃趣科技

Shell Limits设置问题导致用户不能登录

发生故障的环境为:RHEL 6.7,ORACLE 11gR2 RAC,其中集群节点1发生此故障,而节点2状态正常。

13120
来自专栏小二的折腾日记

win7下安装Ubuntu双系统

双系统的准备主要就是硬盘了,毕竟这么多学习资料是吧。。总还是要谨慎一点的。因为win7和linux系统的磁盘格式不一样,所以我们不能直接在win7里面分好磁盘。...

15130
来自专栏EAWorld

微服务之服务调用与安全控制

近年来,大多数企业IT软件均在向微服务架构转型,由于微服务架构采用了更细粒度的分布式拆分,对于服务调用安全方面的问题更复杂,更需要重视,需要整体的系统化解决方案...

20930
来自专栏琯琯博客

awesome-sysadmin-cn资源

系统管理员 资源列表,内容包括:备份/克隆软件、云计算/云存储、协作软件、配置管理、日志管理、监控、项目管理 备份 备份软件 Amanda:客户端-服务器模型备...

728120
来自专栏不会写文章的程序员不是好厨师

日志那些事儿——由一次bug引发的思考-client jar应该如何输出日志

前面几篇“日志那些事儿”讲解了日志的重要性和相关使用。以slf4j+logback的使用为例,我们的步骤为:

12540
来自专栏炉边夜话

对中断的一点思考

    对于X86的单处理器机器,一般采用可编程中断控制器8259A做为中断控制电路。传统的PIC(Programmable Interrupt Contr...

14320
来自专栏蓝天

Ubuntu系统微调

本章讲述了基本的基于命令行界面的系统配置方法。在学习本章前,你需要先阅读 Ubuntu 系统安装提示, 第 3 章.

14030

扫码关注云+社区

领取腾讯云代金券