自监控 GreptimeDB 集群
在阅读本文档前,请确保你已经了解如何在 Kubernetes 上部署 GreptimeDB 集群。 本文将介绍在部署 GreptimeDB 集群时如何配置监控。
快速开始
你可以在使用 Helm Chart 部署 GreptimeDB 集群时,通过对 values.yaml 文件进行配置来启用监控和 Grafana。下面是一个完整的 values.yaml 示例,用于部署一个最小化的带有监控和 Grafana 的 GreptimeDB 集群:
image:
registry: greptime-registry.cn-hangzhou.cr.aliyuncs.com
# 镜像仓库:
# OSS GreptimeDB 使用 `greptime/greptimedb`,
# GreptimeDB 企业版配置请咨询工作人员
repository: <repository>
# 镜像标签:
# OSS GreptimeDB 使用数据库版本,例如 `v1.1.4`
# GreptimeDB 企业版配置请咨询工作人员
tag: <tag>
pullSecrets: []
initializer:
registry: greptime-registry.cn-hangzhou.cr.aliyuncs.com
repository: greptime/greptimedb-initializer
tag: "v0.6.1"
monitoring:
# 启用监控
enabled: true
# 监控数据的默认保留时间
ttl: 30d
vector:
# 监控需要使用 Vector
registry: greptime-registry.cn-hangzhou.cr.aliyuncs.com
grafana:
# 用于监控面板
# 需要先启用监控 `monitoring.enabled: true` 选项
enabled: true
image:
registry: greptime-registry.cn-hangzhou.cr.aliyuncs.com
frontend:
replicas: 1
meta:
replicas: 1
backendStorage:
etcd:
endpoints: ["etcd.etcd-cluster.svc.cluster.local:2379"]
datanode:
replicas: 1
flownode:
replicas: 1
当启用 monitoring 后,GreptimeDB Operator 会额外启动一个 GreptimeDB Standalone 实例用于收集 GreptimeDB 集群的指标和日志数据。
为了收集日志数据,GreptimeDB Operator 会在每一个 Pod 中启动一个 Vector 的 Sidecar 容器。
当启用 grafana 后,会部署一个 Grafana 实例,并将用于集群监控的 GreptimeDB Standalone 实例作为其数据源。
这样就可以开箱即用地通过 Prometheus 和 MySQL 协议来可视化 GreptimeDB 集群的监控数据。
接下来使用上述配置的 values.yaml 文件来部署 GreptimeDB 集群:
helm upgrade --install mycluster \
greptime/greptimedb-cluster \
--values /path/to/values.yaml \
-n default
部署完成后,你可以用如下命令来查看 GreptimeDB 集群的 Pod 状态:
kubectl -n default get pods
期望输出
NAME READY STATUS RESTARTS AGE
mycluster-datanode-0 2/2 Running 0 77s
mycluster-flownode-0 2/2 Running 0 2m26s
mycluster-frontend-6ffdd549b-9s7gx 2/2 Running 0 66s
mycluster-grafana-675b64786-ktqps 1/1 Running 0 6m35s
mycluster-meta-58bc88b597-ppzvj 2/2 Running 0 86s
mycluster-monitor-standalone-0 1/1 Running 0 6m35s
你可以转发 Grafana 的端口到本地来访问 Grafana 仪表盘:
kubectl -n default port-forward svc/mycluster-grafana 18080:80
请参考访问 Grafana 仪表盘章节来查看相应的数据面板。
配置监控数据的收集
本节将介绍监控配置的细节。