当前位置: 首页 > news >正文

flinkOnYarn并配置prometheus+grafana监控告警

flinkOnYarn并配置prometheus+grafana监控告警

一、相关服务版本:

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

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

二、安装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

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.lryc.cn/news/485478.html

相关文章:

  • 麒麟系统下docker搭建jenkins
  • 论文阅读 - Causally Regularized Learning with Agnostic Data Selection
  • 计算机网络之会话层
  • blind-watermark - 水印绑定
  • reduce-scatter:适合分布式计算;Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响
  • DAY64||dijkstra(堆优化版)精讲 ||Bellman_ford 算法精讲
  • 使用Git工具在GitHub的仓库中上传文件夹(超详细)
  • Python酷库之旅-第三方库Pandas(218)
  • 斗鱼大数据面试题及参考答案
  • 后仿真中的GLS测试用例的选取规则
  • 对接阿里云实人认证
  • UI库架构设计
  • 电子应用产品设计方案-9:全自动智能马桶系统设计方案
  • My_SQL day3
  • 【代码随想录day31】【C++复健】56. 合并区间;738.单调递增的数字
  • jmeter常用配置元件介绍总结之逻辑控制器
  • 解决Windows远程桌面 “为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多。请稍后片刻再重试,或与系统管理员或技术支持联系“问题
  • 中文书籍对《人月神话》的引用(161-210本):微软的秘密
  • 关于写React的一些反思和总结
  • Qt 每日面试题 -10
  • 三正科技笔试题
  • Selective attention improves transformer详细解读
  • git配置用户信息
  • 【eNSP】路由基础与路由来源——静态路由实验
  • Python Web 应用开发基础知识
  • STM32 标准库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别
  • 【Redis_Day4】内部编码和单线程模型
  • Vue模块化开发的理解
  • 在Ubuntu22.04上源码构建ROS noetic环境
  • 算法--解决二叉树遍历问题