1.3. 定制可观察性
以下部分介绍了对可观察性服务所收集的数据进行自定义、管理和查看的信息。
使用 must-gather
命令收集有关为可观察性资源创建的新信息的日志。如需更多信息,请参阅故障排除文档中的 Must-gather 部分。
1.3.1. 创建自定义规则
您可以通过在可观察性资源中添加 Prometheus 记录规则和 警报规则,为可观察性安装创建自定义规则。如需更多信息,请参阅 Prometheus 配置。
- 记录规则可让您根据需要预先计算或计算昂贵的表达式。结果保存为一组新的时间序列。
- 通过警报规则,您可以根据如何将警报发送到外部服务来指定警报条件。
使用 Prometheus 定义自定义规则来创建警报条件,并将通知发送到外部消息服务。注:当您更新自定义规则时,observability-thanos-rule
pod 会自动重启。
完成以下步骤以创建自定义规则:
- 登录到您的 Red Hat Advanced Cluster Management hub 集群。
在
open-cluster-management-observability
命名空间中创建一个名为thanos-ruler-custom-rules
的 ConfigMap。键必须被命名为custom_rules.yaml
,如下例所示。您可以在配置中创建多个规则:默认情况下,开箱即用的警报规则在
open-cluster-management-observability
命名空间中的thanos-ruler-default-rules
ConfigMap 中定义。例如,您可以创建一个自定义警报规则,在 CPU 使用量超过了您定义的值时通知您。您的 YAML 可能类似以下内容:
data: custom_rules.yaml: | groups: - name: cluster-health rules: - alert: ClusterCPUHealth-jb annotations: summary: Notify when CPU utilization on a cluster is greater than the defined utilization limit description: "The cluster has a high CPU usage: {{ $value }} core for {{ $labels.cluster }} {{ $labels.clusterID }}." expr: | max(cluster:cpu_usage_cores:sum) by (clusterID, cluster, prometheus) > 0 for: 5s labels: cluster: "{{ $labels.cluster }}" prometheus: "{{ $labels.prometheus }}" severity: critical
您还可以在
thanos-ruler-custom-rules
ConfigMap 中创建自定义记录规则。例如,您可以创建一个记录规则,让您可以获取 pod 的容器内存缓存的总和。您的 YAML 可能类似以下内容:
data: custom_rules.yaml: | groups: - name: container-memory rules: - record: pod:container_memory_cache:sum expr: sum(container_memory_cache{pod!=""}) BY (pod, container)
注:如果这是第一个新的自定义规则,它会被立即创建。对于 ConfigMap 的更改,会自动重新加载配置。由于
observability-thanos-ruler
sidecar 中的config-reload
,所以会重新加载配置。
如果要验证警报规则是否正常工作,请完成以下步骤:
- 访问 Grafana 仪表板,然后选择 Explore 图标。
-
在 Metrics 探索栏中,键入
ALERTS
并运行查询。显示系统中所有处于待处理或启动状态的ALERTS
。 - 如果没有显示警报,查看规则来检查表达式是否正确。
已创建一个自定义规则。