概述
最近这几天一直在解决VM Backup相关的一些问题,之前觉得这部分还是比较简单的,只要把Recovery Service Vault创建好,把policy配置好就行了,后来发现在一些规模比较大的环境里,即使是backup这种最基础的事也需要考虑很多问题,最近在看的包括以下两个
- 在一个规模相对大的landing zone环境里,可能订阅就会有几十上百个,用到的recovery service vault更是不知道有多少,有的公司倾向于IT统一管理,可能每个订阅会有统一的vault用于备份,有些公司可能更注重成本控制,每个BU每个系统可能都会要求单独计算cost,包括backup的cost也需要精确到每个系统,这种情况下每个系统都会有自己的vault,这对于IT和运维人员来说,就需要有统一管控的方案了,比如要知道backup的整体状况
- 另外除了要知道backup的状态之外,还需要在当backup failed的时候能收到对应的告警,在上边描述的场景下,recovery service vault的数量可能是动态变化的,这种情况下如何有效设置告警规则来实现监控,也是要重点考虑的问题之一,这种监控其实并不复杂,之前其实也做过很多次了,大概思路基本都是将vault的log打到log analytics workspace,然后通过Query来设置alert rule定期筛选backup failed的job,但是如果考虑到vault的数量并不固定的话,就会带来一些挑战
解决方案
先来看第一个问题,如何能整体直观看到所有backup的情况,目前看下来有几个方案可以做到
Log Analytics Workspace以及Kusto Query
这个方案属于比较传统的那种,可以创建一个统一的log analytics workspace,然后将recovery service vault的log全部打到workspace里,这样就可以通过query查询到所有backup的情况了,将log打到log analytics workspace只需要创建diagnostic setting即可
这里可以配置将log打到workspace
log打过来之后,直接运行Kusto query即可查询备份情况,需要用到的query可以看看官方sample或者用ChatGPT之类的工具生成,以下是一个简单sample,可以查出来各种状态的backup job的总数
AddonAzureBackupJobs
|summarize count() by JobStatus
总体来说需要用户自己手动配置,另外还要考虑的问题是,如果在上边描述的环境里,vault数量并不固定的话,就需要考虑怎么把log自动打到workspace,也就是我们上边提到的第二个问题
使用Resource Graph查询
Resource Graph是内置的功能,直接搜索进入即可,也是可以通过query语句来查询需要的信息
比如以下语句可以查询所有未配置备份的VM
Resources
| where type in~ ('microsoft.compute/virtualmachines','microsoft.classiccompute/virtualmachines')
| extend resourceId=tolower(id)
| join kind = leftouter ( RecoveryServicesResources
| where type == "microsoft.recoveryservices/vaults/backupfabrics/protectioncontainers/protecteditems"
| where properties.backupManagementType == "AzureIaasVM"
| project resourceId = tolower(tostring(properties.sourceResourceId)), backupItemid = id, isBackedUp = isnotempty(id) ) on resourceId
| extend isProtected = isnotempty(backupItemid)
| where (isProtected == (0))
| project id,name,resourceGroup,location,tags
Backup Explorer以及Backup Center
第三个方案是backup explorer和backup center,这个方案是内置功能,相对来说更简单易用
backup explorer入口就在每个reocvery service vault下的位置
可以统一看到backup的状态和未启用backup的VM
Backup Center是个独立的功能,直接搜索进入即可,也可以看到所有备份的情况
总体来说这个方案是比较推荐的
Backup Report
第四个方案是backup report,可以定期接收到备份相关的报告,入口位置和backup explorer是一样的
但是这个功能也是基于Log Analytics Workspace的,也是要通过diagnostic settings把log打过去才行
可以选择要查看哪个workspace的报告,可以看到的信息包括backup job状态,存储使用情况等等
也可以像之前说的设置定期将report以邮件形式发出来,不过这项功能是基于logic apps,需要在用户环境里部署这些资源
总结
以上几个方案基本可以解决提到的第一个问题,接下来再看第二个问题如何解决