Prometheus 监控 Hadoop3(docker)部署

普罗米修斯部署起来非常简单,但是监控hadoop的节点还是比较麻烦,以下是我部署的整个过程。

使用docker安装比较方便,我的ubuntu系统版本是18.04,以下1234步骤都在监控的机器执行,第5步在hadoop部署的机器执行

1.下载镜像包

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana
docker pull prom/blackbox-exporter

2.创建目录和配置文件

创建prometheus配置文件
sudo mkdir /opt/prometheus
cd /opt/prometheus/ 
vim prometheus.yml

新建空文件夹grafana,用来存储grafana数据
mkdir /opt/grafana
设置权限
chmod 777 -R /opt/grafana

 prometheus.yml文件内容

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.10.82:9100']
        labels:
          instance: localhost

3.创建docker容器并启动

sudo docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

sudo docker run -d -p 3000:3000 --name=grafana -v /opt/grafana:/var/lib/grafana grafana/grafana

sudo docker run -d -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter

sudo docker run -d -p 9115:9115 -v /opt/blackbox/blackbox.yml --name blackbox_exporter prom/blackbox-exporter

 查看容器

4.访问webUI

http://localhost:3000/   
http://localhost:9090/targets
http://localhost:9090/graph

5.Prometheus实现对大数据Hadoop节点集群监控

通过jmx_exporter对大数据各个组件进行参数监控,通过node_exporter对服务器基础进行参数监控,使用prometheus进行数据存贮,通过grafana进行界面展示

5.1 分别在监控的机器创建以下文件夹和文件

sudo mkdir -p /opt/prometheus/monitoring

sudo mkdir -p /opt/prometheus/monitoring/zookeeper

sudo mkdir -p /opt/prometheus/monitoring/hadoop

/opt/prometheus/monitoring创建以下文件,每个组件都需要一个yaml后缀文件

datanode.yaml
resourcemanager.yaml
nodemanager.yaml
journalnode.yaml
zkfc.yaml
hffps.yaml
proxyserver.yaml
historyserver.yaml

5.2 下载jmx_prometheus_javaagent-0.15.0.jar

jmx 方式是直接在hadoop插件中启用一个http端口,并抽取组件的相关参数。

https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.15.0/jmx_prometheus_javaagent-0.15.0.jar

mv jmx_prometheus_javaagent-0.13.0.jar /opt/prometheus/monitoring

5.3 Hadoop 配置

vim hadoop/etc/hadoop/hadoop-env.sh

export HADOOP_NAMENODE_JMX_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -com.sun.management.jmxremote.port=1234 -javaagent:/opt/prometheus/monitoring/jmx_prometheus_javaagent-0.15.0.jar=9211:/opt/prometheus/monitoring/namenode.yaml"

export HADOOP_DATANODE_JMX_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -com.sun.management.jmxremote.port=1244 -javaagent:/opt/prometheus/monitoring/jmx_prometheus_javaagent-0.15.0.jar=9212:/opt/prometheus/monitoring/datanode.yaml"

复制到每个hadoop的节点 

每个组件都需要一个yaml后缀文件,只需修改端口配置即可(端口可随意指定),并不用来http访问,保证每个组件的yaml文件中端口不重复即可namenode.yaml

5.4监听节点配置文件 

5.4.1 namenode.yaml配置文件,如下

如何配置参考https://codechina.csdn.net/mirrors/prometheus/jmx_exporter?utm_source=csdn_github_acceleratorstartDelaySeconds: 0
hostPort: localhost:1234 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口
#jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false                       

 

5.4.1 dataname.yaml配置文件,如下

snametartDelaySeconds: 0
hostPort: 127.0.0.1:1244 #master为本机IP(一般可设置为localhost);1244为想设置的jmx端口(>可设置为未被占用的端口)
#jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

5.5 hadoop启动文件/hadoop/hadoop-3.2.2/bin/hdfs添加以下内容

      HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_JMX_OPTS" #添加datanode jmx变量
      HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_JMX_OPTS" #添加namenode JMX环境变量

 6 修改promethues配置

  - job_name: 'hdfs-namenode'
    static_configs:
      - targets: ['192.168.10.28:9211','192.168.10.238:9211']

  - job_name: 'hdfs-datanode'
    static_configs:
            - targets: ['192.168.10.28:9212','192.168.10.238:9212','192.168.10.239:9212']

启动hadoop重启promethues

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Prometheus监控Hadoop集群,你可以使用以下方法: 1. 安装Prometheus:首先,你需要在你的监控服务器上安装和配置Prometheus。你可以从Prometheus官方网站下载二进制文件或者使用包管理工具进行安装。 2. 配置Prometheus:在Prometheus的配置文件中,你需要定义Hadoop集群的监控目标。你可以使用Prometheus的目标发现功能(如Service Discovery)或者手动配置Hadoop的各个组件的监控指标。 3. 配置Hadoop组件的指标:Hadoop的各个组件(如NameNode、DataNode、ResourceManager、NodeManager等)可以通过JMX(Java Management Extensions)暴露出各种监控指标。你需要在Hadoop的配置中启用JMX,并且确保Prometheus能够访问这些指标。 4. 使用Exporter:为了将Hadoop的JMX指标暴露给Prometheus,你可以使用现有的Exporter工具,如JMX Exporter或者Node Exporter。这些工具可以将JMX指标转换为Prometheus可识别的格式。 5. 配置Prometheus监控规则和报警:一旦Prometheus开始收集Hadoop监控指标,你可以使用PromQL查询语言定义自定义的监控规则和报警。这样,当某些指标达到预设的阈值时,Prometheus将会触发报警。 6. 可视化和报告:除了Prometheus自带的基本监控界面外,你还可以使用Grafana等工具来可视化Hadoop监控数据并生成报告。Grafana可以与Prometheus进行集成,并提供更丰富的图形化展示和报告功能。 请注意,这只是一个大致的过程概述,实际配置和使用过程可能因具体环境和需求而有所不同。你可能需要参考相关文档和资源来完成具体的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值