- 关于MogDB Stack
- 快速上手
- 软件安装
- 使用手册
- 架构
- 参考
- 命令行
- mgo
- mgo create
- mgo create mgorole
- mgo create mgouser
- mgo create cluster
- mgo show
- mgo show k8s
- mgo show mgorole
- mgo show mgouser
- mgo show cluster
- mgo show restore
- mgo delete
- mgo delete mgorole
- mgo delete mgouser
- mgo delete cluster
- mgo delete backup
- mgo delete k8s
- mgo scale
- mgo scaledown
- mgo switch
- mgo update
- mgo update mgorole
- mgo update mgouser
- mgo update cluster
- mgo version
- mgo addk8s
- mgo localk8s
- mgo backup
- mgo backup detail
- mgo restore
- mgo minio
- mgo minio object
- mgo minio object ls
- mgo minio object stat
- mgo minio object getf
- 服务端
- 命令行
- FAQ
- 发布记录
监控与告警
本文介绍如何对 Kubernetes 集群进行监控。在 MogDB 集群运行的过程中,需要对容器资源、宿主机、Kubernetes 组件等进行监控。对于这些组件或资源的监控,需要在整个 Kubernetes 集群维度部署监控系统来实现。
架构
监控告警共包含四个维度:
- 宿主机指标
- 容器指标
- Kubernetes 资源状态
- MogDB 集群状态

宿主机监控
通过 node exporter 对物理机指标进行采集,统一抓取到 prometheus 中。Node Exporter 是 Prometheus 官方提供的一个节点资源采集组件,可以用于收集服务器节点的数据,如 CPU 频率信息、磁盘 IO 统计、剩余可用内存等等。Node Exporter 会将收集到的信息转换为 Prometheus 可识别的 Metrics 数据。Prometheus 可以从 Node Exporter 中对这些指标进行收集与存储,并且可以根据这些数据的实时变化进行服务器节点资源监控。
容器监控
cAdvisor 是 Google 开源的容器资源监控和性能分析工具,它是专门为容器而生,在 Kubernetes 中,我们不需要单独去安装,cAdvisor 作为 kubelet 内置的一部分程序可以直接使用,也就是我们可以直接使用 cAdvisor 采集数据,可以采集到和容器运行相关的所有指标。
cadvisor 中获取到的典型监控指标如下:
| 指标名称 | 类型 | 含义 |
|---|---|---|
| container_cpu_load_average_10s | gauge | 过去10秒容器CPU的平均负载 |
| container_cpu_usage_seconds_total | counter | 容器在每个CPU内核上的累积占用时间 (单位:秒) |
| container_cpu_system_seconds_total | counter | System CPU累积占用时间(单位:秒) |
| container_cpu_user_seconds_total | counter | User CPU累积占用时间(单位:秒) |
| container_fs_usage_bytes | gauge | 容器中文件系统的使用量(单位:字节) |
| container_fs_limit_bytes | gauge | 容器可以使用的文件系统总量(单位:字节) |
| container_fs_reads_bytes_total | counter | 容器累积读取数据的总量(单位:字节) |
| container_fs_writes_bytes_total | counter | 容器累积写入数据的总量(单位:字节) |
| container_memory_max_usage_bytes | gauge | 容器的最大内存使用量(单位:字节) |
| container_memory_usage_bytes | gauge | 容器当前的内存使用量(单位:字节) |
| container_spec_memory_limit_bytes | gauge | 容器的内存使用量限制 |
| machine_memory_bytes | gauge | 当前主机的内存总量 |
| container_network_receive_bytes_total | counter | 容器网络累积接收数据总量(单位:字节) |
| container_network_transmit_bytes_total | counter | 容器网络累积传输数据总量(单位:字节) |
资源对象监控
kube-state-metrics 提供资源对象本身的监控,如 pod 运行状态、有多少 job 在运行中等等,它基于 client-go 开发,轮询 Kubernetes API,并将 Kubernetes 的结构化信息转换为 metrics。
指标类别包括:
-
CronJob Metrics
-
DaemonSet Metrics
-
Deployment Metrics
-
Job Metrics
-
LimitRange Metrics
-
Node Metrics
-
PersistentVolume Metrics
-
PersistentVolumeClaim Metrics
-
Pod Metrics
-
Pod Disruption Budget Metrics
-
ReplicaSet Metrics
-
ReplicationController Metrics
-
ResourceQuota Metrics
-
Service Metrics
-
StatefulSet Metrics
-
Namespace Metrics
-
Horizontal Pod Autoscaler Metrics
-
Endpoint Metrics
-
Secret Metrics
-
ConfigMap Metrics
MogDB 监控
为了获取 MogDB 自身的监控指标,需要配套的 MogDB exporter 采集相应的数据。