Prometheus & Grafana
Prometheus 是一个开源的监控系统,具有维度数据模型、灵活的查询语言、高效的时间序列数据库和现代化的告警方法。Grafana 是一个用于分析和可视化指标的开源工具。
以下教程将指导您部署和集成 Databend、Prometheus 和 Grafana。在本教程中,您将部署一个本地的 Databend,并使用 Docker 安装 Prometheus 和 Grafana。在开始之前,请确保您已安装 Docker。
教程:使用 Prometheus & Grafana 监控 Databend
步骤 1. 部署 Databend
按照 部署指南 部署一个本地的 Databend。
本教程使用安装包 configs
文件夹中的 默认配置文件。databend-meta 的指标 API 为 0.0.0.0:28101/v1/metrics
,databend-query 的指标 API 为 0.0.0.0:7070/metrics
。
步骤 2. 部署 Prometheus
以下步骤描述了如何使用 Docker 安装和部署 Prometheus。
-
从 Docker Hub 注册表中拉取 Prometheus 的最新 Docker 镜像。
docker pull prom/prometheus
-
编辑配置文件 prometheus.yml。
将以下脚本添加到
/etc/prometheus/prometheus.yml
目录中的 prometheus.yml 文件末尾。请注意,使用 Docker 时,有多种方法可以修改容器的文件。在本教程中,我们演示如何通过将文件保存到本地文件夹并在运行 Prometheus 镜像时进行映射来实现这一点。提示Docker 容器可以通过使用
host.docker.internal
连接到主机上运行的本地服务。此功能默认仅在 Docker for Windows/Mac 上可用。但是,从 20.03 版本开始,Linux 上也支持此功能。- job_name: "databend-query"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["host.docker.internal:7070"]
- job_name: "databend-meta"
metrics_path: "/v1/metrics"
# scheme defaults to 'http'.
static_configs:
- targets: ["host.docker.internal:28101"] -
部署 Prometheus。
如果您将文件
prometheus.yml
保存并编辑在本地文件夹中,您需要使用-v
选项在命令中创建映射。为此,请将以下命令中的/path/to/prometheus.yml
替换为您的本地prometheus.yml
的路径。docker run \
-p 9090:9090 \
--add-host=host.docker.internal:host-gateway \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus -
检查指标状态
检查每个实例右侧的值。
1
表示实例健康,0
表示抓取失败。
步骤 3. 部署 Grafana
以下步骤描述了如何使用 Docker 安装和部署 Grafana。
-
从 Docker Hub 注册表中拉取 Grafana 的最新 Docker 镜像。
docker pull grafana/grafana
-
部署 Grafana。
docker run \
-p 3000:3000 \
--add-host=host.docker.internal:host-gateway \
grafana/grafana -
添加 Prometheus 类型的数据源。
打开您的网络浏览器并转到
http://0.0.0.0:3000
。首先使用用户名admin
和密码admin
登录,然后在 Configuration > Data Sources > Add data source 中添加 Prometheus 类型的数据源。请注意,将数据源的 URL 设置为
http://host.docker.internal:9090
。 -
创建仪表盘。
Databend 建议导入 datafuselabs/helm-charts - dashboards 中的文件来创建您的仪表盘。为此,首先下载文件,然后转到
http://0.0.0.0:3000/dashboard/import
逐个导入下载的文件,并为每个仪表盘选择Prometheus
数据源。