前面的博文中给大家介绍了什么是Automation Hybrid Runbook worker以及如何使用自动化的方式将其部署到其他云环境或者本地数据中心。接下来将带着大家一起看一下如何使用Automation Hybrid Runbook worker在本地数据中心执行自动化管理。
我们本次的实验会使用Automation Hybrid Runbook worker运行脚本来监控本地数据库的备份状态,同时会将所有的数据库备份状态回传到log analytics来进行分析,在发现一些问题是进行邮件告警。
闲言少絮,下面我们开始今天的实验:
测试脚本运行状况:
一般我们使用Hybrid Runbook Worker之前,需要先测试脚本在本地是否可以正常运行:
配置Automation账户
相信经常通过脚本完成一些自动化任务的朋友都比较清楚,将脚本执行时涉及到的用户名等信息以明文的方式存储到脚本内部是有极大的安全隐患的。为了避免这个隐患,在azure的自动化账户中我们可以添加对应的certificates和variables来存储用户名和密码信息。
首先我们设置variables来存储本地数据库的密码:
然后设置certificates来存储本地数据库的用户名信息:
上述配置都完成以后,我们可以切换到Runbook选项卡来新建一个runbook:
创建完成以后点击“编辑”,然后将我们的脚本文件复制到内部并进行微调:
配置完脚本文件后我们就可以点击“start”来测试脚本的运行状态:
在运行设置中有两个选项:
Azure:此选项代表只能在Azure内部运行runbook脚本
Hybrid Worker:此选项代表可以在其他云平台货本地数据中心运行runbook脚本
如果选择使用Hybrid Worker的话我们需要指定需要运行脚本的Hybrid worker group:
配置完成以后我们可以在log控制台看到对应的运行状态:
同时我们也可以在log analytics内执行查询,来查看对应的本分状态等信息:
AzureDiagnostics | where RunbookName_s == "GetSQLBackupStatus" | where ResultDescription contains "Backup" | parse ResultDescription with "SQLServerName: "SQLServerName", Database:"Database", Last Backup Finish Date (UTC): ‘" BackupFinishedDateUTC:datetime "‘"* | project SQLServerName, Database, BackupFinishedDateUTC, TimeGenerated | where BackupFinishedDateUTC <= ago(2d)
查询剩余空间百分比低于20%的数据库:
AzureDiagnostics | where RunbookName_s == "GetSQLBackupStatus" | where ResultDescription contains "Free Space" | parse ResultDescription with "SQLServerName:"SQLServerName", Database:"Database", Current Size MB:"CurrentSizeMB", Free Space MB:"FreeSpaceMB", Free Space Percentage:" FreeSpacePercent:long * | project SQLServerName, Database, CurrentSizeMB, FreeSpaceMB, FreeSpacePercent, TimeGenerated | where FreeSpacePercent < 20
配置Alerts
除了上述的功能外,我们可以在使用Azure Montior配置邮件报警,来及时的发现潜在问题。
进入Azure Monitor,点击Alert,点击“+new alert rule”:
如下图所示进行配置:
配置完成后,如下图所示:
当数据库的剩余空间百分比低于20%的时候,我们就会收到对应的邮件告警信息:
原文地址:https://blog.51cto.com/wuyvzhang/2465448