监控系统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.mfbz.cn/a/554629.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型应用实践闭门研讨会即将召开|爱分析活动

随着人工智能领域大模型技术的快速发展&#xff0c;政府出具很多指导性意见&#xff0c;在最新的《2024年政府工作报告》中&#xff0c;明确提出了开展“人工智能”行动&#xff0c;显示出政府对AI大模型发展的高度重视和支持。金融行业在AI大模型领域的政策支持和工作进展都呈…

c++的学习之路:25、map与set

摘要 本文中说一下map与set的使用 目录 摘要 一、关联式容器 二、键值对 三、map 1、map的介绍 2、map的使用 1、map的模板参数说明&#xff1a; 2、map的构造 3、map的迭代器 4、map的容量与元素访问 5、map中元素的修改 6、代码使用 ​编辑 三、总结 四、se…

智慧煤矿/智慧矿区视频汇聚存储与安全风险智能分析平台建设思路

一、建设背景 目前我国非常重视煤矿安全生产&#xff0c;并投入大量资金用于煤矿安全综合远程监控系统的研发。视频监控系统作为实现煤矿智能化无人开采的关键系统与煤矿安全生产的多系统协同分析与处理的关键信息源&#xff0c;在智慧矿山管控平台的建设中发挥着重要的作用。…

【七 (1)FineBI FCP模拟试卷-股票收盘价分析】

目录 文章导航一、字段解释二、需求三、操作步骤1、添加计算字段&#xff08;每月最后一天的收盘价&#xff09;2、绘制折线图 文章导航 【一 简明数据分析进阶路径介绍&#xff08;文章导航&#xff09;】 一、字段解释 Company Name&#xff1a;公司名称 Date&#xff1a;…

8条指南教你设计奶油风客厅。福州中宅装饰,福州装修

作为一名专业的设计师&#xff0c;我将为您带来一些关于奶油风客厅设计的干货。奶油风是一种温馨、柔和的装修风格&#xff0c;以下是一些设计指南&#xff0c;帮助您打造一个舒适而美丽的奶油风客厅。 1. 色彩搭配 除了米色、浅黄色和淡粉色等基础色调&#xff0c;还可以尝试…

性能分析与调优

性能分析方法 自底向上&#xff1a;通过监控硬件及操作系统性能指标&#xff08;cpu、内存、磁盘、网络等硬件资源的性能指标&#xff09;来分析性能问题&#xff08;配置、程序问题&#xff09; 先检查&#xff0c;再下药 自顶向下&#xff1a;通过生成负载来观察被测试的系…

SEW减速机参数查询 2-2 实践

首先说说结论&#xff1a;在不和SEW官方取得沟通之前&#xff0c;你几乎无法直接通过查阅SEW官方文档得到相关减速机的所有技术参数&#xff1a;比如轴的模数和齿数&#xff0c;轴承的参数。我在周一耗费了一个上午&#xff0c;最终和SEW方面确认后才知晓相关技术参数需要凭借销…

claude不支持中国怎么办

Claude 3 是AnthropicAI 公司推出的大语言模型&#xff0c;直接对标GPT4。Claude 3 系列模型&#xff0c;包括Claude 3 Opus、Claude 3 Sonnet 和 Claude 3 Haiku。 我们完全可以依据自己的需求选用适合的模型&#xff0c;在在智能水平、处理速度和成本之间&#xff0c;找到最…

取模学习之Image2Lcd

使用软件Image2Lcd V0.4 1.&#xff1a;打开图片&#xff0c;图片格式可选如下图&#xff0c;本文使用的.jpg格式 转换后数组例子&#xff08;数组头数据占前8字节&#xff09;&#xff1a; 2.&#xff1a;扫描模式 由第1个字节低四位配置 &#xff08;1&#xff09;水平扫描 …

vue3 源码解析(7)— diff 算法源码的实现

