文章目录
- Prometheus和Flink集成
- 拷贝jar包
- 修改Flink配置
- 为了运行测试程序,启动netcat
- 启动hdfs、yarn,提交flink任务到yarn上
- 可以通过8088跳到flinkUI的job页面,查看指标统计
- 刷新Prometheus页面,如果有flink指标,集成成功
- Prometheus和Grafana集成
- 上传并解压
- 启动Grafana
- 添加数据源Prometheus
- 手动创建仪表盘Dashboard
- 直接添加模板
- 配置案例
- 组件启停脚本
- Prometheus集成第三方告警平台睿象云
- 注册睿象云账号
- 集成Grafana
- 配置分派策略
- 配置通知策略
Prometheus和Flink集成
Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更
好地理解作业或集群的状态。由于集群运行后很难发现内部的实际状况,跑得慢或快,是否
异常等,开发人员无法实时查看所有的 Task 日志。比如作业很大或者有很多作业的情况
下,该如何处理?此时 Metrics 可以很好的帮助开发人员了解作业的当前状况。
Flink官方支持Prometheus,并且提供了对接
Prometheus 的jar 包,很方便就可以集成。
拷贝jar包
拷贝新的flink目录,flink-prometheus
将flink-metrics-prometheus-1.12.0.jar 拷贝到 <flink_home>/lib 目录下
[yudan@hadoop102 flink-prometheus]$ cp /opt/module/flink-prometheus/plugins/metrics-prometheus/flink-metrics-prometheus-1.12.0.jar /opt/module/flink-prometheus/lib/
Flink 的 Classpath 位于 lib 目录下,所以插件的jar包需要放到该目录下
修改Flink配置
进入到Flink的conf目录,修改flink-conf.yaml
[yudan@hadoop102 conf]$ vim flink-conf.yaml
添加如下配置:
##### 与Prometheus 集成配置 #####
metrics.reporter.promgateway.class:
org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
# PushGateway 的主机名与端口号
metrics.reporter.promgateway.host: hadoop202
metrics.reporter.promgateway.port: 9091
# Flink metric 在前端展示的标签(前缀)与随机后缀
metrics.reporter.promgateway.jobName: flink-metrics-ppg
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false
metrics.reporter.promgateway.interval: 30 SECONDS
为了运行测试程序,启动netcat
[yudan@hadoop102 sbin]$ nc -lk 9999
启动hdfs、yarn,提交flink任务到yarn上
[yudan@hadoop102 flink-prometheus]$ bin/flink run -t yarn-per-job -c com.yudan.flink.chapter02.Flink03_WordCount_UnboundStream ./flink-base-1.0-SNAPSHOT-jar-with-dependencies.jar
可以通过8088跳到flinkUI的job页面,查看指标统计
刷新Prometheus页面,如果有flink指标,集成成功
Prometheus和Grafana集成
grafana 是一款采用Go语言编写的开源应用,主要用于大规模指标数据的可视化展现,
是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数
据库。下载地址:https://grafana.com/grafana/download
上传并解压
将grafana-8.1.2.linux-amd64.tar.gz 上传至/opt/software/目录下,解压:
[yudan@hadoop102 software]$ tar -zxvf grafana-enterprise-8.1.2.linux-amd64.tar.gz -C /opt/module/
启动Grafana
[yudan@hadoop102 grafana-8.1.2]$ nohup ./bin/grafana-server web > ./grafana.log 2>&1 &
打开web:http://hadoop102:3000,默认用户名和密码:admin
添加数据源Prometheus
点击配置,点击Data Sources:
点击添加按钮:
找到Prometheus,点击Select
配置Prometheus Server地址:
点击下方的Save&Test:
出现绿色的提示框,表示与Prometheus正常联通:
点击Back返回即可,可以看到Data Sources页面,出现了添加的Prometheus:
手动创建仪表盘Dashboard
点击左边栏的 “+”号,选择Dashboard:
添加新的仪表板,点击Add an empty panel:
配置仪表板监控项:
一个仪表板可以配置多个监控项,添加其他监控项:
直接添加模板
手动一个个添加Dashboard比较繁琐,Grafana社区鼓励用户分享Dashboard,通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard模板。
Grafana 中所有的Dashboard通过JSON进行共享,下载并且导入这些JSON文件,
就可以直接使用这些已经定义好的Dashboard:
下载好对应的模板后
点击Grafana界面左侧 ”+”号,选择import:
上传JSON文件:
配置模板信息:
导入完,在首页即可看见添加的仪表盘
正常提交job,即可在grafana看到相关监控项的情况。
注意:代码里env.execute(“作业名”),最好指定不同的作业名用于区分,不指定会使用默
认的作业名:Flink Streaming Job,在Grafana页面就无法区分不同job!!!
配置案例
组件启停脚本
进入到/home/yudan/bin目录下,创建脚本prometheus-monitor.sh
#!/bin/bash
case $1 in
"start"){ echo '----- 启动 prometheus -----' nohup /opt/module/prometheus-2.29.1/prometheus --web.enable-admin-api --config.file=/opt/module/prometheus-2.29.1/prometheus.yml > /opt/module/prometheus-2.29.1/prometheus.log 2>&1 & echo '----- 启动 pushgateway -----' nohup /opt/module/pushgateway-1.4.1/pushgateway --web.listen-address :9091 > /opt/module/pushgateway-1.4.1/pushgateway.log 2>&1 & echo '----- 启动 grafana -----' nohup /opt/module/grafana-8.1.2/bin/grafana-server --homepath /opt/module/grafana-8.1.2 web > /opt/module/grafana-8.1.2/grafana.log 2>&1 &
};;
"stop"){ echo '----- 停止 grafana -----' pgrep -f grafana | xargs kill echo '----- 停止 pushgateway -----' pgrep -f pushgateway | xargs kill echo '----- 停止 prometheus -----' pgrep -f prometheus | xargs kill
};;
esac
脚本添加执行权限
[yudan@hadoop102 bin]$ chmod +x prometheus-monitor.sh
Prometheus集成第三方告警平台睿象云
邮件通知常会出现接收不及时的问题,为确保通知信息被及时接收,可通过配置Prometheus 或者Grafana 与第三方平台告警平台(例如睿象云)集成,进而通过第三方平台提供的多种告警媒介(例如电话,短信)等发送告警信息。
注册睿象云账号
集成睿象云之前须在其官网进行注册并登录,注册时需填入个人手机号和电子邮箱,以下是其官方网站https://www.aiops.com。
集成Grafana
-
点击CA智能告警平台
-
点击集成
-
选择Grafana
-
填入应用名称,并点击“保存并获取应用key
-
得到AppKey之后,配置Grafana
-
在Grafana中创建Notification channel
-
配置channel
-
Test&Save 测试后会接到电话以及邮件
配置分派策略
分派策略可以配置,哪些应用的告警信息,发送给哪些用户
-
点击“配置”→“分派策略”→“新建分派”
-
配置具体分派策略
配置通知策略
通知策略,可以配置被分派人接收告警的通知方式,通知时间,通知延时等等。
1)点击“配置”→“通知策略”→“新建通知”
2)配置具体的通知策略