精华内容
下载资源
问答
  • 1.简介 Flink支持多种监控指标的汇报reporter,例如jmx、slf4j、Prometheus、...但Prometheus自动发现Flink on YARN作业的提交、结束以及自动拉取数据是比较困难的。PushGateway作为一个中转组件,通过配置Flink on

    1.简介
    Flink支持多种监控指标的汇报reporter,例如jmx、slf4j、Prometheus、InfluxDB等。
    Grafana+Prometheus是当前比较流行的监控可视化解决方案。如下图为Prometheus及相关组件组成的生态系统。
    在这里插入图片描述
    2.安装配置
    Prometheus是采用拉模式的方式,从exporter拉取监控的数据。但Prometheus自动发现Flink on YARN作业的提交、结束以及自动拉取数据是比较困难的。PushGateway作为一个中转组件,通过配置Flink on YARN作业将监控指标推到PushGateway,Prometheus再从PushGateway拉取数据。
    (1)首先拷贝监控用的jar包Flink的lib目录下
    将flink的opt目录下面的flink-metrics-prometheus-1.7.2.jar包拷贝到flink的lib下:

    cd /opt/flink-1.7.2
    cp opt/flink-metrics-prometheus-1.7.2.jar lib
    

    (2)Prometheus和PushGateway组件下载地址为:

    https://github.com/prometheus/prometheus/releases/download/v2.12.0/prometheus-2.12.0.linux-amd64.tar.gz
    https://github.com/prometheus/pushgateway/releases/download/v0.9.1/pushgateway-0.9.1.linux-amd64.tar.gz
    

    (3)解压文件,并修改
    Prometheus的配置文件prometheus.yml添加配置如下图;
    Prometheus的默认端口是9090,PushGateway的默认端口是9091。

      - job_name: 'flink'
        file_sd_configs:
         - files:
           - configs/flink.json
    

    configs/flink.json的配置如下图:

    [
     {
      "targets": ["172.30.11.15:9091"]
     }
    ]
    

    (4)启动PushGateway和Prometheus。

    nohup ./pushgateway --web.listen-address :9091 > /var/log/pushgateway.log 2>&1 &
    nohup ./prometheus --config.file=prometheus.yml > /var/log/prometheus.log 2>&1 &
    

    若Prometheus为生产环境热启动,只需要在服务器上执行如下命令即可:

    curl -X POST http://172.30.11.15:9090/-/reload
    

    (5)编辑flink-conf.yaml,添加Flink与PushGateway集成的参数

    metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
    # 这里写PushGateway的主机名与端口号
    metrics.reporter.promgateway.host: 172.30.11.15
    metrics.reporter.promgateway.port: 9091
    # Flink metric在前端展示的标签(前缀)与随机后缀
    metrics.reporter.promgateway.jobName: flink-metrics-ppg
    metrics.reporter.promgateway.randomJobNameSuffix: true
    metrics.reporter.promgateway.deleteOnShutdown: false
    

    (6)配置grafana
    Grafana默认端口:3000,点击Create your first data source添加Prometheus数据源。如下图所示:
    在这里插入图片描述
    (7)启动flink
    (8)添加监控图表
    点击New Dashboard->Add Query按钮,即可看到Flink下的监控指标。
    在这里插入图片描述
    选好监控指标,就可以从图表中看到监控数据的折线了。

    展开全文
  • prometheus+grafana 监控hadoop、yarn

    万次阅读 2018-08-27 10:08:17
    主要是以jmx_exporter、prometheus为主导进行对hadoop的metrics进行收集,通过grafana进行展示、预警。 1、安装jmx_exporter以及配置文件 1、通过...

    主要是以jmx_exporter、prometheus为主导进行对hadoop的metrics进行收集,通过grafana进行展示、预警。

    1、安装jmx_exporter以及配置文件

    1、通过

    阿里云镜像里下载:https://maven.aliyun.com/mvn/search

    搜索下载 jmx_prometheus_javaagent

    2、创建配置文件:xxxx.yml(根据用途不同可以叫不同的名字,在启动时指定配置)

    startDelaySeconds: 0
    hostPort: localhost:1234  #1234为想设置的jmx端口(可设置为未被占用的端口)
    ssl: false
    lowercaseOutputName: false
    lowercaseOutputLabelNames: false

    startDelaySeconds: 0
    hostPort: localhost:1235  #1235为想设置的jmx端口(可设置为未被占用的端口)
    ssl: false
    lowercaseOutputName: false
    lowercaseOutputLabelNames: false

    3、将以上3个文件放到 /usr/local/prometheus_jmx_export_0.3.1 

     并执行 chown -R hadoop:root /usr/local/prometheus_jmx_export_0.3.1 

    4、修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh (提示:端口1234(1235)要与之前设置的jmx端口保持一致)

    ​export HADOOP_NAMENODE_JMX_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=1234 -javaagent:/usr/local/prometheus_jmx_export_0.3.1/jmx_prometheus_javaagent-0.3.1.jar=9222:/usr/local/prometheus_jmx_export_0.3.1/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   -Dcom.sun.management.jmxremote.port=1235 -javaagent:/usr/local/prometheus_jmx_export_0.3.1/jmx_prometheus_javaagent-0.3.1.jar=9322:/usr/local/prometheus_jmx_export_0.3.1/datanode.yaml"

    5、修改$HADOOP_HOME/bin/hdfs 修改 namenode、datanode启动参数如下

    if [ "$COMMAND" = "namenode" ] ; then
      CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'
      HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_JMX_OPTS $HADOOP_NAMENODE_OPTS"
    .......
    elif [ "$COMMAND" = "datanode" ] ; then
      CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'
      HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_JMX_OPTS"
      if [ "$starting_secure_dn" = "true" ]; then
        HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"
      else
        HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"
      fi

    6、重启 hadoop dfs集群,namenode机器访问 http://xxx:9222/metrics   datanode机器访问 http://xxx:9322/metrics 即可获得metrics信息

    2、安装Prometheus以及配置文件

    1、https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz 下载 prometheus linux版本到 /usr/local/ 下,

    解压 并执行  chown -R hadoop:root prometheus-2.3.2.linux-amd64.tar.gz

    2、修改配置文件 prometheus.yml(注意:以下代码只是在测试上执行的,对多少台机器进行监控就需要配置多少个job,配置文件注意缩进)

    - job_name: hadoop-namenode
      static_configs:
      - targets: ['binamenode01:9222']
    - job_name: hadoop-datanode
      static_configs:
      - targets: ['bidatanode01:9322']

    3、用户hadoop 启动 prometheus 

    cd /usr/local/prometheus-2.3.2.linux-amd64
    ./startPromethous.sh

    4、http://master:9090/targets 查看是否添加成功(prometheus 执行默认端口9090)

    通过点击http://bidatanode01:9222/metrics可以看到metrics数据

    3、安装grafana以及配置文件

    1、下载grafana,解压

    cd /usr/local
    wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.2.linux-amd64.tar.gz 
    tar -zxvf grafana-5.2.2.linux-amd64.tar.gz 
    chown -R hadoop:root grafana-5.2.2.linux-amd64

    2、用户 hadoop 启动grafana

    cd /usr/local/grafana-5.2.2/bin/
    nohup ./grafana-server start &

    3、启动后,即可通过http://master:3000/ 来访问了(默认账号密码是admin/admin,grafana默认端口3000)

    4、关联Grafana和Prometheus

    点击Data Sources 

    点击Add data source,填写数据保存

    4、配置grafana预警邮件发送

    1、检查mailx是否安装 

    rpm -qa | grep mailx

    如果检查没有安装 则需要用一下命令安装

    yum -y install mailx

    2、编辑 /usr/local/grafana-5.2.2/conf/defaults.ini

    ...
     
    #################################### SMTP / Emailing #####################
    [smtp]
    enabled = true
    host = smtp.xx.com:587
    user = sys_sender@xx.com
    # 如果密码中包含#或者; 密码需要用三个双引号包围  例如:"""QWER123;4!@#$"""
    password = xxxxxxx #此为邮箱密码
    cert_file =
    key_file =
    skip_verify = true
    from_address = sys_sender@xx.com
    from_name = sys_sender
    ehlo_identity =
    [emails]
    welcome_email_on_sign_up = false
    templates_pattern = emails/*.html
     
    ...
     
    #################################### Alerting ############################
    [alerting]
    # Disable alerting engine & UI features
    enabled = true
    # Makes it possible to turn off alert rule execution but alerting UI is visible
    execute_alerts = true

     
     

    3、测试 grafana 邮件发送

    编辑发送邮件,点击测试 OK

    =======================================================================================

    2018-08-27追加:

    对于yarn的接入也是大同小异 

    对于${HADOOP_HOME}/etc/hadoop/yarn-env.sh 添加 metrics 开启信息并制定端口

    export YARN_JMX_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=1236 -javaagent:/usr/local/prometheus_jmx_export_0.3.1/jmx_prometheus_javaagent-0.3.1.jar=9422:/usr/local/prometheus_jmx_export_0.3.1/yarn.yaml"

    然后修改${HADOOP_HOME}/bin/yarn 

    elif [ "$COMMAND" = "resourcemanager" ] ; then
      CLASSPATH=${CLASSPATH}:$YARN_CONF_DIR/rm-config/log4j.properties
      CLASS='org.apache.hadoop.yarn.server.resourcemanager.ResourceManager'
      YARN_OPTS="$YARN_OPTS $YARN_JMX_OPTS $YARN_RESOURCEMANAGER_OPTS"
      if [ "$YARN_RESOURCEMANAGER_HEAPSIZE" != "" ]; then
        JAVA_HEAP_MAX="-Xmx""$YARN_RESOURCEMANAGER_HEAPSIZE""m"
      fi
    ......
    elif [ "$COMMAND" = "nodemanager" ] ; then
      CLASSPATH=${CLASSPATH}:$YARN_CONF_DIR/nm-config/log4j.properties
      CLASS='org.apache.hadoop.yarn.server.nodemanager.NodeManager'
      YARN_OPTS="$YARN_OPTS $YARN_JMX_OPTS -server $YARN_NODEMANAGER_OPTS"
      if [ "$YARN_NODEMANAGER_HEAPSIZE" != "" ]; then
        JAVA_HEAP_MAX="-Xmx""$YARN_NODEMANAGER_HEAPSIZE""m"
      fi

     

    重启 yarn

    添加 prometheus_jmx_export下的yarn.yaml文件

    修改配置文件 prometheus.yml 

    - job_name: yarn
      static_configs:
      - targets: ['binamenode01:9422']
    

    重启 prometheus,即可

    =======================================================================================

    2018-08-29 添加

    对于hbase的监控:

    修改配置文件 $HBASE_HOME/bin/hbase

    在文件

    # figure out which class to run

    位置添加:

    #prometheus jmx export start

    HBASE_JMX_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=1237 -javaagent:/usr/local/prometheus_jmx_export_0.3.1/jmx_prometheus_javaagent-0.3.1.jar=9522:/usr/local/prometheus_jmx_export_0.3.1/hbase.yaml"

    #prometheus jmx export end
    ......
    elif [ "$COMMAND" = "master" ] ; then
      CLASS='org.apache.hadoop.hbase.master.HMaster'
      if [ "$1" != "stop" ] && [ "$1" != "clear" ] ; then
        HBASE_OPTS="$HBASE_OPTS $HBASE_JMX_OPTS $HBASE_MASTER_OPTS"
      fi
    elif [ "$COMMAND" = "regionserver" ] ; then
      CLASS='org.apache.hadoop.hbase.regionserver.HRegionServer'
      if [ "$1" != "stop" ] ; then
        HBASE_OPTS="$HBASE_OPTS $HBASE_JMX_OPTS $HBASE_REGIONSERVER_OPTS"
      fi

    重启 hbase

    添加 prometheus_jmx_export下的hbase.yaml文件

    修改配置文件 prometheus.yml 

    - job_name: hbase
      static_configs:
      - targets: ['binamenode01:9522']
    

    重启 prometheus,即可

    =======================================================================================

    2018-09-01 添加

    kylin 监控添加 

    修改 kylin.sh文件,其启动项 添加 配置

    -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false   -Dcom.sun.management.jmxremote.port=1239 -javaagent:/usr/local/prometheus_jmx_export_0.3.1/jmx_prometheus_javaagent-0.3.1.jar=9722:/usr/local/prometheus_jmx_export_0.3.1/kylin.yaml \
    

    重启 kylin

    添加 prometheus_jmx_export下的kylin.yaml文件

    修改配置文件 prometheus.yml 

    - job_name: hbase
      static_configs:
      - targets: ['binamenode01:9722']
    

    重启 prometheus,即可

    =======================================================================================

    2018-09-01 添加

    hive 监控添加

    修改文件 

    ${HIVE_HOME}/conf/hive-env.sh 添加如下代码

    if [ "$SERVICE" = "hiveserver2" ] ; then
            HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_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=1240 -javaagent:/usr/local/prometheus_jmx_export_0.3.1/jmx_prometheus_javaagent-0.3.1.jar=9822:/usr/local/prometheus_jmx_export_0.3.1/hive_hiveserver2.yaml"
    fi
    if [ "$SERVICE" = "metastore" ] ; then
            HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_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=1241 -javaagent:/usr/local/prometheus_jmx_export_0.3.1/jmx_prometheus_javaagent-0.3.1.jar=9922:/usr/local/prometheus_jmx_export_0.3.1/hive_metastore.yaml"
    fi

    添加 prometheus_jmx_export下的hive_metastore.yaml、hive_hiveserver2.yaml文件

     重启 hive的 metastore hiveserver2

    修改配置文件 prometheus.yml  

    - job_name: hbase
      static_configs:
      - targets: ['binamenode01:9822','binamenode01:9922']
    

     重启 prometheus,即可

    引用

    git: https://github.com/prometheus/jmx_exporter

    官网:https://prometheus.io/docs/instrumenting/exporters/#other-monitoring-systems

    展开全文
  • You also need Node.js and Yarn installed in order to build the frontend assets. You can directly use the go tool to download and install the prometheus and promtool binaries into your GOPATH: $ go get...
  • Prometheus 监控 Hadoop3

    千次阅读 2020-06-03 16:39:12
    Prometheus 监控 Hadoop3 可能是全网最简洁的配置攻略 下载 jmx_exporter jmx_exporter Github地址 包含下载链接和使用说明。 我们可以看到jmx的使用方法是以java agent的形式启动,会开启一个端口供Prometheus拉数...

    Prometheus 监控 Hadoop3

    可能是全网最简洁的配置攻略,欢迎讨论

    下载 jmx_exporter

    jmx_exporter Github地址 包含下载链接和使用说明。


    我们可以看到jmx的使用方法是以java agent的形式启动,会开启一个端口供Prometheus拉数:

    java -javaagent:./jmx_prometheus_javaagent-0.13.0.jar=8080:config.yaml -jar yourJar.jar
    

    创建组件配置文件
    启动jmx_exporter的时候需要指定配置文件,配置文件可以为空,但不能没有。为每个组件创建一下配置文件,暂时设置为空就好:

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

    规划一下监控体系

    如果你是像我一样正准备建设一整套hadoop的监控,我建议你规划一下监控文件的存放路径和端口。
    我是将监控相关的文件放在了和各种大数据组件平级的路径下:

    mkdir -p /opt/bigdata/monitoring
    mkdir -p /opt/bigdata/monitoring/zookeeper
    mkdir -p /opt/bigdata/monitoring/hadoop
    mv jmx_prometheus_javaagent-0.13.0.jar /opt/bigdata/monitoring
    

    我在monitoring目录下存放了jmx_exporter jar包。后续还会有主机监控node_exporter等组件,我选择将他们放在一起管理、并将配置文件分类存放了下来。
    我这样做的目的是想把监控做成一个模块,尽量少的对原有组件进行改动,降低耦合程度。

    Hadoop 配置

    Hadoop的配置十分简单,只需要在hadoop-env.sh传入参数即可:

    cd hadoop/etc/hadoop/
    vim hadoop-env.sh
    
    export HDFS_NAMENODE_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30002:/opt/bigdata/monitoring/hadoop/namenode.yaml $HDFS_NAMENODE_OPTS"
    export HDFS_DATANODE_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30003:/opt/bigdata/monitoring/hadoop/datanode.yaml $HDFS_DATANODE_OPTS"
    export YARN_RESOURCEMANAGER_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30004:/opt/bigdata/monitoring/hadoop/resourcemanager.yaml $YARN_RESOURCEMANAGER_OPTS"
    export YARN_NODEMANAGER_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30005:/opt/bigdata/monitoring/hadoop/nodemanager.yaml $YARN_NODEMANAGER_OPTS"
    export HDFS_JOURNALNODE_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30006:/opt/bigdata/monitoring/hadoop/journalnode.yaml $HDFS_JOURNALNODE_OPTS" 
    export HDFS_ZKFC_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30007:/opt/bigdata/monitoring/hadoop/zkfc.yaml $HDFS_ZKFC_OPTS"
    export HDFS_HTTPFS_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30008:/opt/bigdata/monitoring/hadoop/httpfs.yaml $HDFS_HTTPFS_OPTS" 
    export YARN_PROXYSERVER_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30009:/opt/bigdata/monitoring/hadoop/proxyserver.yaml $YARN_PROXYSERVER_OPTS" 
    export MAPRED_HISTORYSERVER_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30010:/opt/bigdata/monitoring/hadoop/historyserver.yaml $MAPRED_HISTORYSERVER_OPTS"
    

    这里每一个组件仅有一行配置。配置完后记得分发、保存和重启集群。


    (唠叨一下)
    如果你搜索了其他攻略,会发现有些攻略中配置了很多其他东西,包括JMX相关的配置项、修改启动文件等等。
    从个人角度来讲,我不太喜欢这样直接修改组件本身的操作。优秀的项目往往会充分地留有入口让我们传入一些自定义配置。
    我在官网文档 UnixShellGuide中发现了这么一段:

    (command)_(subcommand)_OPTS

    It is also possible to set options on a per subcommand basis. This allows for one to create special options for particular cases. The first part of the pattern is the command being used, but all uppercase. The second part of the command is the subcommand being used. Then finally followed by the string _OPT.
    For example, to configure mapred distcp to use a 2GB heap, one would use:
    MAPRED_DISTCP_OPTS="-Xmx2g"
    These options will appear after HADOOP_CLIENT_OPTS during execution and will generally take precedence.

    这段话告诉我们可以以(command)_(subcommand)_OPTS这一格式传入针对(subcommand)级别的配置项。
    拿我们一句组件启动命令为例:

    $HADOOP_HOME/bin/hdfs --daemon start namenode
    

    这句命令 hdfs 为 command, namenode为subcommand。因此想要对namenode组件传入配置参数则需要配置HDFS_NAMENODE_OPTS这一属性。
    相关的说明在 yarn-env.sh,hdfs-env.sh,mapred-env.sh这几个环境配置脚本文件中也有说明。上述配置也可以对应command名称分别写入这几个脚本文件,它们的优先级会高于hadoop-env.sh。

    配置监控后的弊端是使用集群启动脚本start-dfs.sh时,namenode可能启动不起来,原因是journalnode启动变慢,namenode响应超时。需要使用hdfs --daemon start namenode在对应节点启动。

    Prometheus 配置

    采取引用外部配置文件的模式,具有更好的结构性和易管理性,当组件节点发生变动,我们只需修改json文件,不需要重启prometheus。
    在prometheus根目录下新建configs目录,并新建文件 组件名.json

    [
     {
      "targets": ["ip1:port","ip2:port","ip3:port"]
     }
    ]
    

    修改配置文件prometheus.yml

    # my global config
    global:
      scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).
    
    # Alertmanager configuration
    alerting:
      alertmanagers:
      - static_configs:
        - targets:
          # - alertmanager:9093
    
    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first_rules.yml"
      # - "second_rules.yml"
    
    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'prometheus'
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
    
        static_configs:
        - targets: ['localhost:9090']
    
      - job_name: 'zookeeper'
        file_sd_configs:
        - files: 
          - configs/zookeeper.json
    
      
      - job_name: 'hdfs-namenode'
        file_sd_configs:
        - files:
          - configs/namenode.json
    
      - job_name: 'hdfs-datanode'
        file_sd_configs:
        - files:
          - configs/datanode.json
      
      - job_name: 'yarn-resourcemanager'
        file_sd_configs:
        - files:
          - configs/resourcemanager.json
    
      - job_name: 'yarn-nodemanager'
        file_sd_configs:
        - files:
          - configs/nodemanager.json
      
      - job_name: 'hdfs-journalnode'
        file_sd_configs:
        - files:
          - configs/journalnode.json
    
      - job_name: 'hdfs-zkfc'
        file_sd_configs:
        - files:
          - configs/zkfc.json
    
      - job_name: 'hdfs-httpfs'
        file_sd_configs:
        - files:
          - configs/httpfs.json
    
      - job_name: 'yarn-proxyserver'
        file_sd_configs:
        - files:
          - configs/proxyserver.json
    
      - job_name: 'mapred-historyserver'
        file_sd_configs:
        - files:
          - configs/historyserver.json
    
    

    监控展示

    Prometheus+grafana的安装配置和使用可参考本人之前写的Prometheus监控Flink或者上网找更加详细的教程
    https://www.yuque.com/u552836/hu5de3/mvhz9a


    启动 prometheus

    nohup ./prometheus --config.file=prometheus.yml &
    

    启动 grafana

    nohup bin/grafana-server &
    

    接下来就是漫长的制作面板的过程了。。。
    社区也貌似没有太多好面板模版,之后可能我会更新一些模版贴出来

    Reference

    https://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-common/UnixShellGuide.html#a.28command.29_.28subcommand.29_OPTS
    https://blog.csdn.net/YYC1503/article/details/102894698

    展开全文
  • 实时作业要保证7 x 24运行,除了要在业务逻辑和编码上下功夫之外,好的监控系统也是必不可少的。...从上图可知,Prometheus是从pushgateway拉取数据的,但是flink on yarn作业的每一个任务对应的集群不一样,地址

    实时作业要保证7 x 24运行,除了要在业务逻辑和编码上下功夫之外,好的监控系统也是必不可少的。Flink支持多种汇报监控指标(metrics)的reporter,如JMX、SLF4J、InfluxDB、Prometheus等。

    这里我们选择Prometheus+grafana,下面我们线给出一个架构图

    下面讲述一下配置过程

    1.pushGateway的安装

    从上图可知,Prometheus是从pushgateway拉取数据的,但是flink on yarn作业的每一个任务对应的集群不一样,地址不一样,那么对于Prometheus这样一个主动拉取的角色,就必须借助一个固定地址的数据中转站来进行数据的获取,pushgateway就具有类似的功能

    首先我们根据flink版本,获取对应的flink-metrics包

    wget https://repo1.maven.org/maven2/org/apache/flink/flink-metrics-prometheus_2.11/1.13.1/flink-metrics-prometheus_2.11-1.13.1.jar

    mv flink-metrics-prometheus_2.11-1.13.1.jar flink-1.13.1/lib

    下载pushGateway的安装包

    wget https://github.com/prometheus/pushgateway/releases/download/v1.4.1/pushgateway-1.4.1.darwin-amd64.tar.gz

    pushgateway启动

    nohup ./pushgateway --web.listen-address :9091 &
    

    2.Promethus的安装

    Promethus安装包下载

    wget https://github.com/prometheus/prometheus/releases/download/v2.29.0-rc.2/prometheus-2.29.0-rc.2.darwin-amd64.tar.gz

    Promethus配置

    - job_name :'prometheus'
    
         # metrics_path defaults to '/metrics'
         # scheme defaults to 'http'.
    
         static_configs:
         -   targets :  [ 'localhost:9090' ]
           labels:
             instance:   prometheus
    - job_name :   'pushgateway'
       static_configs:
       -   targets :  [ 'localhost:9091' ]
         labels:
            instance:   pushgateway
    

    启动:

    nohup ./prometheus --config.file=prometheus.yml &

    3.grafana的安装配置

    wget https://dl.grafana.com/oss/release/grafana-8.1.0.darwin-amd64.tar.gz

    启动

    nohup ./bin/grafana-server web &

    4.启动flink

    前提是准备好mysql/hadoop/hive metastore的环境

    flink配置

    metrics.reporter.promgateway.class:   org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter

    # 这里写PushGateway的主机名与端口号

    metrics.reporter.promgateway.host:   localhost

    metrics.reporter.promgateway.port:   9091

    # Flink metric在前端展示的标签(前缀)与随机后缀

    metrics.reporter.promgateway.jobName:   flink-metrics-ppg

    metrics.reporter.promgateway.randomJobNameSuffix:   true

    metrics.reporter.promgateway.deleteOnShutdown:   false

    启动yarn-session

    bin/yarn-session.sh -d

    bin/sql-client.sh -i init.sql

    insert into flink_test select *,DATE_FORMAT(birthday, 'yyyyMMdd') from mysql_users

    查看flink的web页面

    查看grafana的页面

    展开全文
  • 利用Prometheus监控Flink任务

    千次阅读 2020-07-29 16:58:35
    本篇主要记录Prometheus+Pushgateway的方式监控Flink任务。 00x准备工作 1. 下载Prometheus、Pushgateway和AlertManager 这三个工具都是Prometheus生态组件,下载地址: https://prometheus.io/download/ 01x...
  • 所以考虑使用Prometheus来代替Graphite。 Prometheus的打点默认是pull模式,和Graphite不同,而Spark3.0 新加的打点方式也是K8S友好的。所以还是考虑 使用Prometheus结合Graphite Exporter 的方式。 Graphite ...
  • 下载jmx_prometheus_javaagent-0.15.0....写需要监控的角色专属yaml namenode.yaml startDelaySeconds: 0 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口 hostPort: localhost:1234 #jmxUrl: servi
  • grafana+prometheus 安装教程请参考文章: 安装教程 2,flink配置 方案一: 修改文件conf/flink-conf.yaml metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter #...
  • 日萌社 人工智能AI:Keras PyTorch MXNet ... 拷贝jar包:cp /data/flink-1.10.1/opt/flink-metrics-prometheus-1.10.1.jar /data/flink-1.10.1/lib 修改配置文件 vim /data/flink-1.10.1/conf/flink-conf...
  • 文章目录监控 —— Prometheus Grafana监控Nacos (MAC)需求介绍嗯,开始吧安装Nacos修改Nacos配置并查看是否修改成功安装Prometheus并关联Nacosbrew install prometheus修改配置文件prometheus.yml采集Nacos ...
  • 简述 flink metric用来对外暴露系统内部的一些运行指标,比如flink框架运行时的JVM相关配置,或者基于flink开发的项目。flink提供了Counter, Gauge, Histogram ...今天主要讲的是使用Prometheus+PushGateway+Grafana...
  • python脚本实现,访问官方提供的地址,获取队列资源使用指标,并将指标进行json解析,之后再转换为prometheus认识的数据格式,暴露于端口下 #coding=utf-8 ''' 通过访问官方提供的yarn restful api界面,获取yarn资源...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 442
精华内容 176
关键字:

prometheus监控yarn