配置、启动 Prometheus

本页面介绍如何配置、启用 Prometheus 搜集 Milvus 监控指标,以及如何将 Alertmanager 连接到 Prometheus 实现数据可视化的展示和报警机制。

安装 Prometheus

  1. 下载 Prometheus 二进制文件的压缩包
  2. 确保 Prometheus 已经成功安装:

    1. $ prometheus --version

    你可以将 Prometheus 的路径添加到 PATH,以便在任意 Shell 上都能快速启动 Prometheus。

配置、启动 Prometheus

  1. 启动 Pushgateway:

    1. ./pushgateway

    必须在启动 Milvus Server 之前启动 Pushgateway 进程。

  2. server_config.yaml 中开启 Prometheus 监控,并设置 Pushgateway 的地址和端口号。

    1. metric:
    2. enable: true # 将值设为 true 以开启 Prometheus 监控。
    3. address: 127.0.0.1 # 设置 Pushgateway 的 IP 地址。
    4. port: 9091 # 设置 Pushgateway 的端口号。

    如果是在 Kubernetes 集群中,你需要为每个需要监控的 Milvus 节点配置 server_config.yaml

  3. 下载 Milvus Prometheus 配置文件

    1. $ wget https://raw.githubusercontent.com/milvus-io/docs/master/v0.10.3/assets/monitoring/prometheus.yml \ -O prometheus.yml
  4. 下载 Milvus 报警规则文件 到 Prometheus 根目录:

    1. wget -P rules https://raw.githubusercontent.com/milvus-io/docs/master/v0.10.3/assets/monitoring/alert_rules.yml
  5. 根据实际需求编辑 Prometheus 配置文件:

    • global:配置 scrape_intervalevaluation_interval 等参数。
    1. global:
    2. scrape_interval: 2s # 设置抓取时间间隔为 2s。
    3. evaluation_interval: 2s # 设置评估时间间隔为 2s。
    • alerting:设置 Alertmanager 的地址和端口。
    1. alerting:
    2. alertmanagers:
    3. - static_configs:
    4. - targets: ['localhost:9093']
    • rule_files:设置报警规则文件。
    1. rule_files:
    2. - "alert_rules.yml"
    • scrape_configs:设置抓取数据的 job_nametargets 等信息。
    1. scrape_configs:
    2. - job_name: 'prometheus'
    3. static_configs:
    4. - targets: ['localhost:9090']
    5. - job_name: 'pushgateway'
    6. honor_labels: true
    7. static_configs:
    8. - targets: ['localhost:9091']

    关于 Prometheus 的高级配置和功能的详细信息请见 配置 Prometheus

  6. 启动 Prometheus:

    1. ./prometheus --config.file=prometheus.yml

启动 Prometheus 后,你可以在 Prometheus 界面上配置 Milvus 提供的监控指标。详见:Milvus 监控指标

配置 Alertmanager

需要报警的事件

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

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

服务器宕机

  • 报警规则:当 Milvus 服务器宕机时发送报警信息。
  • 如何判断:当 Milvus 服务器宕机时,监控仪表盘上各个指标会显示 No Data

CPU/GPU 温度过高

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

配置步骤

  1. 下载 Alertmanager 二进制文件的压缩包
  2. 确保 Alertmanager 已经成功安装:

    1. $ alertmanager --version

    你可以将 Alertmanager 的路径并添加到 PATH,以便在任意 Shell 上都能快速启动 Alertmanager。

  3. 根据 配置 Alertmanager 创建配置文件 alertmanager.yml,指定接受报警通知的邮箱或微信账号,并将配置文件添加到 Alertmanager 根目录下。

  4. 启动 Alertmanager 服务并指定配置文件:

    1. ./alertmanager --config.file=alertmanager.yml
  5. 通过浏览器登录 http://<提供 Alertmanager 服务的主机>:9093,进入 Alertmanager 用户交互页面。你可以在此定义 报警的条件

常见问题

在多个 Milvus 节点接入 Pushgateway 的情况下如何进行区分数据来源? 在 prometheus.yaml 里面加一个 Prometheus 的实例就可以。最后在 Prometheus 或者 Grafana 里面显示监控的时候,会指明数据是来自哪个 Milvus 实例。