使用Prometheus+Grafana打造Flink监控页面

使用Prometheus+Grafana打造Flink监控页面

1. 下载对应的安装
组件版本下载地址
Prometheus2.36.1官网
Pusgateway1.4.3官网
node_exporter1.3.1官网
Grafana8.5.6官网
2. 安装并运行
1. 安装pushgateway

将pushgateway解压到指定目录后,直接运行pushgateway即可

启动pushgateway

nohup ./pushgateway --web.listen-address=":9092" > ./pushgateway-start.log 2>&1 &

将push gateway安装为系统服务,让systemctl来管理,直接修改/usr/lib/systemd/system/pushgateway.service,写入以下内容:

[Unit]
Description=pushgateway
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target

[Service]
ExecStart=/opt/modules/pushgateway/pushgateway --web.listen-address=:9092
Restart=on-failure

[Install]
WantedBy=multi-user.target

设置开机自启

systemctl enable pushgateway
systemctl start pushgateway
systemctl status pushgateway
2. 安装node_exporter

将node_exporter解压到指定目录后,直接运行node_exporter即可

启动node_exporter

nohup ./node_exporter --web.listen-address=":9100" > ./node_exporter-start.log 2>&1 &

将node_exporter安装为系统服务,让systemctl来管理,直接修改/usr/lib/systemd/system/node_exporter.service,写入以下内容:

[Unit]
Description=node_exporter
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target

[Service]
ExecStart=/opt/modules/node_exporter/node_exporter --web.listen-address=:9100
Restart=on-failure

[Install]
WantedBy=multi-user.target

设置开机自启

systemctl enable node_exporter
systemctl start node_exporter
systemctl status node_exporter
3. 安装Prometheus

解压Prometheus到安装目录,并修改目录下的prometheus.yml配置文件:

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    static_configs:
    # 默认端口是9090
      - targets: ["cdh1:9093"]
        labels:
          instances: prometheus

  - job_name: "pushgateway"
    # 默认为1分钟
    scrape_interval: 5s
    static_configs:
    # 默认端口是9091
      - targets: ["cdh1:9092"]
        labels:
          instances: pushgateway

  - job_name: "node_exporter"
    scrape_interval: 5s
    static_configs:
      - targets: ["cdh1:9100"]
        labels:
          instances: node_exporter

启动Prometheus服务

nohup ./prometheus --config.file=./prometheus.yml --web.listen-address=":9093" > ./prometheus-start.log 2>&1 &

