本文档介绍如何配置 Google Kubernetes Engine 部署,以便使用 Google Cloud Managed Service for Prometheus 从 Kibana 收集指标。本页面介绍如何完成以下任务:
- 设置 Kibana 以报告指标。
 - 在 Cloud Monitoring 中访问预定义的信息中心以查看指标。
 - 配置提醒规则以监控指标。
 
以下说明仅在您将代管式收集功能与 Managed Service for Prometheus 搭配使用时适用。 如果您使用的是自行部署的收集功能,请参阅 Kibana 文档了解安装信息。
这些说明仅作为示例提供,应该适用于大多数 Kubernetes 环境。如果您因为限制性安全或组织政策而无法安装应用或导出器,则我们建议您查阅开源文档以获取支持。
如需了解 Kibana,请参阅 Kibana。
前提条件
如需使用 Managed Service for Prometheus 和代管式收集功能从 Kibana 导出器收集指标,您的部署必须满足以下要求:
- 您的集群必须运行 Google Kubernetes Engine 1.28.15-gke.2475000 或更高版本。
 - 您必须运行 Managed Service for Prometheus,并启用代管式收集功能。如需了解详情,请参阅代管式收集功能使用入门。
 - 如需使用 Cloud Monitoring 中提供的信息中心进行 Kibana 集成,您必须使用 
kibana-prometheus-exporter8.0.0 版或更高版本。如需详细了解可用的信息中心,请参阅查看信息中心。
 
该安装过程需要使用 bin/kibana-plugin install PLUGIN。安装该插件的一种方法是定义一个自定义 Kibana Docker 映像;有关详情,请参阅以下示例:
  FROM kibana:KIBANA_VERSION
  RUN bin/kibana-plugin install https://github.com/pjhampton/kibana-prometheus-exporter/releases/download/PLUGIN_VERSION/kibanaPrometheusExporter-PLUGIN_VERSION.zip
构建映像并将其推送到远程代码库后,您便可以在 Kubernetes 部署中使用该映像。例如:
  apiVersion: v1
  kind: ConfigMap
  metadata:
    name: kibana
  data:
    kibana.yml: |
      server.name: kibana
      server.host: "0.0.0.0"
      # Update this with credentials to match your Elasticsearch instance
      elasticsearch.hosts: http://username:password@elasticsearch-service-name:9200
  ---
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: kibana
    labels:
      app.kubernetes.io/name: kibana
  spec:
    ...
    template:
      ...
      spec:
        containers:
        - name: kibana
          image: CUSTOM_IMAGE
          ports:
          - containerPort: 5601
            name: kibana
            protocol: TCP
          volumeMounts:
          - mountPath: /usr/share/kibana/config/kibana.yml
            subPath: kibana.yml
            name: kibana
        volumes:
        - name: kibana
          configMap:
            name: kibana
            items:
            - key: kibana.yml
              path: kibana.yml
如需验证 Kibana 导出器是否在预期的端点上发出指标,请执行以下操作:
使用以下命令设置端口转发:
kubectl -n NAMESPACE_NAME port-forward POD_NAME 5601
使用浏览器或另一个终端会话中的
curl实用程序访问端点localhost:5601/_prometheus/metrics。
定义 PodMonitoring 资源
对于目标发现,Managed Service for Prometheus Operator 需要与同一命名空间中的 Kibana 导出器对应的 PodMonitoring 资源。
您可以使用以下 PodMonitoring 配置:
如需从本地文件应用配置更改,请运行以下命令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您还可以使用 Terraform 管理您的配置。
定义规则和提醒
您可以使用以下 Rules 配置来定义 Kibana 指标提醒:
如需从本地文件应用配置更改,请运行以下命令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您还可以使用 Terraform 管理您的配置。
如需详细了解如何将规则应用于您的集群,请参阅代管式规则评估和提醒。
您可以根据您的应用调整提醒阈值。验证配置
您可以使用 Metrics Explorer 验证您是否正确配置了 Kibana 导出器。Cloud Monitoring 可能需要一两分钟时间来注入您的指标。
要验证指标是否已注入,请执行以下操作:
- 
在 Google Cloud 控制台中,前往 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
 - 在查询构建器窗格的工具栏中,选择名为 code MQL 或 code PromQL 的按钮。
 - 验证已在语言 (Language) 切换开关中选择 PromQL。语言切换开关位于同一工具栏中,用于设置查询的格式。
 - 输入并运行以下查询:
up{job="kibana", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"} 
查看信息中心
Cloud Monitoring 集成包括 Kibana Prometheus 概览信息中心。当您配置集成时,系统会自动安装信息中心。您还可以在不安装集成的情况下查看信息中心的静态预览。
如需查看已安装的信息中心,请执行以下操作:
- 
在 Google Cloud 控制台中,前往
 信息中心页面:
   如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
 - 选择信息中心列表标签页。
 - 选择集成类别。
 - 点击信息中心的名称,例如 Kibana Prometheus 概览。
 
如需查看信息中心的静态预览,请执行以下操作:
- 
在 Google Cloud 控制台中,前往
 集成页面:
   如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
 - 点击 Kubernetes Engine 部署平台过滤条件。
 - 找到 Kibana 集成,然后点击查看详情。
 - 选择信息中心标签页。
 
问题排查
如需了解如何排查指标注入问题,请参阅排查注入端问题中的从导出器收集的问题。