0 缘起
1)Pulsar 自带 Dashboard,对集群 Broker、Bookie、ZooKeeper 及 Topic 等进行监控和统计。
2)本文介绍如何在裸机中使用 Prometheus+Grafana 搭建 Pulsar 集群监控 Dashboard。
3)实现对 NameSpace、Topic、Broker、Bookie、ZooKeeper 等指标和组件进行监控和统计。
1 准备资源
1)1台 Linux 裸机服务器,配置4G,2核
2)Prometheus 安装包(版本号2.7.1)
3)Grafana 安装包(版本号5.4.2)
2 下载解压 Prometheus 、Grafana 安装包
# Prometheus 安装包下载
wget https://github.com/prometheus/prometheus/releases/download/v2.7.1/prometheus-2.7.1.linux-amd64.tar.gz
# 解压安装包
tar -zxvf prometheus-2.7.1.linux-amd64.tar.gz
# Grafana 安装包下载
wget https://dl.grafana.com/oss/release/grafana-5.4.2.linux-amd64.tar.gz
# 解压安装包
tar -zxvf grafana-5.4.2.linux-amd64.tar.gz
# 解压后,我的文件路径如下
# /home/admin/monitor/prometheus-2.7.1.linux-amd64
# /home/admin/monitor/grafana-5.4.2
3 配置 Prometheus 的配置文件 prometheus.yml
(1)修改集群名(cluster: pulsar-cluster)
(2)配置 broker 节点ip和端口号
(3)配置 bookie 节点ip和端口号
(4)配置 ZooKeeper 节点ip和端口号
# 说明
1 我的测试集群是3台Linux服务器
2 每台服务器上都部署一个 broker 节点、一个 bookie 节点、一个 ZooKeeper节点。
3 3台服务器的测试环境 ip 设定如下
10.0.100.60
10.0.100.70
10.0.100.80
4 Pulsar 集群搭建过程 [https://blog.csdn.net/BiLaHePan/article/details/89774464]
5 集群名为 pulsar-cluster
6 若在搭建 Pulsar 集群的过程中,没有做端口号修改,则只需要参照如下配置文件修改集群名和机器ip即可
7 我的 prometheus.yml 文件路径为 /home/admin/monitor/prometheus.yml
8 部署监控的机器 ip 为
10.0.100.90
我的prometheus.yml 文件内容如下。
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
# scrape_timeout is set to the global default (10s).
external_labels:
# TODO: replace `<cluster-name>` with the right cluster name. E.g.
#
# cluster: test-cluster
cluster: pulsar-cluster
# Load and evaluate rules in these files every 'evaluation_interval' seconds.
# rule_files:
scrape_configs:
# - job_name: "proxy"
# honor_labels: true # don't overwrite job & instance labels
# static_configs:
# - targets: ['10.0.100.60:0000']
- job_name: "broker"
honor_labels: true # don't overwrite job & instance labels
static_configs:
- targets: ['10.0.100.60:8080','10.0.100.70:8080','10.0.100.80:8080']
- job_name: "bookie"
honor_labels: true # don't overwrite job & instance labels
static_configs:
- targets: ['10.0.100.60:8000','10.0.100.70:8000','10.0.100.80:8000']
- job_name: "zookeeper"
honor_labels: true
static_configs:
- targets: ['10.0.100.60:9990','10.0.100.70:9990','10.0.100.80:9990']
#
# - job_name: "node_metrics"
# honor_labels: true # don't overwrite job & instance labels
# static_configs:
# - targets:
# TODO: add the physical machines to monitor
#
# - 'node1:9100'
# - 'node2:9100'
# - ...
4 以后台进程启动 Prometheus
# 进入 Prometheus 文件目录
cd /home/admin/monitor/prometheus-2.7.1.linux-amd64/
# 以后台进程执行启动命令
nohup ./prometheus --config.file "/home/admin/monitor/prometheus.yml" --web.enable-lifecycle --storage.tsdb.retention=10d >prometheus.log 2>&1 &
# 参数说明
# --config.file 指定 prometheus.yml 文件路径
# --web.enable-lifecycle 启动时热加载配置文件使用
# --storage.tsdb.retention 指定统计数据存储时长,10d 代表10天
# >prometheus.log 2>&1 & 存储输出的启动日志
5 访问 Prometheus
(1)部署监控的机器 ip 为 10.0.100.90
(2)在浏览器访问 http://10.0.100.90:9090/graph
(3)能成功访问及运行成功
(4)Prometheus 做时序数据存储,以及提供强大的查询功能,Dashboard 展示使用 Grafana 更漂亮专业,搭建配置 Grafana
6 以后台进程启动 Grafana
# 进入 Grafana 文件目录
cd /home/admin/monitor/grafana-5.4.2/
# 以后台进程执行启动命令
nohup ./bin/grafana-server start >grafana.log 2>&1 &
7 访问 Grafana
(1)部署监控的机器 ip 为 10.0.100.90
(2)在浏览器访问 http://10.0.100.90:3000
(3)出现如下图所示 Grafana 首页,输入默认用户名 admin,默认密码 admin。
8 配置 Grafana 数据源
(1)选择 添加Prometheus 数据源
(2)选择 Prometheus
(3)配置 Prometheus 数据源
9 导入监控 Dashboard 模板
(1)Dashboard 模板从 github 这里(https://github.com/bilahepan/Pulsar-Simple-Dashboard)获取,下载到本地
(2)选择上传导入 Dashboard模版(这里以 “Pulsar 集群总况.json” 模板为例)
(3)导入成功,可以查看 Dashboard 面板统计了
(4)可以从这里获取其他模版(https://github.com/streamnative/apache-pulsar-grafana-dashboard),也可以使用 Grafana 做一些报警通知功能