通过Prometheus监控备份中心并配置告警

您可以将备份中心接入Prometheus,通过阿里云Prometheus服务监控当前集群中备份仓库及备份任务的状态,实现应用迁移、备份容灾状态的实时监控。本文介绍如何使用备份中心监控大盘以及如何配置备份任务失败告警。

前提条件

计费说明

migrate-controller备份服务组件会自动将监控指标发送至阿里云Prometheus服务,这些指标将被视为自定义指标。使用自定义指标会产生额外的费用。

为避免产生额外的费用,建议在启用此功能前,仔细阅读计费概述,了解自定义指标的收费策略。费用将根据您的集群规模和应用数量等因素产生变动。您可以通过资源消耗统计,监控和管理您的资源使用情况。

将备份中心接入Prometheus

您可以通过阿里云Prometheus监控当前集群关联的备份仓库及备份任务的状态。

  1. 登录ARMS控制台

  2. 在左侧导航栏,单击接入中心,在基础设施页签,搜索备份中心或Ack Backupcenter,然后单击选中Backupcenter进入接入界面。

  3. 开始接入页签,选择已经安装了备份中心的目标容器服务集群,然后单击确定

    接入状态检查完成后,您可以在容器服务控制台或ARMS控制台查看大盘数据。

查看备份中心监控大盘

大盘入口

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > Prometheus 监控

  3. Prometheus监控页面,单击其他页签,在ACK BackupCenter下查看备份中心监控大盘。

说明

通过ARMS控制台查看监控大盘的相关操作,请参见开箱即用大盘

大盘介绍

备份中心监控大盘包含备份仓库监控信息(Backup Locations)、备份任务监控信息(Backup Operation Status)以及工作组件状态监控信息(Addon Status)三部分。

Backup Locations

该大盘用于监控备份仓库的基本信息,展示了集群当前关联的备份仓库详情(Backuplocation Detail)。image

备份仓库用于存放创建的备份,声明了集群备份中心与OSS Bucket的关联信息。当对应备份仓库状态为Available时,才能通过备份中心完成备份、制作快照、恢复等任务。Backuplocation Detail的监控指标如下:

监控指标

说明

Backuplocation

备份仓库名称。

OSS Bucket

备份仓库关联的OSS Bucket名称。

Region

OSS Bucket所在地域,例如cn-hangzhou。

NetworkPolicy

备份仓库与OSS Bucket间的网络连通方式,取值:

  • internal:内网。

  • public:公网。

Phase

备份仓库的状态,取值:

  • InProgress:备份仓库初始化时,与OSS Bucket连通性检查中,持续时间短暂。

  • Available:与OSS Bucket正常连通,可以用于备份。

  • Unavailable:无法与OSS Bucket连通,不能用于备份。

Backup Operation Status

该大盘用于监控备份任务的状态,包含备份任务总览(Backup Overview)和失败状态的备份任务详情(Failed Backup Detail)两部分。

image

  • Backup Overview:通过柱状图展示了该集群的各个备份仓库中创建备份任务的数量,其中,备份任务的来源为通过立即备份创建、或通过备份计划定时创建的单个备份。X轴为备份仓库名称,Y轴为备份任务数量。Backup Overview的监控指标如下:

    监控指标

    说明

    Backup(Failed)

    通过红色柱状图展示失败状态的备份任务数量。

    Backup(Completed)

    通过绿色柱状图展示成功状态的备份任务数量。

  • Failed Backup Detail:通过表格展示了该集群中处于失败状态的备份任务的基本信息。Failed Backup Detail的监控指标如下:

    监控指标

    说明

    Backup

    备份任务名称。

    Backuplocation

    备份任务所处的备份仓库名称。

    BackupType

    备份任务的备份类型,取值:

    • AppBackup:仅备份应用,即YAML备份。

    • AppAndPvBackup:备份应用及数据,即YAML和PV内数据备份。

    DataType

    数据备份的类型,取值:

    • snapshot:备份的PV为纯云盘存储。

    • hbr:备份的PV为HostPath本地存储、NAS或OSS等类型的文件存储。

    • all:备份的PV同时包含云盘存储及文件系统存储。

    • none:开启了数据备份,但所选命名空间下未使用PV存储。

    FromSchedule

    备份任务来源。

    • 空值:由立即备份创建。

    • 非空值:由备份计划定时创建,取值为对应备份计划名称。

