cratedb 监控

cratedb监控

使用 Docker(和 JMX 监控)启动 Prometheus、Grafana 和 CrateDB

为了运行我们的工具,我们将使用 Docker。我们将使用docker-compose构建我们的容器,它非常方便地定义和运行多容器 Docker 应用程序。

Docker-compose 预装在您的 Docker 安装中。如果你没有安装 Docker,你可以在这里下载——只需按照弹出的说明进行操作即可。

Docker 安装完成后,创建一个工作目录并使用终端导航到那里。在那里,创建一个docker-compose.yml包含以下内容文件:

version: "2.3"
services:
  cratedb:
    image: "crate"
    volumes:
      - ./crate-jmx-exporter-1.0.0.jar:/jmxdir/crate-jmx-exporter-1.0.0.jar
    ports:
      - "4200:4200"
      - "7071:7071"
    environment:
      CRATE_JAVA_OPTS: "-javaagent:/jmxdir/crate-jmx-exporter-1.0.0.jar=7071 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false"
  prometheus:
    image: "prom/prometheus"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"
  grafana:
    image: "grafana/grafana"
    ports:
      - "3000:3000"

(可以通过多种方式创建.yml文件。在macOS中,可以打开nano这样的终端文本编辑器,用.yml扩展名保存文件。也可以使用文本编辑器。)

现在,让我们继续下一步。正如我们在介绍中简要提到的,为了抓取 CrateDB,我们使用了Java 管理扩展(JMX) 和 CrateDB JMX 监控功能

要进行设置,请在.jar 此处下载最新的 JMX 监控点击/1.0.0;在这篇博文中,我使用了名为crate-jmx-exporter-1.0.0.jar 的文件然后,将 .jar 文件移动到您之前创建的工作目录中。

注意:让我们仔细看看这里发生了什么。借助我们之前定义的 .yml 文件,我们将同时启动三个容器(CrateDB、Prometheus 和 Grafana)并公开它们的相关端口。此外,我们通过使用volumes指令将 JMXExporter .jar 包含到 Docker 容器中然后,我们使用该-javaagent指令启用 JMXExporter 并将其配置为使用端口 7071。您在文件中看到的其他参数是完全启用 JMX 监控所必需的。

最后一个配置项。在我们可以启动 Prometheus 之前,我们需要一个新的配置文件。为此,请创建一个新的 . 在您的工作文件夹中yml命名的prometheus.yml文件,并将以下内容粘贴到其中:

global:
  scrape_interval: 15s
  scrape_timeout: 10s
  evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
  honor_timestamps: true
  metrics_path: /metrics
  scheme: http
  static_configs:
  - targets:
    - cratedb:7071

现在,我们已准备好启动所有容器。使用终端导航到您的工作文件夹并运行以下命令:

docker-compose up

等待几秒钟让该过程结束。完成后,您可以访问 CrateDB、Prometheus 和 Grafana。

如果单击“Status -> Targets”,您将看到 CrateDB 已经设置为端点:

注意:如果这是您第一次使用 Grafana,请先在用户名和密码字段中填写“admin”。您可以在下一个屏幕上定义您的凭据。

在 Grafana 中设置预构建的监控仪表板

现在我们已准备好所有工具,让我们设置一个仪表板来使用 Prometheus 作为数据源来监控 Grafana 中的集群。

在 Grafana 中,转到“配置 -> 数据源”:

现在,单击“添加数据源”:

然后选择“普罗米修斯”:

将出现一个配置页面。填写以下字段:

您可以保留所有其他字段的默认配置。

完成后,滚动到页面末尾,然后单击“保存并测试”。如果一切顺利,您将看到一条消息,指出“数据源正在工作”。

现在,让我们设置仪表板。在左侧菜单中,单击“创建 -> 仪表板”:

您将看到如下所示的屏幕。单击“添加新面板”。(面板是 Grafana 仪表板的构建块)。

新面板的配置屏幕将打开。在这里,您可以定义面板的所有元素,例如其名称、查询、可视化类型等。

要了解 Grafana 提供的所有可能性,请查看他们的文档。 

您可以通过构建自己的面板来进行实验。但是,如果您想加快流程,我将为您提供导入预先构建的监控仪表板的选项

为此,首先下载此 JSON 文件

然后,在 Grafana 主页上,单击“创建 -> 导入”:

现在,按“上传 JSON 文件”,然后选择您刚刚下载的 JSON 文件。

完成后,单击“导入”。

瞧!您现在拥有一个完整的仪表板,可以实时监控 CrateDB。您的面板显示:

  • 每秒查询数
  • 最后一分钟的平均查询时长
  • 查询错误率
  • 垃圾回收率
  • 分片数
  • 正在使用的断路器内存
  • CPU 使用率(秒)
  • 正在使用的 JMV 内存

PS:这个仪表板类似于我们用于监控生产中真实集群的仪表板。这是我们的一位客户的样子:

 

摘:https://crate.io/a/monitoring-cratedb-with-prometheus-and-grafana/

 

posted @ 2021-08-10 09:12  fengjian1585  阅读(114)  评论(0编辑  收藏  举报