flinkOnYarn并配置prometheus+grafana监控告警

news/2024/11/14 9:05:48/

flinkOnYarnprometheusgrafana_1">flinkOnYarn并配置prometheus+grafana监控告警

一、相关服务版本:

flink版本:1.17.2
pushgateway版本:1.10.0
prometheus版本:3.0.0
grafana-v11.3.0

参考了网上的多个文档以及学习某硅谷的视频,总结了一下文档,希望对你有用,如有出入,欢迎评论沟通,博主看到后会第一时间回复。

flink_11">二、安装flink

1、找一台安装有Yarn相关服务配置的服务器来安装flink服务。(主要是为了启动flink的历史服务器,可以查看成功或者失败的flink任务)
修改 conf/flink-conf.yaml 配置文件

jobmanager.archive.fs.dir: hdfs://bigdata/logs/flink-job
historyserver.web.address: hadoop112
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://bigdata/logs/flink-job
historyserver.archive.fs.refresh-interval: 5000

2、创建历史服务器数据目录:

hadoop fs -mkdir -p /logs/flink-job

3、在用户家目录中的.bash_profile 文件中添加环境变量

# flink相关配置
export HADOOP_CLASSPATH=`hadoop classpath`不行的话:再添加hadoop目录环境变量
HADOOP_HOME=/opt/module/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`

4、启动历史服务器

bin/historyserver.sh startbin/historyserver.sh stop

历史服务器对应的web端口:

http://hadoop102:8082

5、尝试去提交flinkOnYarn作业

bin/flink run-application -t yarn-application -c com.atguigu.source.DataGeneratorDemo FlinkTutorial-1.17.2-1.0-SNAPSHOT.jar

6、修改conf/flink-conf.yaml 文件增加监控配置

metrics.reporter.promgateway.factory.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporterFactory
metrics.reporter.promgateway.host: hadoop112  # 修改为你的promgateway所在的IP地址
metrics.reporter.promgateway.port: 9091 # 对应的promgateway的端口
metrics.reporter.promgateway.jobName: myJob  # 这个jobName也可以在后面提交具体任务的时候更改
metrics.reporter.promgateway.randomJobNameSuffix: true # 用于在job_name后生成一个随机字符串,用于区分同jobName名的不同任务
metrics.reporter.promgateway.deleteOnShutdown: false  # 为true,当flink任务杀死,会一并将在promgateway上的记录删除。为false,不会删除。
#metrics.reporter.promgateway.groupingKey: k1=v1;k2=v2 # key和value值可以任意,用来区分不同的业务job任务,可以再监控时进行任务筛选
metrics.reporter.promgateway.interval: 30 SECONDS #当前flink任务运行参数多久上报一次。

prometheus__grafana_75">三、配置监控告警 prometheus + grafana

1、下载prometheus 和 pushgateway
1.1、解压运行pushgateway,这里用的pushgateway-1.10.0

nohup ./pushgateway --web.listen-address :9091 > ./pushgateway.log 2>&1 &

1.2、解压prometheus-3.0.0,修改 prometheus.yml 配置文件,增加如下配置

  - job_name: 'pushgateway'scrape_interval: 10shonor_labels: true #加上此配置exporter节点上传数据中的⼀些标签将不会被pushgateway节点的相同标签覆盖 static_configs:- targets: ['localhost:9091']  # pushgateway的服务器地址labels:instance: pushgateway

注意:yml文件格式

在这里插入图片描述

pushgateway的 web端口:

http://hadoop112:9091

在这里插入图片描述可以查看到当前提交的flink任务的实时监控指标。

1.3、启动prometheus服务

nohup ./prometheus --config.file=prometheus.yml > ./prometheus.log 2>&1 &

prometheus web端口:

http://hadoop112:9090/targets

在这里插入图片描述可以看到pushgateway 状态为up,正常。

2、安装grafana
2.1、下载并解压,并启动grafana

nohup ./bin/grafana-server web > ./grafana.log 2>&1 &

2.2、web端口

http://hadoop112:3000默认账户:admin
默认密码:admin

2.3、配置仪表板
添加prometheus数据源
在这里插入图片描述

配置仪表板
在这里插入图片描述

这里我使用的flink_jobmanager_job_uptime 监控指标参数来判断当前任务是否存活。这里的k1就是前面在flink配置文件中配置的metrics.reporter.promgateway.groupingKey参数,当然也可以用其他字段进行筛选,
计算逻辑:当前值减去30s前的数据值,再除以1000。

((flink_jobmanager_job_uptime{ k1="v7"})-(flink_jobmanager_job_uptime{ k1="v7"} offset 30s))/1000

告警规则如下:
出发告警的条件:
1、当最新的数据值小于5
2、评估周期2分钟都小于5,
3、并且连续4分钟都小于5 ,就触发告警。
告警方式可以使邮件或者飞书等其他平台。

在这里插入图片描述
在这里插入图片描述
如有帮助,欢迎点赞加评论。


http://www.ppmy.cn/news/1546884.html

相关文章

c++基础28函数的类型

函数的类型 基本用法例子usingfucntion 基本用法 在C中,函数类型是指函数的签名,包括返回类型、参数类型以及参数的数量。函数类型可以用来声明函数指针、函数引用或者作为模板参数。 函数也可当成一种数据类型 函数指针: 函数指针可以指向…

Spring Boot编程训练系统:构建与优化

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

足球社区管理系统 基于Spring Boot框架实现的足球社区管理系统(程序+数据库+报告)

基于Spring Boot框架实现的足球社区管理系统,系统包含两种角色:管理员、教练用户,系统分为前台和后台两大模块,主要功能如下。 【前台】: - 首页:展示系统的概览信息和热门内容。 - 足球资讯:提供最新的足…

Java毕业设计-基于微信小程序的校园二手物品交易系统的实现(V2.0)

博主介绍:✌stormjun、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

The Internals of PostgreSQL 翻译版 持续更新...

为了方便自己快速学习,整理了翻译版本,目前翻译的还不完善,后续会边学习边完善。 文档用于自己快速参考,会持续修正,能力有限,无法确保正确!!! 《The Internals of PostgreSQL 》 不是 《 PostgreSQL14 Internals 》…

设计模式-七个基本原则之一-迪米特法则 + 案例

迪米特法则:(LoD) 面向对象七个基本原则之一 只与直接的朋友通信:对象应只与自己直接关联的对象通信,例如:方法参数、返回值、创建的对象。避免“链式调用”:尽量避免通过多个对象链进行调用。例如,a.getB().getC().do…

Java与HTML:构建静态网页

在Web开发领域,HTML是构建网页的基础标记语言,而Java作为一种强大的编程语言,也能够在创建HTML内容方面发挥重要作用。今天,我们就来探讨一下如何使用Java来制作一个不那么简单的静态网页。 一、项目准备 首先,我们需…

如何使用Django写个接口,然后postman中调用

好的,下面是一个详细的步骤,展示如何使用 Django 创建一个简单的 API 接口,并在 Postman 中进行调用。 1. 创建 Django 项目和应用 首先,确保你已经安装了 Django。如果还没有安装,可以使用以下命令安装:…