Prometheus是一款面向云原生应用程序的开源监控工具,本文介绍如何在ASM集成自建Prometheus实现网格监控。

前提条件

步骤一:配置网格数据指标

  1. 登录容器服务管理控制台,在左侧导航栏中选择集群
  2. 集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择应用 > Helm
  3. Helm页面,在ack-prometheus-operator右侧的操作列下,单击更新
  4. 更新发布面板的YAML文本框中,修改additionalScrapeConfigs字段,然后单击确定
    YAML文件较长,您可以使用快捷键Ctrl+F搜索additionalScrapeConfigs字段进行修改。修改后的additionalScrapeConfigs字段如下:
    additionalScrapeConfigs:
    # Scrape config for envoy stats
    - job_name: 'envoy-stats'
      metrics_path: /stats/prometheus
      kubernetes_sd_configs:
      - role: pod
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_container_port_name]
        action: keep
        regex: '.*-envoy-prom'
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:15090
        target_label: __address__
      - action: labeldrop
        regex: __meta_kubernetes_pod_label_(.+)
      - source_labels: [__meta_kubernetes_namespace]
        action: replace
        target_label: namespace
      - source_labels: [__meta_kubernetes_pod_name]
        action: replace
        target_label: pod_name

步骤二:开启Prometheus

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理
  4. 在网格管理详情页面选择网格实例 > 基本信息。在右侧页面单击功能设置
    说明 请确保ASM实例的Istio为v1.6.8.4及以上版本。
  5. 功能设置更新面板中选中开启采集Prometheus监控指标,选中启用已有Prometheus,输入Prometheus的地址,然后单击确定。输入的Prometheus的地址是为了展示网格拓扑,如果不使用网格拓扑,可以不用输入该地址。
    ASM将自动生成采集Prometheus监控指标相关的EnvoyFilter配置。

步骤三:产生监控数据

请求数据平面的服务,这里以Bookinfo为例,详细介绍请参见入门指引。进入Productpage页面,多次刷新页面,以产生监控数据。监控数据

结果验证

  • 验证Envoy是否采集监控指标数据。

    执行以下命令,返回监控指标数据,表示Envoy采集监控指标数据。若没有数据,则Envoy没有在采集监控指标数据。

    details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
    kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istio
  • 查看Prometheus网格监控指标数据。
    1. 登录容器服务管理控制台
    2. 在控制台左侧导航栏中,单击集群
    3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
    4. 在集群管理页左侧导航栏中,选择网络 > 服务
    5. 在服务页面找到Prometheus,单击Prometheus对应的外部端点。
    6. 在Prometheus页面输入istio_requests_total,单击Execute,显示以下页面所示结果。peomethus
  • 查看Grafana网格监控指标数据。
    1. 登录容器服务管理控制台
    2. 在控制台左侧导航栏中,单击集群
    3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
    4. 在集群管理页左侧导航栏中,选择网络 > 服务
    5. 在服务页面搜索找到Grafana,单击Grafana对应的外部端点。
    6. 在Grafana页面选择Istio Workload Dashboard,显示以下页面所示结果。3