本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言:
最近需要在 cloudera manager 监控界面对CDH 的组件来用 prometheus 监控。也参考了很多网上的资料。
目前很多资料都是修改的后台配置文件,因为 CM 的缘故,如果通过 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监听端口即可,这里不是我们的重点,就不过多介绍了。