6165金沙总站程序员也能玩转的集群监控

程序员也能玩转的集群监控,程序员也能集群监控

点击上方蓝字进行关注的都是靓仔和仙女

为什么需要监控?

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

  • 掌控集群的核心性能指标,了解集群的性能表现;

  • 集群出现问题时及时报警,便于运维同学及时修复问题;

  • 集群重要指标值异常时进行预警,将问题扼杀在摇篮中,不用等集群真正不可用时才采取行动;

  • 当集群出现问题时,监控系统可以帮助我们更快的定位问题和解决问题。

如何构建 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
,按需获取吧。

总结

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

想更加详细,更加深入的了解集群其它方面的内容吗?

在这里部落告诉大家一个小秘密

今晚8:30

动脑学院  Five大神

将在腾讯课堂  动脑学院  免费Java公开课中

给大家详细讲解

《 分布式、集群环境互联网系统订单号生成策略 》

你只需要在今晚8:30的时候

点击文章最末 阅读原文

即可进行观看

推荐阅读  

高并发与分布式系统的基石–数据库读写分离实战

这就是学编程的下场…

论程序员与产品经理是怎么互掐起来的

如何假装成为一名好的程序员

来自部落的邀请

Java框架 Spring 核心机制

至程序员的情书

Java高级部落送你ofo小黄车60天免费骑行,还不来?

Facebook研发的Cassandra你用过吗?

给 Java开发者的10个大数据工具和框架

推荐程序员必备微信号