启动之后在web页面上可以看到pushgateway、node_exporter以及prometheus的运行情况,地址ip:port/targets

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iARGX1s8-1655369166919)(http://yanko.test.upcdn.net/images/prometheus-targets.jpg)]

将prometheus安装为系统服务,让systemctl来管理,直接修改/usr/lib/systemd/system/prometheus.service,写入以下内容:

[Unit]
Description=prometheus
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target

[Service]
ExecStart=/opt/modules/prometheus/prometheus --config.file=/opt/modules/prometheus/prometheus.yml --web.listen-address=:9093
Restart=on-failure

[Install]
WantedBy=multi-user.target

设置开机自启

systemctl enable prometheus
systemctl start prometheus
systemctl status prometheus
4. 安装Grafana
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.0-1.x86_64.rpm
sudo yum install grafana-enterprise-9.0.0-1.x86_64.rpm

启动Grafana服务

sudo systemctl start grafana-server

启动Grafana后,可以访问web页面,地址是ip:3000,默认用户名和密码是admin/admin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-60H9LHUk-1655369166919)(http://yanko.test.upcdn.net/images/grafana-login.jpg)]

3. 配置Grafana数据源

进入Setting中选择Add Data source即可添加数据源,选择prometheus即可,添加完成后保存测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rVYP0qsI-1655369166920)(http://yanko.test.upcdn.net/images/grafana-prometheus.jpg)]

4. 配置Flink上报Metrics

修改flink-conf.yaml配置文件,新增如下配置:

metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
# pushgateway的地址和端口号
metrics.reporter.promgateway.host: cdh1
metrics.reporter.promgateway.port: 9092
metrics.reporter.promgateway.jobName: FlinkJob
# 是否自动生成JobName
metrics.reporter.promgateway.randomJobNameSuffix: true
# 作业结束后删除其对应的Metrics
metrics.reporter.promgateway.deleteOnShutdown: false
metrics.reporter.promgateway.groupingKey: k1=v1;k2=v2
# 上报Metrics的频率
metrics.reporter.promgateway.interval: 10 SECONDS

配置好之后运行flink的测试案例:

bin/flink run -d -t yarn-per-job ./examples/streaming/TopSpeedWindowing.jar

再次访问pushgateway的页面可以看到如下的metrics上报信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vQQ7KHGc-1655369166920)(http://yanko.test.upcdn.net/images/pushgateway-metrics.jpg)]

5. 登陆Grafana配置Flink监控面板

访问Grafana的dashboards页面,下载Flink的dashboards模板,官网下载地址https://grafana.com/grafana/dashboards/

下载好之后打开Grafana Web UI通过import导入刚刚所下载的Flink Metrics监控模板

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Vq3RE7D-1655369166920)(http://yanko.test.upcdn.net/images/grafana-flink.jpg)]

之后打开该dashboards即可看到flink的metrics信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sNmZxruN-1655369166920)(http://yanko.test.upcdn.net/images/grafana-flink-metrics.jpg)]

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Grafana 是一个流行的开源数据可视化和监控解决方案,可以用于监控 Flink 应用程序的指标和日志。以下是一个基于 GrafanaFlink 监控模板: 1. 安装 Grafana 您可以从 Grafana 的官方网站 https://grafana.com/ 下载并安装 Grafana。 2. 安装 Flink 监控插件 Grafana 支持通过插件来集成各种数据源。Flink 官方提供了一个 Prometheus Exporter 插件,可以将 Flink 应用程序的指标导出到 Prometheus,从而可以通过 Grafana 来展示和监控这些指标。您可以从 https://github.com/apache/flink/tree/master/flink-metrics/flink-metrics-prometheus 下载该插件。 3. 配置 Prometheus 在将 Flink 应用程序的指标导出到 Prometheus 之前,您需要先配置 Prometheus。您可以从 Prometheus 的官方网站 https://prometheus.io/ 下载并安装 Prometheus。 在 Prometheus 的配置文件 `prometheus.yml` 中,添加以下内容: ``` scrape_configs: - job_name: 'flink' static_configs: - targets: ['<flink-jobmanager-host>:9250'] ``` 其中 `<flink-jobmanager-host>` 为 Flink JobManager 的主机名或 IP 地址。该配置会告诉 Prometheus 在 `<flink-jobmanager-host>:9250` 地址上抓取 Flink 的指标。 4. 配置 GrafanaGrafana 中,您需要配置一个数据源来连接到 Prometheus,并配置一个仪表盘来展示 Flink 应用程序的指标。 - 配置数据源 在 Grafana 的界面上,点击左侧的「Configuration」按钮,选择「Data Sources」,然后点击「Add data source」。 在「Add data source」页面中,选择「Prometheus」作为数据源类型,并填写以下信息: - Name: 数据源的名称,任意填写。 - URL: Prometheus 的地址,格式为 `http://<prometheus-host>:<prometheus-port>`。 - Access: 选择「Browser」。 点击「Save & Test」按钮,测试连接是否成功。 - 配置仪表盘 在 Grafana 的界面上,点击左侧的「+」按钮,选择「Import」。 在「Import」页面中,填写以下信息: - Grafana.com Dashboard: 输入 `8588`。 - Name: 仪表盘的名称,任意填写。 - Prometheus: 选择刚才配置的 Prometheus 数据源。 点击「Load」按钮,加载仪表盘模板。 5. 查看监控指标 在 Grafana 中,您可以查看 Flink 应用程序的各种指标,例如: - Task Manager 的状态和指标,如 Task Slots 的使用情况、内存使用情况等。 - Job 的状态和指标,如 Job 的执行时间、状态转换、吞吐量等。 - 系统的指标,如 JVM 的内存使用情况、CPU 使用情况等。 您可以根据自己的需求,定制化展示和监控这些指标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yanko24

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值