DataSophon 1.2.1集成Flink 1.20并增加JMX 监控
参考:datasophon集成Flink1.20.0
此大神有多篇集成其他服务的文章,建议关注一波
一、服务集成
flink 1.20 下载
1.构建压缩包:
1.1拷贝需要的包
tar -zxvf flink-1.20.0-bin-scala_2.12.tgz
tar czf flink-1.20.0.tar.gz flink-1.20.0# 为了flink cdc 与dinky 的使用,可根据自己的业务来添加
cp mysql-connector-java-8.0.28.jar flink-1.20.0/lib
cp dinky-app-1.20-1.2.3-jar-with-dependencies.jar flink-1.20.0/lib
cp flink-doris-connector-1.20-24.0.1.jar flink-1.20.0/lib
cp flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar flink-1.20.0/lib
cp flink-table-planner-loader-1.20.0.jar flink-1.20.0/lib
cp kafka-clients-3.9.0.jar flink-1.20.0/lib
1.2 修改jobmanager.sh
vi flink-1.20.0/bin/jobmanager.sh # 在55行 args=("--configDir" "${FLINK_CONF_DIR}" "--executionMode" "cluster" "${args[@]}") # 添加参数改为 args=("-D" "metrics.reporter.prom.port=9250" "--configDir" "${FLINK_CONF_DIR}" "--executionMode" "cluster" "${args[@]}")
1.3 修改taskmanager.sh
vi flink-1.20.0/bin/taskmanager.sh
# 在57行 args=("--configDir" "${FLINK_CONF_DIR}" "--configDir" "${FLINK_CONF_DIR}" "${ARGS[@]}")
# 添加参数改为
ARGS=("-D" "metrics.reporter.prom.port=9251" "--configDir" "${FLINK_CONF_DIR}" "${ARGS[@]}")
2.修改service_ddl.json
具体参考 上面的参考,但要注意jmxPort,需要跟上面jobmanager.sh taskmanager.sh对应,我的是9250对应的是jobmanager,9251对用的是taskmanager
3.后面继续参考
二、服务配置
按照参考安装Flink,在配置页面,在自定义配置flink-conf.yaml 添加两项配置
metrics.reporters:prom
metrics.reporter.prom.factory.class:org.apache.flink.metrics.prometheus.PrometheusReporterFactory
这两项配置也可以修改service_ddl.json,在上面添加,后续在装其他集群时不需要手动添加这这两项配置
三、验证
在Flink 都启动之后,在jobmanager节点上请求9250端口 是否又监控信息
curl localhost:9250 ,如果出现信息则正常,如果不通检查是否没其他服务占用了端口
在taskmanager 节点请求9251 curl localhost:9251
四、Prometheus 配置
1.修改prometheus.yml 添加flink 监控
vi prometheus/prometheus.yml
# 添加配置- job_name: 'jobmanager'file_sd_configs:- files:- configs/jobmanager.json- job_name: 'taskmanager'file_sd_configs:- files:- configs/taskmanager.json
2.添加相应 的json 配置
vi prometheus/configs/jobmanager.json
# 内容hostname 为 所在的hostname
[{"targets":["hostname:9250"]}
]vi prometheus/configs/taskmanager.json
# 内容
[{"targets":["hostname1:9251","hostname2:9251","hostname3:9251"]}
]
重启Prometheus
访问 hostname:9090/targets 可以通过datasophon 访问
查看
在DataSophon 主页面,点击告警组管理 -> 新建告警组
添加完成后右下角翻页找到FLINK 告警组,点击查看告警指标,新建告警指标,告警阈值一点要填1,这个是再单个节点上的监控,除非你一个节点起多个taskmanager
至此,在某个节点上kill掉taskmanger进程之后,datasophon也会通知异常,在datasophon的flink实例中对应节点也会变红