监控和报警

    Dashborad 模板点击下载

    Dashboard 模板会不定期更新。更新模板的方式见最后一小节。

    欢迎提供更优的 dashboard。

    Doris 使用 和 Grafana 进项监控项的采集和展示。

    监控和报警 - 图4

    1. Prometheus

      Prometheus 是一款开源的系统监控和报警套件。它可以通过 Pull 或 Push 采集被监控系统的监控项,存入自身的时序数据库中。并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。

    2. Grafana

      Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。

    注: 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Doris 监控数据采集和展示的方式。原则上不开发、维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。

    监控数据

    Doris 的监控数据通过 Frontend 和 Backend 的 http 接口向外暴露。监控数据以 Key-Value 的文本形式对外展现。每个 Key 还可能有不同的 Label 加以区分。当用户搭建好 Doris 后,可以在浏览器,通过以下接口访问到节点的监控数据:

    • Frontend:
    • Backend: be_host:be_web_server_port/metrics
    • Broker: 暂不提供

    用户将看到如下监控项结果(示例为 FE 部分监控项):

    这是一个以 Promethus 格式 呈现的监控数据。我们以其中一个监控项为例进行说明:

    1. “#” 开头的行为注释行。其中 HELP 为该监控项的描述说明;TYPE 表示该监控项的数据类型,示例中为 Gauge,即标量数据。还有 Counter、Histogram 等数据类型。具体可见 。
    2. jvm_heap_size_bytes 即监控项的名称(Key);type="max" 即为一个名为 type 的 Label,值为 max。一个监控项可以有多个 Label。
    3. 最后的数字,如 41661235200,即为监控数值。

    整个监控架构如下图所示:

    1. 黄色部分为 Prometheus 相关组件。Prometheus Server 为 Prometheus 的主进程,目前 Prometheus 通过 Pull 的方式访问 Doris 节点的监控接口,然后将时序数据存入时序数据库 TSDB 中(TSDB 包含在 Prometheus 进程中,无需单独部署)。Prometheus 也支持通过搭建 Push Gateway监控和报警 - 图8 的方式,允许被监控系统将监控数据通过 Push 的方式推到 Push Gateway, 再由 Prometheus Server 通过 Pull 的方式从 Push Gateway 中获取数据。
    2. 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。
    3. 绿色部分为 Grafana 相关组件。Grafana Server 为 Grafana 的主进程。启动后,用户可以通过 Web 页面对 Grafana 进行配置,包括数据源的设置、用户设置、Dashboard 绘制等。这里也是最终用户查看监控数据的地方。

    开始搭建

    请在完成 Doris 的部署后,开始搭建监控系统。

    1. 在准备运行监控服务的机器上,解压下载后的 tar 文件。

    2. 打开配置文件 promethues.yml。这里我们提供一个示例配置并加以说明(配置文件为 yml 格式,一定注意统一的缩进和空格):

      这里我们使用最简单的静态文件的方式进行监控配置。Prometheus 支持多种 方式,可以动态的感知节点的加入和删除。

    3. 停止 Promethues

      目前没有发现正式的进程停止方式,直接 kill -9 即可。当然也可以将 Prometheus 设为一种 service,以 service 的方式启停。

    4. 访问 Prometheus

      Prometheus 可以通过 web 页面进行简单的访问。通过浏览器打开 8181 端口,即可访问 Prometheus 的页面。点击导航栏中,Status -> ,可以看到所有分组 Job 的监控主机节点。正常情况下,所有节点都应为 UP,表示数据采集正常。点击某一个 Endpoint,即可看到当前的监控数值。如果节点状态不为 UP,可以先访问 Doris 的 metrics 接口(见前文)检查是否可以访问,或查询 Prometheus 相关文档尝试解决。

    5. 至此,一个简单的 Prometheus 已经搭建、配置完毕。更多高级使用方式,请参阅 官方文档

    Grafana

    1. Grafana 官网监控和报警 - 图13 下载最新版本的 Grafana。这里我们以 5.2.1.linux-amd64 版本为例。

    2. 在准备运行监控服务的机器上,解压下载后的 tar 文件。

    3. 打开配置文件 conf/defaults.ini。这里我们仅列举需要改动的配置项,其余配置可使用默认。

    4. 启动 Grafana

      通过以下命令启动 Grafana

      该命令将后台运行 Grafana,访问端口为上面配置的 8182

    5. 停止 Grafana

      目前没有发现正式的进程停止方式,直接 kill -9 即可。当然也可以将 Grafana 设为一种 service,以 service 的方式启停。

    6. 访问 Grafana

      通过浏览器,打开 8182 端口,可以开始访问 Grafana 页面。默认用户名密码为 admin。

    7. 配置 Grafana

      初次登陆,需要根据提示设置数据源(data source)。我们这里的数据源,即上一步配置的 Prometheus。

      数据源配置的 Setting 页面说明如下:

      1. Name: 数据源的名称,自定义,比如 doris_monitor_data_source
      2. Type: 选择 Prometheus
      3. URL: 填写 Prometheus 的 web 地址,如
      4. Access: 这里我们选择 Server 方式,即通过 Grafana 进程所在服务器,访问 Prometheus。
      5. 其余选项默认即可。
      6. 点击最下方 Save & Test,如果显示 Data source is working,即表示数据源可用。
      7. 确认数据源可用后,点击左边导航栏的 + 号,开始添加 Dashboard。这里我们已经准备好了 Doris 的 Dashboard 模板(本文档开头)。下载完成后,点击上方的 New dashboard->Import dashboard->Upload .json File,将下载的 json 文件导入。
      8. 导入后,可以命名 Dashboard,默认是 。同时,需要选择数据源,这里选择之前创建的 doris_monitor_data_source
      9. 点击 Import,即完成导入。之后,可以看到 Doris 的 Dashboard 展示。
    8. 至此,一个简单的 Grafana 已经搭建、配置完毕。更多高级使用方式,请参阅 官方文档

    这里我们简要介绍 Doris Dashboard。Dashboard 的内容可能会随版本升级,不断变化,本文档不保证是最新的 Dashboard 说明。

    1. 顶栏

      监控和报警 - 图15

      • 左上角为 Dashboard 名称。
      • cluster_name: 即 Prometheus 配置文件中的各个 job_name,代表一个 Doris 集群。选择不同的 cluster,下方的图表将展示对应集群的监控信息。
      • fe_master: 对应集群的 Master Frontend 节点。
      • fe_instance: 对应集群的所有 Frontend 节点。选择不同的 Frontend,下方的图表将展示对应 Frontend 的监控信息。
      • be_instance: 对应集群的所有 Backend 节点。选择不同的 Backend,下方的图表将展示对应 Backend 的监控信息。
      • interval: 有些图表展示了速率相关的监控项,这里可选择以多大间隔进行采样计算速率(注:15s 间隔可能导致一些图表无法显示)。
    2. Row

      Grafana 中,Row 的概念,即一组图表的集合。如上图中的 Overview、Cluster Overview 即两个不同的 Row。可以通过点击 Row,对 Row 进行折叠。当前 Dashboard 有如下 Rows(持续更新中):

      1. Overview: 所有 Doris 集群的汇总展示。
      2. Cluster Overview: 选定集群的汇总展示。
      3. Query Statistic: 选定集群的查询相关监控。
      4. FE JVM: 选定 Frontend 的 JVM 监控。
      5. BE: 选定集群的 Backends 的汇总展示。
      6. BE Task: 选定集群的 Backends 任务信息的展示。
    3. 图表

      监控和报警 - 图17

      一个典型的图标分为以下几部分:

      1. 鼠标悬停左上角的 i 图标,可以查看该图表的说明。
      2. 点击下方的图例,可以单独查看某一监控项。再次点击,则显示所有。
      3. 在图表中拖拽可以选定时间范围。
      4. 标题的 [] 中显示选定的集群名称。
      5. 一些数值对应左边的Y轴,一些对应右边的,可以通过图例末尾的 -right 区分。
      6. 点击图表名称->Edit,可以对图表进行编辑。

    Dashboard 更新

    1. 点击 Grafana 左边栏的 +,点击 Dashboard
    2. 点击左上角的 New dashboard,在点击右侧出现的 Import dashboard
    3. 点击 ,选择最新的模板文件。
    4. 点击 Import(Overwrite),完成模板更新。