第 3 章 启用 3scale API 管理监控
您可以使用 Prometheus 和 Grafana operator 启用 Red Hat 3scale API Management 监控。Prometheus 是一个开源监控和警报工具,用于实时从应用程序和基础架构收集和分析指标。Grafana 是一个开源分析和视觉化平台,用于在可自定义仪表板中显示和监控来自不同源的实时数据。
在 OpenShift 4.16 及之后的版本中弃用了 Grafana 4 后,说明被分成两个部分:
- 对于 OpenShift 4.15 及更早版本。
- 对于 OpenShift 4.16 及更新的版本。
- Grafana 5 在 OpenShift 4.14 或更高版本中提供,并由 3scale 2.15 操作器支持。建议尽可能使用 Grafana 5。
- 红帽对 Prometheus 和 Grafana 的支持仅限于红帽产品文档中提供的配置建议。
- 3scale 操作器创建监控资源,但不会阻止修改这些资源。
- 您必须在同一命名空间中安装 3scale operator 和 Prometheus Operator,或使用集群范围的 Operator。
还涵盖了从 Grafana 4 迁移到 Grafana 5 的步骤。
先决条件
- 已安装 3scale operator。
Prometheus Operator 从 OperatorHub 安装。您可以使用 Prometheus operator 来创建和管理 Prometheus 实例。它提供 3scale 监控所需的
Prometheus
自定义资源定义(CRD)。根据您的 OpenShift Container Platform (OCP)版本,以下 Prometheus operator 版本与 3scale 兼容:
- 带有 OCP 4.15 或更早版本的最新 Prometheus community operator。
- 带有 OCP 4.16 或更高版本的最新 Prometheus community operator。
Grafana Operator 从 OperatorHub 安装。您可以使用 Grafana operator 来创建和管理 Grafana 实例。它提供 3scale 监控所需的
GrafanaDashboard
CRD。根据您的 OCP 版本,以下 Grafana Operator 版本与 3scale 兼容:
- Grafana 社区 operator 4 带有 OCP 4.15 或更早版本。
- Grafana 社区 operator 5 带有 OCP 4.16 或更高版本。
如果您的集群在互联网上公开,请确保保护 Prometheus 和 Grafana 服务。
本节论述了如何启用对 3scale 实例的监控,以便您可以查看 Grafana 仪表板。
3.1. 将 Grafana 4 和 Prometheus 配置为 OCP 4.15
为 OpenShift Container Platform (OCP)版本配置 Grafana 和 Prometheus,最多为 4.15 版本。本指南介绍了如何设置这些工具来监控 3scale 环境,确保您获得实时见解和数据视觉化。
流程
从 OperatorHub 安装 Grafana 4 社区 Operator。
- 使用您的 OpenShift 管理员凭证登录到 OpenShift Container Platform (OCP)。
从您要安装 Grafana community operator 的 Project 列表中选择项目。
重要在安装 3scale Operator 的同一项目中安装 Grafana community Operator。
- 导航到 Operators > OperatorHub。
- 搜索 "grafana" 并点 Grafana Operator。
在 Grafana Community Operator 页面中点 Install。此时会显示 Create Operator Subscription 页面。完成以下步骤以创建 Grafana operator 订阅:
- 点 A specific namespace on the cluster,选择您要安装 Grafana community Operator 的项目。
- 点 Subscribe.
- 单击 Approve。
从 OperatorHub 安装最新的 Prometheus 社区操作器。
- 使用您的 OpenShift 管理员凭证登录到 OpenShift Container Platform (OCP)。
从您要安装 Prometheus community operator 的 Project 列表中选择项目。
重要在安装 3scale Operator 的同一项目中安装 Prometheus community Operator。
- 导航到 Operators > OperatorHub。
- 搜索 "prometheus" 并单击 Prometheus Operator。
在 Prometheus Community Operator 页面中点 Install。此时会显示 Create Operator Subscription 页面。完成以下步骤以创建 Prometheus operator 订阅:
- 点 A specific namespace on the cluster,再选择您要安装 Prometheus operator 的项目。
- 点 Subscribe.
- 单击 Approve。
通过将 3scale 部署 YAML 的
spec.monitoring.enabled
参数设置为true
来启用监控。例如:apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: ... spec: monitoring: enabled: true ...
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: ... spec: monitoring: enabled: true ...
Copy to Clipboard Copied! 登录您的 OpenShift 集群。您必须以具有 edit 集群角色的用户身份在 3scale 的 OpenShift 项目中(如
cluster-admin)
登录。oc login
$ oc login
Copy to Clipboard Copied! 切换到 3scale 项目。
oc project <project_name>
$ oc project <project_name>
Copy to Clipboard Copied!
为 Prometheus 创建新服务帐户:
oc create serviceaccount prometheus-monitoring
$ oc create serviceaccount prometheus-monitoring
Copy to Clipboard Copied! 创建一个 ClusterRoleBinding,为 Prometheus ServiceAccount 提供提取指标所需的基于角色的访问控制(RBAC)权限。在创建 ClusterRoleBinding 前更新 ServiceAccount 命名空间:
oc adm policy add-cluster-role-to-user cluster-monitoring-view -z prometheus-monitoring -n "<3scale_namespace>
$ oc adm policy add-cluster-role-to-user cluster-monitoring-view -z prometheus-monitoring -n "<3scale_namespace>
Copy to Clipboard Copied! 为
prometheus-monitoring
ServiceAccount 创建令牌:oc create token prometheus-monitoring
$ oc create token prometheus-monitoring
Copy to Clipboard Copied! 当此令牌过期时,Prometheus 会丢失对所需资源的访问。添加-
duration X[s|m|h]
以指定令牌有效的时间。-
使用生成的令牌更新文件 3scale-scrape-configs.yaml
bearer_token
字段。 创建 additional-scrape-config secret:
oc create secret generic additional-scrape-configs --from-file=3scale-scrape-configs.yaml=./3scale-scrape-configs.yaml
$ oc create secret generic additional-scrape-configs --from-file=3scale-scrape-configs.yaml=./3scale-scrape-configs.yaml
Copy to Clipboard Copied! 部署 Prometheus。
在 Prometheus.yaml 文件中,使用外部 URL 填写
spec.externalUrl
字段。URL 模板应该是:spec: ... externalUrl: https://prometheus.<namespace-name>.apps.<cluster-domain>
spec: ... externalUrl: https://prometheus.<namespace-name>.apps.<cluster-domain>
Copy to Clipboard Copied!
部署 Prometheus 服务器:
oc apply -f prometheus.yaml
$ oc apply -f prometheus.yaml
Copy to Clipboard Copied! 创建 Prometheus 路由:
oc expose service prometheus-operated --hostname prometheus.<namespace-name>.apps.<cluster-name>
$ oc expose service prometheus-operated --hostname prometheus.<namespace-name>.apps.<cluster-name>
Copy to Clipboard Copied! 部署 Grafana 数据源:
oc apply -f datasource-v4.yaml
$ oc apply -f datasource-v4.yaml
Copy to Clipboard Copied! 部署 Grafana
oc apply -f grafana-v4.yaml
$ oc apply -f grafana-v4.yaml
Copy to Clipboard Copied!
其他资源