Prometheus的安装
官网:https://prometheus.io/
下载地址:https://prometheus.io/download/
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:
prometheus、pushgateway和node exporter都是up状态,表示安装启动成功
与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:
点击添加按钮:
找到Prometheus,点击Select
配置Prometheus Server地址:
点击下方的Save&Test:
出现绿色的提示框,表示与Prometheus正常联通:
点击Back返回即可,可以看到Data Sources页面,出现了添加的Prometheus:
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中添加数据源
配置clickshouse数据源
接着点击保存即可
Grafana配置仪表盘
手动一个个添加Dashboard比较繁琐,Grafana社区鼓励用户分享Dashboard,通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard模板
进入官网,搜索clickhouse模板:
选择一个模板并点击该模板并复制该模板地址
点击左侧 ”+”号,选择import:
复制刚刚模板地址到文本框
选择数据源
配置成功并可以实时监控clickhouse相关metric