先看下最终效果图
架构
Prometheus 是一个拥有多维度数据模型的、灵活的查询语句的时序数据库。它可以通过 Pull 或 Push 采集被监控系统的监控项,存入自身的时序数据库中。并且通过丰富的多维数据查询语言,满足用户的不同需求。
Grafana 是一个开源的 Metric 分析及可视化系统。支持多种数据源,详情可参考官网文档。通过对应的查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。
Prometheus 通过 Pull 方式访问 FE 或 BE 的 Metric 接口,然后将监控数据存入时序数据库。用户可以通过 Grafana 配置 Prometheus 为数据源,自定义绘制 Dashboard。
部署Prometheus(已安装 可以跳过此步骤)
下载并安装Prometheus
官方地址:https://prometheus.io/download/
wget https://github.com/prometheus/prometheus/releases/download/v2.49.0-rc.2/prometheus-2.49.0-rc.2.linux-amd64.tar.gz
tar -xf prometheus-2.49.0-rc.2.linux-amd64.tar.gz
配置 Prometheus
确认metrics
http://127.0.0.1:8040/metrics
http://127.0.0.1:8030/metrics
在 prometheus.yml 中添加 StarRocks 监控相关的配置。
# my global config
global:scrape_interval: 15s # 全局的采集间隔,默认是 1m,这里设置为 15sevaluation_interval: 15s # 全局的规则触发间隔,默认是 1m,这里设置 15sscrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'StarRocks_Cluster01' # 每一个集群称之为一个job,可以自定义名字作为StarRocks集群名metrics_path: '/metrics' # 指定获取监控项目的Restful Apistatic_configs:- targets: ['127.0.0.1:8030','127.0.0.2:8030','127.0.0.3:8030']labels:group: fe # 这里配置了 fe 的 group,该 group 中包含了 3 个 Frontends- targets: ['127.0.0.1:8040', '127.0.0.2:8040', '127.0.0.3:8040']labels:group: be # 这里配置了 be 的 group,该 group 中包含了 3 个 Backends
启动 Prometheus
通过以下命令启动 Prometheus。
nohup ./prometheus \--config.file="./prometheus.yml" \--web.listen-address=":9090" \--log.level="info" &
该命令将后台运行 Prometheus,并指定其 Web 端口为 9090。启动后,即开始采集数据,并将数据存放在 ./data 目录中。
访问 Prometheus
您可以通过 Web 页面访问 Prometheus。通过浏览器打开 9090 端口,即可访问 Prometheus 的页面。依次点击导航栏中 Status 和 Targets,即可看到所有分组 Job 的监控主机节点。正常情况下,所有节点都应为 UP,表示数据采集正常。如果节点状态不为 UP,您可以访问 StarRocks 的 Metrics 接口(http://fe_host:fe_http_port/metrics 或 http://be_host:be_http_port/metrics)检查是否可以访问。如果仍无法解决,您可以查询 Prometheus 相关文档寻找解决方案。
数据接入自有 Prometheus
如果需要将监控数据接入自有的 Prometheus 系统,您可以通过下列接口访问:
FE: fe_host:fe_http_port/metrics
BE: be_host:be_web_server_port/metrics
如果需要 JSON 格式数据,您可以通过下列接口访问:FE: fe_host:fe_http_port/metrics?type=json
BE: be_host:be_web_server_port/metrics?type=json
部署Grafana
下载并安装 Grafana(已安装 可以跳过此步骤)
从 Grafana 官网 https://grafana.com/grafana/download 下载最新版本的 Grafana。
以下示例以 grafana-8.0.6.linux-amd64 版本为例。
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.3.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-10.2.3.linux-amd64.tar.gz
配置 Grafana
在 ./conf/defaults.ini 中添加相关的配置。
...
[paths]
data = ./data
logs = ./data/log
plugins = ./data/plugins
[server]
http_port = 8000
domain = localhost
...