监控与报警

    该页面主要解释 Milvus 的监控系统和需要创建报警机制的突发情况。

    Milvus 使用开源时序数据库 Prometheus 作为监控和性能指标存储方案,使用 Grafana 作为可视化组建进行数据展示。

    • Prometheus

      Prometheus 是一个拥有多维度数据模型、灵活的查询语句的监控报警系统。

      Prometheus 提供多个组件供用户使用。目前,Milvus使用了以下组件:

      • Prometheus Server:用于收集和存储时间序列数据。
      • Client 代码库:用于定制程序中需要的 metric。
      • Alertmanager:用于实现报警机制。

    其工作流程如下图所示:

    • Grafana

      Grafana 是一个开源的时序数据分析及可视化平台。Milvus 使用 Grafana 来展示各项性能指标:

      prometheus.png

    需要报警的事件

    积极的监控帮助及早发现问题,但创建报警规则以便在出现突发事件时触发用户通知也非常有必要。

    以下主要介绍需要创建报警规则的事件。

    服务器挂掉

    • 报警规则:当 Milvus 服务器挂掉时发送报警信息。
    • 报警规则:当 CPU/GPU 温度超过 80 摄氏度时发送报警信息。
    • 如何判断:查看监控仪表盘上的 和 GPU Temperature 两个指标。

    Milvus 会生成详细的关于系统运行状态的时序 metrics。该页面向您展示如何利用 提取收集这些 metrics,如何将 Grafana 和 连接到 Prometheus 实现数据可视化的展示和报警机制。

    • 请确保您已经启动了 Milvus 服务。
    • 请确保您已经启用了监控功能。

    安装 Prometheus

    1. 下载 。

    2. 确保 Prometheus 已经成功安装:

      1. prometheus, version 2.11.1 (branch: HEAD, revision: e5b22494857deca4b806f74f6e3a6ee30c251763)
      2. build user: root@d94406f2bb6f
      3. build date: 20190710-13:51:17
      4. go version: go1.12.7
    1. 下载 Milvus Prometheus 配置文件

      1. $ wget https://raw.githubusercontent.com/milvus-io/docs/master/assets/monitoring/prometheus.yml \ -O prometheus.yml

      配置文件中的基本设置是:每15秒去收集一次 Milvus 生成的metrics。

      • scrape_interval: 15s 定义收集 metrics 的时间间隔。
      • 定义生成时序 metrics 的 Milvus 端口。
      • targets: ['localhost:9090'] 定义 需要收集 metrics 的 Milvus 的主机名和端口。
    2. 根据您的具体场景需求编辑配置文件:

      | 场景 | 配置文件更改 | | ————— | —————————————————————————————— | | 分布式集群 | 在 job_name = 'milvus_server' 下的 targets 字段,为集群中的每个节点分布添加相应的 localhost: <http-port> 。 |

    3. 下载 Milvus 到 Prometheus 根目录。

    启动 Prometheus

    1. 将浏览器指向 http://<hostname of machine running prometheus>:9090 ,进入 Prometheus 用户交互页面。

    1. 使用以下命令安装并运行 Grafana:

      1. $ docker run -i -p 3000:3000 grafana/grafana
    2. 将浏览器指向 ,使用默认的用户名/密码,admin/admin,登录 Grafana 用户交互页面。您也可以在此创建新的 Grafana 账号。

    3. 在 datasource 页面,做如下设置:

      | Field | Definition | | :——— | :——————————————————————————- | | Name | Prometheus | | Default | True | | URL | http://<hostname of machine running prometheus>:9090 | | Access | Browser |

    4. 下载 :

    5. 将配置文件导入 Grafana.

    使用 Alertmanager 发送通知

    在 Prometheus 配置,您已经下载了 Milvus 的报警规则文件。现在,您只需要下载、配置并启动 Alertmanager。

    1. 下载 最新 Alertmanager tarball

    2. 确保 Alertmanager 已经成功安装:

      1. $ alertmanager --version
      1. alertmanager, version 0.18.0 (branch: HEAD, revision: 1ace0f76b7101cccc149d7298022df36039858ca)
      2. build user: root@868685ed3ed0
      3. build date: 20190708-14:31:49
      4. go version: go1.12.6

    建议:您可以提取 Alertmanager binary 并添加到 PATH ,以便在任意 Shell 上都能快速启动 Alertmanager。

    1. 创建 来指定接受报警通知的邮箱/微信账户,并将配置文件添加到 Alertmanager 根目录下。

    2. 将浏览器指向 http://<hostname of machine running alertmanager>:9093 ,进入 Alertmanager 用户交互页面。您可以在此定义 muting alerts 的条件。