监控系统Prometheus--与第三方框架集成

文章目录

  • 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

  1. 点击CA智能告警平台

  2. 点击集成

  3. 选择Grafana

  4. 填入应用名称,并点击“保存并获取应用key

  5. 得到AppKey之后,配置Grafana

  6. 在Grafana中创建Notification channel
    在这里插入图片描述

  7. 配置channel
    在这里插入图片描述

  8. Test&Save 测试后会接到电话以及邮件
    在这里插入图片描述

配置分派策略

分派策略可以配置,哪些应用的告警信息,发送给哪些用户

  1. 点击“配置”→“分派策略”→“新建分派”
    在这里插入图片描述

  2. 配置具体分派策略

配置通知策略

通知策略,可以配置被分派人接收告警的通知方式,通知时间,通知延时等等。

1)点击“配置”→“通知策略”→“新建通知”

2)配置具体的通知策略
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/618618.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包&#xff0c;选择“解压到MatlabR2024a“。 2.打开解压后的文件夹&#xff0c;鼠标右击“MATHWORKS_R2024A“选择装载。 鼠标右击“setup“选择”以管理员身份运行“。点击“是“&#xff0c;然后点击”下一步“。复制一下密钥粘贴至输入栏&#xff0c;然后…

【1000个GDB技巧之】GDB运行中如何动态更新内存的corefile?

场景 /proc/kcore包括了linux内存&#xff0c;但是在gdb试用中的时候&#xff0c;加载的可能支持某个快照。如何动态读取最新数据而不用退出重新加载&#xff0c;就使用GDB的core-file进行处理。 core-file /proc/kcore效果&#xff1a; 未更新前数据不会变化&#xff0c;更新…

【STL详解 —— stack和queue的介绍及使用】

STL详解 —— stack和queue的介绍及使用 stackstack的定义方式stack的使用 queuequeue的定义方式queue的使用 stack stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其只能从容器的一端进行元素的插入与提取操作。 stack的定义方式 首…

鉴权设计(一)———— 登录验证

1、概述 网站系统出于安全性的考虑会对用户进行两个层面的校验&#xff1a;身份认证以及权限认证。这两个认证可以保证只有特定的用户才能访问特定的数据的需求。 本文先实现一个基于jwt拦截器redis注解实现的简单登录验证功能。 2、设计思路 jwt用于签发token。 拦截器用于拦…

Kubernetes的Ingress Controller

前言 Kubernetes暴露服务的方式有一下几种&#xff1a;LoadBlancer Service、ExternalName、NodePort Service、Ingress&#xff0c;使用四层负载均衡调度器Service时&#xff0c;当客户端访问kubernetes集群内部的应用时&#xff0c;数据包的走向如下面流程所示&#xff1a;C…

vue-router 原理【详解】hash模式 vs H5 history 模式

hash 模式 【推荐】 路由效果 在不刷新页面的前提下&#xff0c;根据 URL 中的 hash 值&#xff0c;渲染对应的页面 http://test.com/#/login 登录页http://test.com/#/index 首页 核心API – window.onhashchange 监听 hash 的变化&#xff0c;触发视图更新 window.onhas…

Kali系统开启SSH服务结合内网穿透工具实现无公网IP远程连接

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 本文主要介绍如何在Kali系统编辑SSH配置文件并结合cpolar内网穿透软件&#xff0c;实现公网环境ssh远程连接本地kali系统。 1. 启…

【群智能算法改进】一种改进的火鹰优化算法 改进的IFHO算法【Matlab代码#77】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 原始火鹰优化算法1.1 种群初始化1.2 火鹰点火阶段1.3 猎物移动阶段 2. 改进的火鹰优化算法2.1 Tent映射种群初始化2.2 非线性复合自适应惯性权重随机抉择策略 3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源…

【Python系列】pydantic版本问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

机器学习 | 使用Scikit-Learn实现分层抽样

在本文中&#xff0c;我们将学习如何使用Scikit-Learn实现分层抽样。 什么是分层抽样&#xff1f; 分层抽样是一种抽样方法&#xff0c;首先将总体的单位按某种特征分为若干次级总体&#xff08;层&#xff09;&#xff0c;然后再从每一层内进行单纯随机抽样&#xff0c;组成…

1.9 数据结构之 并查集

编程总结 在刷题之前需要反复练习的编程技巧&#xff0c;尤其是手写各类数据结构实现&#xff0c;它们好比就是全真教的上乘武功 本栏目为学习笔记参考&#xff1a;https://leetcode.cn/leetbook/read/disjoint-set/oviefi/ 1.0 概述 并查集&#xff08;Union Find&#xff09…

如何在MacOS上使用OpenHarmony SDK交叉编译?

本文以cJSON三方库为例介绍如何通过OpenHarmony的SDK在Mac平台进行交叉编译。 环境准备 SDK准备 我们可以通过 openHarmony SDK 官方发布渠道下载对应mac版本的SDK&#xff0c;当前OpenHarmony MAC版本的SDK有2种&#xff0c;一种是x86架构&#xff0c;另一种是arm64&#x…