热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Prometheus监控Hadoop3(docker)部署

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

普罗米修斯部署起来非常简单,但是监控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: 60sevaluation_interval: 60sscrape_configs:- job_name: prometheusstatic_configs:- targets: ['localhost:9090']labels:instance: prometheus- job_name: linuxstatic_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/prometheussudo docker run -d -p 3000:3000 --name=grafana -v /opt/grafana:/var/lib/grafana grafana/grafanasudo docker run -d -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exportersudo 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

 

 


推荐阅读
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • MPLS VP恩 后门链路shamlink实验及配置步骤
    本文介绍了MPLS VP恩 后门链路shamlink的实验步骤及配置过程,包括拓扑、CE1、PE1、P1、P2、PE2和CE2的配置。详细讲解了shamlink实验的目的和操作步骤,帮助读者理解和实践该技术。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 本文介绍了如何使用elementui分页组件进行分页功能的改写,只需一行代码即可调用。通过封装分页组件,避免在每个页面都写跳转请求的重复代码。详细的代码示例和使用方法在正文中给出。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
author-avatar
幻想6666_321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有