【Prometheus】【笔记】------第5章 Prometheus 和 Grafana 集成

第5章 Prometheus 和 Grafana 集成

Grafana 是一款采用 Go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已支持绝大部分常用的时序数据库。
下载地址:https://grafana.com/grafana/download

5.1 上传并解压

将 grafana-8.1.2.linux-amd64.tar.gz 上传至 /opt/software/ 目录下,执行解压命令:

[atguigu@hadoop202 software]$ tar -zxvf grafana-enterprise-8.1.2.linux-amd64.tar.gz -C /opt/module/

5.2 启动 Grafana

进入 Grafana 目录,执行启动命令:

[atguigu@hadoop202 grafana-8.1.2]$ nohup ./bin/grafana-server web > ./grafana.log 2>&1 &

打开 Web 页面:http://hadoop202:3000,默认用户名和密码均为 admin

5.3 添加数据源 Prometheus

  1. 点击页面配置,选择 Data Sources;

在这里插入图片描述

  1. 点击“Add data source”按钮,搜索并找到 Prometheus,点击 Select;
    在这里插入图片描述

  2. 配置 Prometheus Server 地址,在 HTTP 模块的 Server 处填入 http://hadoop1:9090
    在这里插入图片描述

  3. 点击下方的“Save & Test”,出现绿色提示框“Data source is working”,表示与 Prometheus 正常联通;
    在这里插入图片描述
    在这里插入图片描述

  4. 点击 Back 返回,即可在 Data Sources 页面看到已添加的 Prometheus 数据源。
    在这里插入图片描述

5.4 手动创建仪表盘 Dashboard

  1. 点击左边栏的“+”号,选择 Dashboard;
    在这里插入图片描述

  2. 点击“Add an empty panel”添加新的仪表板;
    在这里插入图片描述

  3. 配置仪表板名称,可通过点击“+Query”添加多个监控指标,分别配置各监控项的查询表达式等信息。
    配置仪表板监控项:
    在这里插入图片描述
    一个仪表板可以配置多个监控项,添加其他监控项:
    在这里插入图片描述

配置新的监控项:
在这里插入图片描述

5.5 直接添加 Flink 模板

手动一个个添加 Dashboard 比较繁琐,Grafana 社区鼓励用户分享 Dashboard,通过 https://grafana.com/dashboards 网站,可以找到大量可直接使用的 Dashboard 模板。
Grafana 中所有的 Dashboard 通过 JSON 进行共享,下载并且导入这些 JSON 文件,就可以直接使用这些已经定义好的 Dashboard:

进入官网,搜索 Flink 模板:
在这里插入图片描述
选择自己喜欢的模板(800+下载的这个模板相对指标较多)
选中跳转页面后,点击 Download JSON:
在这里插入图片描述
点击 Grafana 界面左侧 ”+”号,选择 import:
在这里插入图片描述
上传 JSON 文件:
在这里插入图片描述
配置模板信息:

在这里插入图片描述
导入完,在首页即可看见添加的仪表盘,点击进去查看:
在这里插入图片描述
正常提交 job,即可在 grafana 看到相关监控项的情况。
注意:代码里 env.execute(“作业名”),最好指定不同的作业名用于区分,不指定会使用默认的作业名:Flink Streaming Job,在 Grafana 页面就无法区分不同 job!!!

5.6 添加 Node Exporter 模板

同 5.5,进入 https://grafana.com/dashboards 页面,
➢ 搜索 Node Exporter,选择下载量最高的中文版本:
在这里插入图片描述
➢ 下载模板 json 文件
在这里插入图片描述
➢ 在 Grafana 中导入模板:
在这里插入图片描述
➢ 欣赏酷炫又详细的监控页:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.7 组件启停脚本

➢ 进入到/home/atguigu/bin 目录下,创建脚本 flink-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

➢ 脚本添加执行权限

[atguigu@hadoop202 bin]$ chmod +x flink-monitor.sh

5.8 配置案例

5.8.1 任务失败监控

这一个指标监控主要是基于 flink_jobmanager_job_uptime 这个指标进行了监控。原理是在 job 任务存活时,会按照配置 metrics.reporter.promgateway.interval 上报频率递增。基于这个特点,当任务失败后这个数值就不会改变,就能监控到任务失败。
➢ 添加监控项:
在这里插入图片描述
在这里插入图片描述
30 秒为数据上报到 promgateway 频率,除以 100 为了数据好看,当 job 任务失败后数 flink 上报的 promgateway 的 flink_jobmanager_job_uptime 指标值不会变化。((flink_jobmanager_job_uptime)-(flink_jobmanager_job_uptime offset 30s))/100 值就会是 0,可以配置告警。
➢ 配置告警
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在告警通知中可以邮件和 webhook,webhook 可以调用相关接口,执行一些动作。webhook 需要提前配置,在这里配置告警时就可以直接引入。

5.8.2 网络延时或任务重启监控

这个告警也是基于 flink_jobmanager_job_uptime 指标,在出现网络延时或者重启后进行监控通知,监控指标如下:

((flink_jobmanager_job_uptime offset 30s)-(flink_jobmanager_job_uptime))/1000
1)延时会导致值突然小于-30(正常情况为-30)
2)重启会导致 flink_jobmanager_job_uptime 指标清零从新从 0 值上报,导致查询公式值突然大于 0(正常情况为-30)
➢ 添加监控项
在这里插入图片描述
➢ 配置告警规则:
在这里插入图片描述

5.8.3 重启次数

基于 flink_jobmanager_job_numRestarts 指标,表示 flink job 的重启次数。一般设置重启策略后,在任务异常重启后这个数值会递增+1。可以单纯的监控重启次数,也可以每次重启都进行告警(差值)。
在这里插入图片描述

利用当前值减去 30 秒前的值,如果等于 1 证明重启了一次。
➢ 添加告警规则:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值