【CDH】通过 ClouderaManager 配置CDH组件用 prometheus + hbase 监控采集JMX信息
前言:
最近需要在 cloudera manager
监控界面对CDH 的组件来用 prometheus
监控。也参考了很多网上的资料,目前很多都是修改的后台配置文件,目前测试下来,如果通过 cloudera manager
来启动服务,感觉配置没有生效。这里采用在 cloudera manager
监控界面配置参数的方式,已经测试通过。这里整理并记录一下。
具体实践:
这里以 Hbase
服务为例。来进行我们配置,别的组件参考即可。
依赖组件
需要用到的服务有
- prometheus
- grafana
- jmx_exporter
https://github.com/prometheus/jmx_exporter
修改配置
在HBase 配置中修改 **HBase 服务环境高级配置代码段(安全阀)**
:
配置内容参考如下:
HBASE_MASTER_OPTS=-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=10101 -javaagent:/run/cloudera-scm-agent/jmx_prometheus_javaagent-0.16.1.jar=9213:/run/cloudera-scm-agent/hbase.yml
HBASE_REGIONSERVER_OPTS=-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=10102 -javaagent:/run/cloudera-scm-agent/jmx_prometheus_javaagent-0.16.1.jar=9214:/run/cloudera-scm-agent/hbase.yml
hbase.yml
hbase.yml
文件内容如下:
---
lowercaseOutputName: true
lowercaseOutputLabelNames: true
rules:
- pattern: Hadoop<service=HBase, name=RegionServer, sub=Regions><>Namespace_([^\W_]+)_table_([^\W_]+)_region_([^\W_]+)_metric_(\w+)
name: HBase_metric_$4
labels:
namespace: "$1"
table: "$2"
region: "$3"
- pattern: Hadoop<service=(\w+), name=(\w+), sub=(\w+)><>([\w._]+)
name: hadoop_$1_$4
labels:
"name": "$2"
"sub": "$3"
- pattern: .+
遇到问题
之前调试一直跑不通,各种修改文件权限,路径,版本的方式都尝试过了,最后发现 yml 文件的后缀必须为 .yml
,而不能为 yaml
。不知道为什么,有知道的大佬还请指教。
总结:
到此其实已经实现CDH集群集成prometheus,剩下的内容就比较简单了,使用prometheus监听端口即可,这里不是我们的重点。
参考:
- https://community.cloudera.com/t5/Support-Questions/Adding-a-javaagent-in-CDH-5-or-6-2/m-p/304399
- https://community.cloudera.com/t5/Support-Questions/Customize-Hbase-JVM-settings-in-CDH-5-4-2/td-p/30997
- https://zhuanlan.zhihu.com/p/358908161