使用适用于 Prometheus 的托管服务收集 Elasticsearch 指标

Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。 建立索引、搜索和分析都在这里进行。

本文介绍如何配置 Azure Monitor 适用于 Prometheus 的托管服务与 Azure Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes,以便通过抓取 Prometheus 指标来监控 Elasticsearch 集群。

先决条件

  • 在已启用 AKS 或已启用 Azure Arc 的 Kubernetes 上运行 Elasticsearch 群集
  • 已在群集上启用适用于 Prometheus 的托管服务。 有关详细信息,请参阅启用 Prometheus 和 Grafana

安装 Elasticsearch 导出程序

使用 Helm 图表安装 Prometheus Elasticsearch 导出程序

helm install azmon-elasticsearch-exporter --version 5.7.0 prometheus-community/prometheus-elasticsearch-exporter --set es.uri="https://username:password@elasticsearch-service.namespace:9200" --set podMonitor.enabled=true --set podMonitor.apiVersion=azmonitoring.coreos.com/v1

可以使用 values 来配置 Elasticsearch 导出程序 Helm 图表。 指定可访问 Elasticsearch 服务器的正确服务器地址。

根据配置来设置用于在 Elasticsearch 服务器进行身份验证的用户名、密码或证书。 使用参数 es.uri 设置可访问 Elasticsearch 的地址。

备注

只有 Helm 图表版本 5.7.0 或更高版本支持通过 Helm 图表安装进行托管 Prometheus 服务/Pod 监视器配置。

也可以使用 --set serviceMonitor.enabled=true Helm 图表参数,通过服务监视器而非 Pod 监视器来进行监视。 务必使用适用于 Prometheus 的托管服务支持的 API 版本,可通过参数 serviceMonitor.apiVersion=azmonitoring.coreos.com/v1 来设置。

如果你要配置任何其他服务或 Pod 监视器,请按照以下说明操作。

部署规则

  1. 下载以下文件以记录规则:

    下载以下文件以获取警报规则:

  2. 编辑参数文件中的以下值。

    参数 价值
    azureMonitorWorkspace Azure Monitor 工作区的资源 ID。 在 Azure Monitor 工作区的“概述”页上的“JSON 视图”中检索。
    location Azure Monitor 工作区的位置。 在 Azure Monitor 工作区的“概述”页上的“JSON 视图”中检索。
    clusterName 群集的名称。 从群集概述页面的“JSON 视图”中检索。
    actionGroupId 警报操作组的资源 ID。 从群集概述页面的“JSON 视图”中检索。 详细了解操作组
  3. 使用用于安装 Azure 资源管理器模板的任何标准方法部署模板。 有关指导,请参阅用于 Azure Monitor 的资源管理器模板示例

如果你想使用任何其他开源 Prometheus 警报/记录规则,请使用 az-prom-rules-converter 来创建与 Azure 等效的 Prometheus 规则。

导入 Grafana 仪表板

要使用 ID 或 JSON 导入以下 Grafana 仪表板,请按照从 Grafana Labs 导入仪表板中的说明进行操作:

故障排除

成功应用服务监视器后,如果你想确保该附加组件已选取服务监视器目标,请遵循这些说明