1.6. 设计您的 Grafana 仪表板
您可以通过创建一个 grafana-dev
实例来设计 Grafana 仪表板。
1.6.1. 设置 Grafana 开发人员实例
首先,克隆 stolostron/multicluster-observability-operator/
存储库,以便您可以运行 tools
文件夹中的脚本。确保使用最当前的 grafana-dev
实例。
完成以下步骤以设置 Grafana 开发人员实例:
运行
setup-grafana-dev.sh
来设置 Grafana 实例。运行脚本时,会创建以下资源:secret/grafana-dev-config
、deployment.apps/grafana-dev
、service/grafana-dev
、ingress.extensions/grafana-dev
、persistentvolumeclaim/grafana-dev
:./setup-grafana-dev.sh --deploy secret/grafana-dev-config created deployment.apps/grafana-dev created service/grafana-dev created serviceaccount/grafana-dev created clusterrolebinding.rbac.authorization.k8s.io/open-cluster-management:grafana-crb-dev created route.route.openshift.io/grafana-dev created persistentvolumeclaim/grafana-dev created oauthclient.oauth.openshift.io/grafana-proxy-client-dev created deployment.apps/grafana-dev patched service/grafana-dev patched route.route.openshift.io/grafana-dev patched oauthclient.oauth.openshift.io/grafana-proxy-client-dev patched clusterrolebinding.rbac.authorization.k8s.io/open-cluster-management:grafana-crb-dev patched
使用
switch-to-grafana-admin.sh
脚本将用户角色切换到 Grafana 管理员。-
选择 Grafana URL,
https://grafana-dev-open-cluster-management-observability.{OPENSHIFT_INGRESS_DOMAIN}
并登录。 然后,运行以下命令来添加切换的用户作为 Grafana 管理员。例如,在使用
kubeadmin
登录后,运行以下命令:./switch-to-grafana-admin.sh kube:admin User <kube:admin> switched to be grafana admin
-
选择 Grafana URL,
Grafana 开发人员实例已设置。
1.6.2. 设计您的 Grafana 仪表板
设置 Grafana 实例后,您可以设计仪表板。完成以下步骤以刷新 Grafana 控制台并设计您的仪表板:
- 在 Grafana 控制台中,通过在导航面板中选择 Create 图标来创建仪表板。选择 Dashboard,然后单击 Add new panel。
- 在 New Dashboard/Edit Panel 视图中导航到 Query 选项卡。
-
从数据源选择器中选择
Observatorium
并输入 PromQL 查询来配置查询。 - 在 Grafana 仪表板标头中点击仪表板标头中的 Save 图标。
- 添加一个描述性名称并点 Save。
1.6.2.1. 使用 ConfigMap 设计 Grafana 仪表板
使用 ConfigMap 设计 Grafana 仪表板。您可以使用 generate-dashboard-configmap-yaml.sh
脚本在本地生成仪表板 ConfigMap,并在本地保存 ConfigMap:
./generate-dashboard-configmap-yaml.sh "Your Dashboard Name" Save dashboard <your-dashboard-name> to ./your-dashboard-name.yaml
如果您没有运行上述脚本的权限,请完成以下步骤:
- 选择一个仪表板并点 Dashboard settings 图标。
- 在导航框中,点 JSON Model 图标。
-
复制仪表板 JSON 数据,并将它粘贴到
data
部分。 修改
name
并替换$your-dashboard-name
。在data.$your-dashboard-name.json.$$your_dashboard_json
的uid
项中输入一个 UUID(universally unique identifier)。您可以使用 uuidegen 等程序来创建 UUID。ConfigMap 可能类似以下文件:kind: ConfigMap apiVersion: v1 metadata: name: $your-dashboard-name namespace: open-cluster-management-observability labels: grafana-custom-dashboard: "true" data: $your-dashboard-name.json: |- $your_dashboard_json
备注:
如果在
grafana-dev
实例中创建了仪表板,您可以使用仪表板的名称,并在脚本中将其作为参数传递。例如,在grafana-dev
实例中创建一个名为 Demo Dashboard 的仪表板。通过 CLI,您可以运行以下脚本:./generate-dashboard-configmap-yaml.sh "Demo Dashboard"
运行脚本后,您可能会收到以下信息:
Save dashboard <demo-dashboard> to ./demo-dashboard.yaml
如果您的仪表板不在 General 文件夹中,您可以在此 ConfigMap 的
annotations
部分中指定文件夹名称:annotations: observability.open-cluster-management.io/dashboard-folder: Custom
完成 ConfigMap 的更新后,您可以安装它,将仪表板导入到 Grafana 实例。
通过 CLI 或 OpenShift Container Platform 控制台应用 YAML 文件来验证是否已创建 YAML 文件。创建 open-cluster-management-observability
命名空间中的 ConfigMap。通过 CLI 运行以下命令:
oc apply -f demo-dashboard.yaml
在 OpenShift Container Platform 控制台中,使用 demo-dashboard.yaml
文件创建 ConfigMap。控制面板位于 Custom 文件夹中。
1.6.3. 在 Grafana 中使用受管集群标签
当在 hub 集群中启用可观察性时,observability-managed-cluster-label-allowlist
ConfigMap 会在 open-cluster-management-observability
命名空间中创建。ConfigMap 包含由 observabilty-rbac-query-proxy
pod 维护的受管集群标签列表,用于在 ACM - Cluster Overview Grafana 仪表板中填充要过滤的标签名称列表。默认情况下,可观察性会忽略 observability-managed-cluster-label-allowlist
ConfigMap 中的标签子集。
当集群导入到受管集群团队或修改时,observability-rbac-query-proxy
pod 会监视对受管集群标签的任何更改,并自动更新 observability-managed-cluster-label-allowlist
ConfigMap 以反映更改。ConfigMap 仅包含唯一的标签名称,这些名称包含在 ignore_labels
或 labels
列表中。您的 observability-managed-cluster-label-allowlist
ConfigMap 可能类似以下 YAML 文件:
data: managed_cluster.yaml: | ignore_labels: - clusterID - cluster.open-cluster-management.io/clusterset - feature.open-cluster-management.io/addon-application-manager - feature.open-cluster-management.io/addon-cert-policy-controller - feature.open-cluster-management.io/addon-cluster-proxy - feature.open-cluster-management.io/addon-config-policy-controller - feature.open-cluster-management.io/addon-governance-policy-framework - feature.open-cluster-management.io/addon-iam-policy-controller - feature.open-cluster-management.io/addon-observability-controller - feature.open-cluster-management.io/addon-search-collector - feature.open-cluster-management.io/addon-work-manager - installer.name - installer.namespace - local-cluster - name labels: - cloud - vendor
启用的标签会在 ACM - Clusters Overview Grafana 仪表板上的下拉过滤器中显示。值来自 acm_managed_cluster_labels
指标,具体取决于所选 label
键值。
ConfigMap 的 ignore_labels
键列表中列出的任何标签都会从 ACM - Clusters Overview Grafana 仪表板上的下拉过滤器中删除。
1.6.3.1. 添加受管集群标签
当您向 observability-managed-cluster-label-allowlist
ConfigMap 中添加受管集群标签时,标签将作为 Grafana 中的过滤器选项提供。为 hub 集群或与受管集群团队关联的受管集群对象添加唯一标签。例如,如果您将标签 department=finance
添加到受管集群,则 ConfigMap 会被更新,并可能类似以下更改:
data: managed_cluster.yaml: | ignore_labels: - clusterID - cluster.open-cluster-management.io/clusterset - feature.open-cluster-management.io/addon-application-manager - feature.open-cluster-management.io/addon-cert-policy-controller - feature.open-cluster-management.io/addon-cluster-proxy - feature.open-cluster-management.io/addon-config-policy-controller - feature.open-cluster-management.io/addon-governance-policy-framework - feature.open-cluster-management.io/addon-iam-policy-controller - feature.open-cluster-management.io/addon-observability-controller - feature.open-cluster-management.io/addon-search-collector - feature.open-cluster-management.io/addon-work-manager - installer.name - installer.namespace - local-cluster - name labels: - cloud - department - vendor
1.6.3.2. 启用受管集群标签
通过从 observability-managed-cluster-label-allowlist
ConfigMap 中的 ignore_labels
列表中删除标签来启用已禁用的受管集群标签。
例如,启用 local-cluster
和 name
标签。您的 observability-managed-cluster-label-allowlist
ConfigMap 可能类似以下内容:
data: managed_cluster.yaml: | ignore_labels: - clusterID - installer.name - installer.namespace labels: - cloud - vendor - local-cluster - name
ConfigMap 在 30 秒后重新同步,以确保更新了集群标签。更新 ConfigMap 后,检查 open-cluster-management-observability
命名空间中的 observability-rbac-query-proxy
pod 日志,以验证列出标签的位置。pod 日志中可能会显示以下信息:
enabled managedcluster labels: <label>
在 Grafana 仪表板中,验证标签是否在 Label 下拉菜单中选择。
1.6.3.3. 禁用受管集群标签
从 Label 下拉菜单过滤器中列出的受管集群标签排除受管集群标签。将标签名称添加到 ignore_labels
列表中。例如,如果您将 local-cluster
和 name
重新添加到 ignore_labels
列表中,您的 YAML 可能类似以下文件:
data: managed_cluster.yaml: | ignore_labels: - clusterID - installer.name - installer.namespace - local-cluster - name labels: - cloud - vendor
检查 open-cluster-management-observability
命名空间中的 observability-rbac-query-proxy
pod 日志,以验证列出标签的位置。pod 日志中可能会显示以下信息:
disabled managedcluster label: <label>
1.6.4. 卸载 Grafana 开发者实例
卸载实例时,相关资源也会被删除。运行以下命令:
./setup-grafana-dev.sh --clean secret "grafana-dev-config" deleted deployment.apps "grafana-dev" deleted serviceaccount "grafana-dev" deleted route.route.openshift.io "grafana-dev" deleted persistentvolumeclaim "grafana-dev" deleted oauthclient.oauth.openshift.io "grafana-proxy-client-dev" deleted clusterrolebinding.rbac.authorization.k8s.io "open-cluster-management:grafana-crb-dev" deleted
返回到 Observing 环境简介。