HBase监控主要安装三个组件jmxtrans、InfluxDb、grafana。
Jmxtrans:JMX可以对外暴露jvm内部的一些指标,但是要获取那些jvm的内部信息,就还需要自己写java程序调用jmx接口去获取数据,并按照某种格式发送到其他地方(如监控程序Graphite,Zabbix等)。这时jmxtrans就派上用场了,jmxtrans的作用是自动去jvm中获取所需要的jmx数据,并按照某种格式(json文件配置格式)输出到其他应用程序。
InfluxDb:InfluxDB是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。内置HTTP API,所以不用再写服务端代码来启动和运行。数据可以被标记,允许非常灵活的查询。类似SQL的查询语言安装和管理简单,数据输入和输出速度快。它旨在实时响应查询。这意味着point数据写入即被索引并立即可供响应时间应小于100ms的查询使用。
Grafana:Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。
本次监控就是利用Jmxtrans获取hbase在jmx中的指标,将指标插入到InfluxDb时序数据库,再通过Grafana从InfluxDb中查询展示数据。
首先修改hbase-env.sh
[root@node3 conf]# cd /opt/hbase-1.2.6/conf
将hbase-env.sh中以下配置项的注释打开
重启hbase,使配置项生效。
要想查看是否打开成功,到windows上的java路径的bin目录下
D:\java\jdk1.8.0_101\bin
双击Jconsole.exe
点击MBean,里面是hbase所有的监控指标
接下来安装Jmxtrans
下载地址:http://central.maven.org/maven2/org/jmxtrans/jmxtrans/
安装
rpm -ivh jmxtrans-265.rpm
默认安装路径 /usr/share
配置json文件
[root@node3 jmxtrans]# cd /var/lib/jmxtrans/
[root@node3 jmxtrans]# cat hbasemonitor.json
{
"servers" : [ {
"port" : "10102",
"host" : "172.18.250.104",
"queries" : [ {
"obj" : "Hadoop:service=HBase,name=JvmMetrics",
"attr" : [ "GcCount" ],
"resultAlias":"GcCount",
"outputWriters" : [ {
"@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://172.18.250.104:8086/",
"username" : "admin",
"password" : "111111",
"database" : "hbaseJmx"
} ]
},
{
"obj" : "Hadoop:service=HBase,name=RegionServer,sub=Regions",
"attr" : [ "numRegions" ],
"resultAlias":"numRegions",
"outputWriters" : [ {
"@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://172.18.250.104:8086/",
"username" : "admin",
"password" : "111111",
"database" : "hbaseJmx"
} ]
} ]
} ]
}
安装InfluxDB
下载influxdb-1.2.0.x86_64.rpm
rpm -ivh influxdb-1.2.0.x86_64.rpm
路劲、安装位置、日志和jmxtrans一致
修改配置
vim /etc/influxdb/influxdb.conf
下面是将数据放置的目录,建议放在最大的盘下面,数据可能会非常多
[data]
# The directory where the TSM storage engine stores TSM files.
dir = "/var/lib/influxdb/data"
[admin]
# Determines whether the admin service is enabled.
enabled = true
将admin的也打开
启动influxdb
service influxdb start
启动jmxtrans
/usr/share/jmxtrans/bin/jmxtrans restart
[root@node3 opt]# influx
Connected to http://localhost:8086 version 1.2.0
InfluxDB shell version: 1.2.0
>
-- 创建一个管理员用户
CREATE USER "admin" WITH PASSWORD '111111' WITH ALL PRIVILEGES
打开http://node3:8083
查询可以看见。Ok
下面就是安装Grafana
下载grafana-3.1.1-1470047149.x86_64.rpm
rpm -ivh grafana-3.1.1-1470047149.x86_64.rpm
安装路径、日志目录、配置文件,上同
,打开web界面:http://node3:3000 ,默认账户,密码为admin/admin
配置 url 端口是8086,name随便起一个,database选定我们设置的hbaseJmx库
最后save一下
点击source,选定我们配置的hbase-monitor
参考链接:
https://blog.csdn.net/qq_27078095/article/details/63291402
https://blog.csdn.net/qq_27078095/article/details/52088423