技术实践丨 Prometheus+Grafana 搭建 HBase 监控仪表盘
摘要:Grafana+Prometheus 是目前非常流行监控方案,图形化展示非常强大。
本文分享自华为云社区《Prometheus+Grafana搭建HBase监控仪表盘》,原文作者:Lettle whale。
简介
● HBase 是一个分布式的、面向列的开源数据库,开源版本默认提供了展示集群信息的 UI,可以显示集群的实时信息,包括 jmx,但是维护 HBase 只靠实时信息还不够,我们还需要将实时信息汇总起来变成监控图表,这样才能分析集群的运行状态,监控集群并及时发布告警。
● Prometheus 是一个开源的服务监控告警解决方案,同时它自身是一个时间序列数据库,通过收集集群的 jmx 信息并以时序格式存储起来。
● Grafana 是一个开源的数据可视化工具,可以用做监控来展示时序数据并进行统计,并且带有告警的功能,它的官网网站和社区提供了许多主流数据库的 Dashboard 模板,这些模板都是制作好的一些常用的监控指标,初次使用可以先直接引用。
● 下图展示了这个监控系统的结构
一、搭建准备
● 需要准备如下软件
● HBase 集群准备
这次的监控搭建,因为只作为展示用途,所以 HBase 使用伪分布式搭建方式在同一个虚拟机上部署了 1 个 Master 和 2 个 Region Server,为保证在同一个虚拟机中端口不冲突,两个 RS 进程的对外端口都设置成不一样。
二、进程安装
1.prometheus 的安装
下载 prometheus,https://prometheus.io/download/,获得 prometheus-2.25.2.linux-amd64.tar.gz
在虚拟机上解压后,进入 prometheus 目录,配置使用默认。
启动:
直接启动:./prometheus --config.file=prometheus.yml
后台启动:nohup ./prometheus --config.file=prometheus.yml > prometheus.log2>&1 &
进程关闭方法:
第一种,找到进程号, 执行 kill -TERM <PID>
第二种,curl -X POST http://localhost:9090/-/quit , 具体地址根据实际
2.mysql 的准备
Grafana 需要用一个数据库,本文使用 MySQL 作为数据库,这里的安装就不介绍了,可以在网上搜索相关的安装指导,或者使用已有的数据库。
需要为 Grafana 创建一个库
3.Grafana 的安装
下载 Grafana,https://grafana.com/grafana/download,获得 grafana-7.1.5.linux-amd64.tar.gz
在虚拟机上解压后,进入 grafana/conf 目录,新建文件 custom.ini,该配置文件配置了依赖的 database 和 grafana 文件,日志等路径。 下面作为参考,实际路径根据自己的环境来配置
启动:
进入 grafana/bin 目录
直接启动:./grafana-server
后台启动: nohup ./grafana-server >/dev/null 2>&1 &
4.JMX exporter 的安装
1.下载 jmx_prometheus_javaagent-0.15.0.jar,
https://mvnrepository.com/artifact/io.prometheus.jmx/jmx_prometheus_javaagent/0.15.0
将 jmx_prometheus_javaagent-0.15.0.jar 放入 HBase 的进程启动的 lib 目录下
2.设置 HBase 的进程启动参数,这里是为了加上 JMX exporter 的 agent,需要所有实例的 conf/hbase-env.sh 中设置,由于是伪分布式部署,所有进程都在一台服务器上,所以其中的一些端口号都设置为了不一样,如果是分布式部署,端口号可以设置固定。
其中 HMaster 的 conf/hbase-env.sh 中设置
在 RegionServer1 的 conf/hbase-env.sh 中设置
在 RegionServer2 的 conf/hbase-env.sh 中设置
设置完后,Master 的 jmx agent 端口是 27000,RS1 是 27001,RS2 的端口是 27002
3.配置 hbase_jmx_config.yaml
在 hbase/conf 目录下创建 hbase_jmx_config.yaml,写入配置内容,提取指定的 jmx 指标
启动 HBase 进程,启动后可以根据 jmx agent 的 IP 和端口访问 metrics 的 url 来判断是否生效,例如 curl http://localhost:27000/metrics,
三、配置 prometheus 和 grafana
1.prometheus 上配置 Job
在 prometheus/prometheus.yml 中增加一个 job,来指定 HBase 的集群的 JMXexporter, 在 scrape_configs 下增加如下配置
可以重启 prometheus 生效,也可以使用 prometheus 的 reload 功能来激活
方法 1:send SIGHUP signal
方法 2:send a HTTP POST to the Prometheus web server
生效后,通过查看 prometheus UI 上的 target 可以确认是否有收集成功,State 为 UP 即为成功
2.grafana 上配置 datasource
进入 grafana 的 UI,点击 Configuration->DataSource->Adddata source,添加 Prometheus
配置 Prometheus 的地址,保存
3.Grafana 上配置 Dashboard
下载模板,https://grafana.com/grafana/dashboards/12722/revisions,得到"hbase-1-x_rev1.json"文件
点击 Dashboards-Manage->Import,导入下载的"hbase-1-x_rev1.json"文件内容
在后一个选项中,输入新建仪表盘的名字,以及选择数据来源 Prometheus,导入后监控仪表盘就生成了
仪表盘展示
本文参考资料:
https://godatadriven.com/blog/monitoring-hbase-with-prometheus/
https://www.cnblogs.com/caoweixiong/p/12111035.html
https://www.cnblogs.com/caoweixiong/p/12111243.html
https://www.cnblogs.com/caoweixiong/p/12736710.html
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/0982d2853644aff6bba647bb1】。文章转载请联系作者。
评论