Addon Status

该大盘用于监控工作组件csdr-controller和csdr-velero的工作状态。您需要确保这些工作组件的正常运行,才能通过备份中心进行备份、制作快照、恢复等操作。

当备份中心组件migrate-controller安装完成后会对集群进行预检查,检查完成后,将在备份中心工作的命名空间csdr下部署工作组件csdr-controller和csdr-velero。

image

备份中心的工作组件通过Deployment(Pods)形式展示,包含csdr-controller与csdr-velero两个组件。Addon Status的监控指标如下:

监控指标

说明

Age

工作组件的创建时长。

Status

工作组件的状态,取值:

  • Health:健康,说明Pod运行正常。

  • UnHealth:异常,表明Pod无法正常启动或探针失效。

Pods

工作组件Pods详情。

Memory Request

为工作组件预留的内存资源额度。

CPU Request

为工作组件预留的CPU资源额度。

Memory Limit

工作组件所需内存的资源上限。

CPU Limit

工作组件所需CPU的资源上限。

配置备份任务失败告警

备份任务失败告警属于基于事件的告警,与备份任务对应的CRD为csdr.alibabacloud.com资源组下的applicationbackups,当备份任务失败时,同名资源将创建Warn事件。

查询备份任务失败的Warn事件

执行以下命令,查询失败的备份任务的Warn事件。

kubectl -ncsdr get events --field-selector='type!=Normal' 

预期输出:

VaultError: backup vault is unavailable: oss: service returned error: StatusCode=403, ErrorCode=AccessDenied, ErrorMessage="The bucket you access does not belong to you.", RequestId=668516BC35F915******

其中,VaultError为备份任务失败的原因。

配置集群重要事件报警规则感知备份任务失败Warn事件

通过集群报警配置功能进行配置。具体操作,请参见容器服务报警管理

如何定位监控数据异常问题

查询工作组件不存在或状态异常(UnHealth)的原因

  • 安装备份中心后,工作组件不存在或反复部署。

    执行以下命令,查询migrate-controller组件运行状态。

    kubectl -n kube-system get pod -l app=migrate-controller

    若组件处于CrashLoopBackOff状态或反复重启,即集群预检查不通过,通常由于集群使用了Flexvolume存储插件或注册集群未配置相关权限,相关排查请参见备份中心FAQ注册集群

  • 工作组件状态长期为UnHealth,Pods仪表盘无数据或状态异常。

    工作组件的Pod无法正常启动,相关排查请参见Pod异常问题排查

  • 工作组件状态为Health,但Pods仪表盘Restarts次数不为0。

    csdr-velero的内存使用情况在备份期间将出现峰值,容易发生OOM(Out of Memory)问题,导致组件异常退出重启,您可以提高内存资源使用上限来解决。

    说明

    备份过程中,若工作组件的Pod异常退出,将导致任务失败或长期处于InProgress状态。

查询备份仓库状态异常(Unavailable)的原因

执行以下命令,查询错误Message。

其中,<unavailable-backuplocation-name>为异常状态备份仓库的名称。

kubectl -ncsdr describe backuplocation <unavailabe-backuplocation-name> 

关于备份仓库异常状态处理,请参见备份中心FAQ

查询备份任务失败(Failed)的原因

命令行方式查询

执行以下命令,查询错误Message。

其中,<failed-applicationbackup-name>为失败的备份任务的名称。

kubectl -ncsdr describe applicationbackup <failed-applicationbackup-name> 

关于备份任务失败处理,请参见备份中心FAQ

控制台方式查询

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 应用备份

  3. 应用备份页面,单击备份记录页签,定位对应的备份任务,单击状态列的Failed查看错误Message。