【CDH】通过 ClouderaManager 配置CDH组件用 prometheus 监控采集JMX信息

899 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言:

最近需要在 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监听端口即可,这里不是我们的重点,就不过多介绍了。

参考: