文章目录
前言
本教程介绍了如何提取大数据集群中不同组件的指标信息,涵盖了HDFS、Hive、Impala、Kafka、Kudu、YARN和Zookeeper等组件,通过配置环境变量以启用JMX监控,并展示了具体操作步骤和配置方法。
一、提取准备
1. 下载jmx
mkdir -p /opt/soft/jmx/config
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar -P /opt/soft/jmx/config/
2. 创建规则文件
echo "lowercaseOutputName: true
lowercaseOutputLabelNames: true
rules:
- pattern: '.*'" > /opt/soft/jmx/config/common_conf.yml
二、HDFS指标提取
1. namenode指标提取
在Cloudera Manager的UI页面打开HDFS集群,点击配置
,找到NameNode 环境高级配置代码段(安全阀)
,添加如下配置:
HADOOP_NAMENODE_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=2870 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10870:/opt/soft/jmx/config/common_conf.yml
2. datanode指标提取
在Cloudera Manager的UI页面打开HDFS集群,点击配置
,找到DataNode 环境高级配置代码段(安全阀)
,添加如下配置:
HADOOP_DATANODE_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=2864 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10864:/opt/soft/jmx/config/common_conf.yml
配置之后需要重启HDFS服务使配置生效。
二、Hive指标提取
1. Hive Metastore Server 指标提取
在Cloudera Manager的UI页面打开Hive集群,点击配置
,找到Hive Metastore Server 环境高级配置代码段(安全阀)
,添加如下配置:
HADOOP_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2083 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10083:/opt/soft/jmx/config/common_conf.yml
2. HiveServer2 指标提取
在Cloudera Manager的UI页面打开Hive集群,点击配置
,找到HiveServer2 环境高级配置代码段(安全阀)
,添加如下配置:
HADOOP_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2002 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=11002:/opt/soft/jmx/config/common_conf.yml
配置之后需要重启Hive服务使配置生效。
三、Impala 指标提取
1. Impala Catalog Server 指标提取
在Cloudera Manager的UI页面打开Impala集群,点击配置
,找到Impala Catalog Server 环境高级配置代码段(安全阀)
,添加如下配置:
JAVA_TOOL_OPTIONS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2020 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=26020:/opt/soft/jmx/config/common_conf.yml
2. Impala Daemon 指标提取
在Cloudera Manager的UI页面打开Impala集群,点击配置
,找到Impala Daemon 环境高级配置代码段(安全阀)
,添加如下配置:
JAVA_TOOL_OPTIONS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2000 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=26000:/opt/soft/jmx/config/common_conf.yml
配置之后需要重启Impala服务使配置生效。
参考链接:https://cwiki.apache.org/confluence/display/IMPALA/How+to+do+JVM+Profiling+for+Impala
四、Kafka 指标提取
1. Kafka Broker 指标提取
在Cloudera Manager的UI页面打开Kafka集群,点击配置
,找到Kafka Broker 环境高级配置代码段(安全阀)
,添加如下配置:
KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2092 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10092:/opt/soft/jmx/config/common_conf.yml
2. Kafka MirrorMaker 指标提取
在Cloudera Manager的UI页面打开Kafka集群,点击配置
,找到Kafka MirrorMaker 环境高级配置代码段(安全阀)
,添加如下配置:
KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2192 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=20092:/opt/soft/jmx/config/common_conf.yml
配置之后需要重启Kafka服务使配置生效。
参考链接:https://docs.confluent.io/platform/current/kafka/monitoring.html
五、KUDU指标提取
1. Tablet Server 指标提取
1.1 下载和解压
wget https://github.com/leeeizhang/Prometheus-Kudu-Exporter/releases/download/v0.2.0/prometheus-kudu-exporter-binary-0.2.0.tar.gz -P /tmp
tar -zxvf /tmp/prometheus-kudu-exporter-binary-0.2.0.tar.gz -C /opt/soft/jmx/config/
1.2 修改配置文件
vim /opt/soft/jmx/config/prometheus-kudu-exporter/conf/kudu-exporter.yml
内容如下所示。
# Fetcher配置
# Kudu服务器的端口应该是8051,Kudu平板服务器应该是8050
prom.kudu.fetcher.classname: io.prometheus.kudu.fetcher.KuduMetricRestFetcher
prom.kudu.fetcher.kudu-nodes: [ host_ip:8050 ]
prom.kudu.fetcher.interval: 10000
#单机报表配置
#启动后请访问http://localhost:9055/metrics查看kudu-export状态
prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricLocalReporter
prom.kudu.reporter.local.port: 9050
# Push-Gateway 报表配置
# Push-Gateway应该在运行kudu-export之前安装
#prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricPushGatewayReporter
#prom.kudu.reporter.pushgateway.host: 127.0.0.1:9091
#prom.kudu.reporter.pushgateway.interval: 10000
1.3 启动和停止
1.3.1 启动
nohup /opt/soft/jmx/config/prometheus-kudu-exporter/bin/kudu-exporter.sh >/tmp/kudu-exporter.log 2>&1 &
1.3.2 停止
查看进程PID,然后停止对应进程。
ps -ef | grep prometheus-kudu-exporter
kill <PID>
1.3.3 测试
curl http://127.0.0.1:9050/metrics
2. Master 指标提取
2.1 创建配置文件和启动脚本
cd /opt/soft/jmx/config/prometheus-kudu-exporter/conf
cp kudu-exporter.yml kudu-exporter-master.yml
cd /opt/soft/jmx/config/prometheus-kudu-exporter/bin
cp kudu-exporter.sh kudu-exporter-master.sh
2.2 修改配置文件
cd /opt/soft/jmx/config/prometheus-kudu-exporter/conf
vim kudu-exporter-master.yml
内容如下所示。
# Fetcher配置
# Kudu服务器的端口应该是8051,Kudu平板服务器应该是8050
prom.kudu.fetcher.classname: io.prometheus.kudu.fetcher.KuduMetricRestFetcher
prom.kudu.fetcher.kudu-nodes: [ host_ip:8051 ]
prom.kudu.fetcher.interval: 10000
#单机报表配置
#启动后请访问http://localhost:9055/metrics查看kudu-export状态
prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricLocalReporter
prom.kudu.reporter.local.port: 9051
# Push-Gateway 报表配置
# Push-Gateway应该在运行kudu-export之前安装
#prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricPushGatewayReporter
#prom.kudu.reporter.pushgateway.host: 127.0.0.1:9091
#prom.kudu.reporter.pushgateway.interval: 10000
2.3 修改启动脚本
cd /opt/soft/jmx/config/prometheus-kudu-exporter/bin
vim kudu-exporter-master.sh
把启动脚本中PROMETHEUS_KUDU_EXPORTER_CONF="$PROMETHEUS_KUDU_EXPORTER_CONF_DIR"/kudu-exporter.yml
修改为PROMETHEUS_KUDU_EXPORTER_CONF="$PROMETHEUS_KUDU_EXPORTER_CONF_DIR"/kudu-exporter-master.yml
。
2.4 启动和停止
2.4.1 启动
nohup /opt/soft/jmx/config/prometheus-kudu-exporter/bin/kudu-exporter-master.sh >/tmp/kudu-exporter-master.log 2>&1 &
2.4.2 停止
查看进程PID,然后停止对应进程。
ps -ef | grep prometheus-kudu-exporter
kill <PID>
3. Grafana模版下载
六、YARN 指标提取
1. ResourceManager 指标提取
在Cloudera Manager的UI页面打开Kafka集群,点击配置
,找到ResourceManager 环境高级配置代码段(安全阀)
,添加如下配置:
YARN_RESOURCEMANAGER_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2088 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=9088:/opt/soft/jmx/config/common_conf.yml
2. NodeManager 指标提取
在Cloudera Manager的UI页面打开Kafka集群,点击配置
,找到NodeManager 环境高级配置代码段(安全阀)
,添加如下配置:
YARN_NODEMANAGER_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2042 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=9042:/opt/soft/jmx/config/common_conf.yml
配置之后需要重启YARN服务使配置生效。
七、Zookeeper 指标提取
1. Server 指标提取
在Cloudera Manager的UI页面打开Kafka集群,点击配置
,找到Server 环境高级配置代码段(安全阀)
,添加如下配置:
ZOOKEEPER_SERVER_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9010 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=3181:/opt/soft/jmx/config/common_conf.yml
总结
本教程详细介绍了如何使用JMX Prometheus Exporter工具来提取各个大数据组件的指标信息,并将其暴露给Prometheus进行监控。通过学习本教程,您可以轻松设置并收集这些指标数据,并利用可视化工具展示和分析它们。
希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!