前言 vue3 采用的 diff 算法名为快速 diff 算法&#xff0c;整个 diff 的过程分为以下5个阶段完成。 处理前置节点处理后置节点处理仅有新增节点处理仅有删除节点处理其他情况&#xff08;新增 / 卸载 / 移动&#xff09; 这里我们先定义新旧两个节点列表&#xff0c;接下来…

再生龙(Clonezilla)网络克隆linux系统实现迁移——筑梦之路

官方网站&#xff1a;Clonezilla - 簡介 环境说明 源端&#xff1a;CentOS 7 操作系统的虚拟机&#xff0c;硬盘大小为 40GiB&#xff0c;分为 1GiB 的 /boot&#xff08;启动&#xff09;分区、4GiB 的 swap&#xff08;交换&#xff09;分区和 35GiB 的 /&#xff08;根&…

K8S一 k8s基础知识及实战

一 K8S 概览 1.1 K8S 是什么&#xff1f; K8S官网文档&#xff1a;https://kubernetes.io/zh/docs/home/ K8S 是Kubernetes的全称&#xff0c;源于希腊语&#xff0c;意为“舵手”或“飞行员”&#xff0c;官方称其是&#xff1a;用于自动部署、扩展和管理“容器化&#xff08…

LeetCode in Python 509. Fibonacci Number (斐波那契数)

斐波那契数实现方式有多种方法&#xff0c;最容易理解的为递归法&#xff0c;也可使用动态规划降低时间复杂度&#xff0c;本文给出递归法和动态规划两种方法的代码实现。 示例&#xff1a; 图1 斐波那契数输入输出示例 方法一&#xff1a;递归法 代码&#xff1a; class …

如何在本地创建一个贪吃蛇小游戏node.js服务并实现无公网IP远程游玩

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽…

CoFSM基于共现尺度空间的多模态遥感图像匹配方法--论文阅读记录

目录 论文 Multi-Modal Remote Sensing Image Matching Considering Co-Occurrence Filter 参考论文&#xff1a;SIFT系列论文&#xff0c; SIFT Distinctive Image Features from Scale-Invariant Keypoints&#xff0c;作者&#xff1a;David G. Lowe 快速样本共识算法…

Leetcode 53. 最大子数组和

心路历程&#xff1a; 子数组的和是可以通过前面的和加上当前值递推获得&#xff0c;所以可以用动态规划解决这道题 注意的点&#xff1a; 1、这道题再获取最大值时res不能用0而需要用负无穷初始化 解法&#xff1a;动态规划 class Solution:def maxSubArray(self, nums: …

(十三)C++自制植物大战僵尸游戏多用户存档实现(二)

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs UserData.h 在头文件中定义了枚举类型openUserDataReturnType&#xff0c;用于表示打开用户数据文件的返回状态。FileExistError表示文件存在但是打开错误&#xff0c;FileExistCorrect表示文件在且正确&#xff0…

Python | Leetcode Python题解之第29题两数相除

题目&#xff1a; 题解&#xff1a; class Solution:def divide(self, dividend: int, divisor: int) -> int:INT_MIN, INT_MAX -2**31, 2**31 - 1# 考虑被除数为最小值的情况if dividend INT_MIN:if divisor 1:return INT_MINif divisor -1:return INT_MAX# 考虑除数为…

Pandas数据分析学习笔记

前言 开刷Pandas数据分析&#xff0c;看起来很好理解&#xff0c;不过没做笔记没敲代码心里总是不安稳&#xff0c;所以复现下课程代码并演示其中遇到的问题&#xff0c;顺便水一水笔记好了 参考资料&#xff1a; 课程视频链接&#xff1a;Pandas数据分析从入门到实战 数据…

Halo自定义页面

在使用Halo后台维护项目&#xff0c;有的页面是固定的&#xff0c;但内容需要一些自定义样式&#xff0c;内容动态编辑生成&#xff0c;这个时候就需要自定义页面; Halo版本 版本&#xff1a;2.121.首先在theme.yaml中添加自定义页面并指定文件名 spec:customTemplates:page:…
最新文章