一. Prometheus的安装

 

1.1安装Prometheus Server
Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖。只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动Prometheus Server。

1.2上传安装包
上传prometheus-2.26.0.linux-amd64.tar.gz到服务器上

1.3解压安装包

[root@node3 ~]# tar -zxvf prometheus-2.26.0.linux-amd64.tar.gz

1.4修改配置文件 prometheus.yml

vim prometheus.yml
在scrape_configs配置项下添加配置:
scrape_configs:
  
  - job_name: 'prometheus'
    static_configs:
    - targets: ['10.0.0.69:9090']

  # 添加 PushGateway 监控配置
  - job_name: 'pushgateway'
    static_configs:
    - targets: ['10.0.0.69:9091']
      labels:
        instance: pushgateway

  # 添加 Node Exporter 监控配置
  - job_name: 'node exporter'
    static_configs:
    - targets: ['10.0.0.67:9100', '10.0.0.68:9100', '10.0.0.69:9100']
      labels:
        instance: node exporter

配置说明:
1、global配置块:控制Prometheus服务器的全局配置
scrape_interval:配置拉取数据的时间间隔,默认为1分钟。
evaluation_interval:规则验证(生成alert)的时间间隔,默认为1分钟。
2、rule_files配置块:规则配置文件
3、scrape_configs配置块:配置采集目标相关, prometheus监视的目标。Prometheus自身的运行信息可以通过HTTP访问,所以Prometheus可以监控自己的运行数据。
job_name:监控作业的名称
static_configs:表示静态目标配置,就是固定从某个target拉取数据
targets:指定监控的目标,其实就是从哪儿拉取数据。

1.5启动Prometheus Server

[root@node3 prometheus-2.26.0.linux-amd64]# nohup ./prometheus --config.file=prometheus.yml > ./prometheus.log 2>&1 &

浏览器输入:http://10.0.0.69:9090可成功看到页面,表示安装成功

二. Pushgateway的安装

Prometheus在正常情况下是采用拉模式从产生metric的作业或者exporter(比如专门监控主机的NodeExporter)拉取监控数据。但是我们要监控的是Flink on YARN作业,想要让Prometheus自动发现作业的提交、结束以及自动拉取数据显然是比较困难的。PushGateway就是一个中转组件,通过配置Flink on YARN作业将metric推到PushGateway,Prometheus再从PushGateway拉取就可以了。

2.1上传安装包
上传pushgateway-1.4.0.linux-amd64.tar.gz到服务器上

2.2 解压安装包

[root@node3 ~]# tar -zxvf pushgateway-1.4.0.linux-amd64.tar.gz

2.3 启动Pushgateway

[root@node3 pushgateway-1.4.0.linux-amd64]# nohup ./pushgateway --web.listen-address :9091 > ./pushgateway.log 2>&1 &

浏览器输入:http://10.0.0.69:9091可成功看到页面,表示安装成功

三. Node Exporter的安装

在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。
Exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以外,也可以是直接内置在监控目标中。只要能够向Prometheus提供标准格式的监控样本数据即可。
为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。我们可以使用Node Exporter。Node Exporter同样采用Golang编写,并且不存在任何的第三方依赖,只需要下载,解压即可运行。可以从https://prometheus.io/download/ 获取最新的node exporter版本的二进制包。

3.1上传安装包
上传node_exporter-1.1.2.linux-amd64.tar.gz到服务器上

3.2解压安装包

[root@node3 ~]# tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz

3.3 启动Node Exporter

[root@node3 node_exporter-1.1.2.linux-amd64]# nohup ./node_exporter  > ./node_exporter.log 2>&1 &

浏览器输入:http://10.0.0.69/:9100/metrics,可以看到当前node exporter获取到的当前主机的所有监控数据。

3.4节点分发并启动
将解压后的目录分发到要监控的节点,并启动节点上的node_exporter

[root@node3 ~]# scp -r  node_exporter-1.1.2.linux-amd64 root@node1:/root/

nohup ./node_exporter  > ./node_exporter.log 2>&1 &
[root@node3 ~]# scp -r  node_exporter-1.1.2.linux-amd64 root@node2:/root/

