监控数据库
KubeBlocks 提供了强大的可观测性能力。你可以实时观察数据库的健康状态,及时跟踪数据库,并优化数据库性能。本文档将展示 KubeBlocks 中的数据库监控工具以及它们该如何使用。
Playground 演示场景
KubeBlocks 以引擎形式集成了许多开源监控组件,如 Prometheus、AlertManager 和 Grafana,并采用定制的 apecloud-otel-collector
组件收集数据库和宿主机的监控指标。在部署 KubeBlocks Playground 时,所有监控组件都会默认启用。
KubeBlocks Playground 内置以下几个监控组件:
prometheus
:包括 Prometheus 和 AlertManager 两个监控组件。grafana
:包括 Grafana 的监控组件。alertmanager-webhook-adaptor
:包括消息通知扩展组件,用于扩展 AlertManager 的通知能力。目前已经支持飞书、钉钉和企业微信的自定义机器人。apecloud-otel-collector
:用于采集数据库和宿主机的指标。
查看所有支持的引擎,确保监控引擎已启用。
# 查看内置支持的所有引擎
kbcli addon list
...
grafana Helm Enabled true
alertmanager-webhook-adaptor Helm Enabled true
prometheus Helm Enabled alertmanager true
...查看集群监控功能是否已开启。如果输出结果显示
disableExporter: false
,则说明监控功能已开启。kubectl get cluster mycluster -o yaml
>
apiVersion: apps.kubeblocks.io/v1alpha1
kind: Cluster
metadata:
......
spec:
......
componentSpecs:
......
disableExporter: false如果输出结果中未显示
disableExporter: false
,则说明集群监控功能未开启,可执行以下命令,开启监控功能。kbcli cluster update mycluster --disable-exporter=false
查看仪表盘列表。
kbcli dashboard list
>
NAME NAMESPACE PORT CREATED-TIME
kubeblocks-grafana kb-system 13000 Jul 24,2023 11:38 UTC+0800
kubeblocks-prometheus-alertmanager kb-system 19093 Jul 24,2023 11:38 UTC+0800
kubeblocks-prometheus-server kb-system 19090 Jul 24,2023 11:38 UTC+0800打开网页控制台并查看。例如:
kbcli dashboard open kubeblocks-grafana
生产环境
在生产环境中,强烈建议搭建独立的监控系统或购买第三方监控服务。
集成监控大盘和告警规则
KubeBlocks 为主流数据库引擎提供了 Grafana 监控大盘和 Prometheus 告警规则,您可通过该仓库获取,或者按需转化或定制。
具体导入方法,可参考您使用的第三方监控服务的相关文档。
开启数据库监控功能
查看集群监控功能是否已开启。如果输出结果显示 disableExporter: false
,则说明监控功能已开启。
kubectl get cluster mycluster -o yaml
>
apiVersion: apps.kubeblocks.io/v1alpha1
kind: Cluster
metadata:
......
spec:
......
componentSpecs:
......
disableExporter: false
如果输出结果中未显示 disableExporter: false
,则说明集群监控功能未开启,可执行以下命令,开启监控功能。
kbcli cluster update mycluster --disable-exporter=false
查看大盘
您可通过 Grafana 网页控制台查看对应集群的大盘。具体信息,可查看 Grafana 大盘文档。
(可选)开启远程写(Remote Write)
远程写为可选操作,您可根据实际需要开启。
KubeBlocks 支持 victoria-metrics-agent 引擎,支持用户将数据远程写入虚拟机中,相较于 Prometheus 原生应用,vmagent 更轻量。
开启数据推送。
你只需要提供支持 Prometheus Remote Write 协议的终端节点(可以支持多个终端节点)。关于获取方式,请参考第三方监控系统的文档。
下面展示如何通过不同的方法启用数据推送:
# 默认选项:只需提供一个无需验证的终端节点。
# 示例:http://localhost:8428/api/v1/write
kbcli addon enable victoria-metrics-agent --set remoteWriteUrls={http://<remoteWriteUrl>:<port>/<remote write path>}# Basic Auth 方式
kbcli addon enable victoria-metrics-agent --set "extraArgs.remoteWrite\.basicAuth\.username=<your username>,extraArgs.remoteWrite\.basicAuth\.password=<your password>,remoteWriteUrls={http://<remoteWriteUrl>:<port>/<remote write path>}"# TLS 方式
kbcli addon enable victoria-metrics-agent --set "extraArgs.tls=true,extraArgs.tlsCertFile=<path to certifle>,extraArgs.tlsKeyFile=<path to keyfile>,remoteWriteUrls={http://<remoteWriteUrl>:<port>/<remote write path>}"# AWS SigV4 方式
kbcli addon enable victoria-metrics-agent --set "extraArgs.remoteWrite\.aws\.region=<your AMP region>,extraArgs.remoteWrite\.aws\.accessKey=<your accessKey>,extraArgs.remoteWrite\.aws\.secretKey=<your secretKey>,remoteWriteUrls={http://<remoteWriteUrl>:<port>/<remote write path>}"(可选)水平扩容
victoria-metrics-agent
。当数据库实例不断增多时,单节点 vmagent 会成为瓶颈。此时可以选择通过扩容 vmagent 来解决这个问题。多节点 vmagent 内部会根据哈希策略自动划分数据采集的任务。
kbcli addon enable victoria-metrics-agent --replicas <replica count> --set remoteWriteUrls={http://<remoteWriteUrl>:<port>/<remote write path>}
(可选)关闭
victoria-metrics-agent
引擎。kbcli addon disable victoria-metrics-agent