nohup ./node_exporter  > ./node_exporter.log 2>&1 &

注意:修改Prometheus配置文件prometheus.yml, 1.4已经添加过配置,重启Prometheus

启动成功

浏览器输入:http://10.0.0.69:9090/

点击 Status,选中Targets:

grafana监控平台用户登不上_大数据

prometheus、pushgateway和node exporter都是up状态,表示安装启动成功

grafana监控平台用户登不上_grafana监控平台用户登不上_02

四. 与Flink的集成

Flink官方支持Prometheus,并且提供了对接Prometheus的jar包,很方便就可以集成。

4.1拷贝jar包
将flink-metrics-prometheus-1.11.3.jar拷贝到 <flink_home>/lib目录下

[root@node3 flink-1.11.3]# cp /data/flink-1.11.3/plugins/metrics-prometheus/flink-metrics-prometheus-1.11.3.jar /data/flink-1.11.3/lib/

Flink 的 Classpath 位于lib目录下,所以插件的jar包需要放到该目录下

4.2修改Flink配置
进入到Flink的conf目录,修改flink-conf.yaml

[root@node3 conf]# vim flink-conf.yaml

添加如下配置:

##### 与Prometheus集成配置 #####
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
# PushGateway的主机名与端口号
metrics.reporter.promgateway.host: 10.0.0.69
metrics.reporter.promgateway.port: 9091
# Flink metric在前端展示的标签(前缀)与随机后缀
metrics.reporter.promgateway.jobName: flink-metrics-ppg
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false

五. Grafana的安装

下载地址:https://repo.huaweicloud.com/grafana/7.4.3/

5.1安装
将grafana-7.4.3-1.x86_64.rpm上传到服务器上

[root@node3 ~]# rpm -ivh grafana-7.4.3-1.x86_64.rpm

5.2启动

[root@node3 ~]# systemctl start grafana-server

打开web:http://10.0.0.69:3000,默认用户名和密码:admin

六. Grafana集成Prometheus

点击配置,点击Data Sources:

grafana监控平台用户登不上_flink_03

点击添加按钮:

grafana监控平台用户登不上_grafana监控平台用户登不上_04

找到Prometheus,点击Select

grafana监控平台用户登不上_grafana监控平台用户登不上_05

配置Prometheus Server地址:

grafana监控平台用户登不上_大数据_06

点击下方的Save&Test:

grafana监控平台用户登不上_hg_07

出现绿色的提示框,表示与Prometheus正常联通:

grafana监控平台用户登不上_大数据_08

点击Back返回即可,可以看到Data Sources页面,出现了添加的Prometheus:

grafana监控平台用户登不上_grafana监控平台用户登不上_09

七. Grafana集成ClickHouse

ClickHouse DataSource是由Vertamedia开发的第三方插件(这家公司也开源了负载均衡组件CHProxy)。直接用grafana-cli安装之。

[root@node3 ~]# grafana-cli plugins install vertamedia-clickhouse-datasource

需要重启grafana

[root@node3 ~]# systemctl restart grafana-server

然后在Grafana中添加数据源

grafana监控平台用户登不上_grafana监控平台用户登不上_10

配置clickshouse数据源

grafana监控平台用户登不上_grafana监控平台用户登不上_11

接着点击保存即可

grafana监控平台用户登不上_grafana监控平台用户登不上_12

八. Grafana配置仪表盘

手动一个个添加Dashboard比较繁琐,Grafana社区鼓励用户分享Dashboard,通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard模板

进入官网,搜索clickhouse模板:

grafana监控平台用户登不上_hg_13

选择一个模板并点击该模板并复制该模板地址

grafana监控平台用户登不上_linux_14

点击左侧 ”+”号,选择import:

grafana监控平台用户登不上_linux_15

复制刚刚模板地址到文本框

grafana监控平台用户登不上_linux_16

选择数据源

grafana监控平台用户登不上_linux_17

配置成功并可以实时监控clickhouse相关metric

grafana监控平台用户登不上_linux_18