最近,我参加了几次客户对话,主要话题集中在监控和故障排除vCenter中的事件,尤其是Virtual SAN。我知道过去已经多次讨论过该主题,不仅在VMware公司存储博客中,而且在其他社区博客中。更具体地说,一位VSAN冠军William Lam曾在他的个人博客中广泛报道了这一点。
我们在vCenter Server警报和Virtual SAN主题上所做的工作源于William发表的两篇文章中确定的发现。有关什么是建议的Virtual SAN vCenter Server警报以及如何添加和配置警报的详细信息,请查看以下文章:
- 方便的VSAN VOB用于创建vCenter警报 – 通过 的VMware公司的Lam William
- 在vSphere 6.0中用于创建vCenter Server警报的新VOB – 通过 的VMware公司的Lam William
- 操作VMware Virtual SAN:配置vCenter警报 – 通过 乔·库克(VMware)
随着vSphere 6.0和Virtual SAN 6.0即将面世,该脚本可使所有Virtual SAN客户轻松得多,并提供了一种简化的方法,可在几秒钟内添加和配置Virtual SAN的所有可用vCenter Server警报。
我有机会与世界之一一起研究这个小金块’是地球上最糟糕的PowerCLI专家,另一个VSAN冠军Alan Renouf和William Lam也是VMware虚拟化团队代号#TheWreckingCrew的成员。这是PowerCLI示例代码,可用于为Virtual SAN添加和配置所有vCenter Server警报。这些警报适用于Virtual SAN 5.5版和6.0版。
这是代码示例,请确保更新凭据和群集名称以匹配各自的基础架构要求。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
$ vc = 连接VI服务器 -服务器 vcsa-vmware.本地 -用户名 管理员@球体.本地 -密码 vmware #定义要在其中创建规则的VSANcluster $集群 = “ vsan-cluster01” $ 虚拟SANAlerts = @{ “ esx.audit.vsan.clustering.enabled” = “ Virtual SAN群集服务已启用” “ esx.clear.vob.vsan.pdl.online” = “ Virtual SAN设备已联机。” “ esx.clear.vsan.clustering.enabled” = “ Virtual SAN群集服务现已启用。” “ esx.clear.vsan.vsan.network.available” = “ Virtual SAN现在至少具有一个活动的网络配置。” “ esx.clear.vsan.vsan.vmknic.ready” = “以前报告的vmknic现在具有有效的IP。” “ esx.problem.vob.vsan.lsom.componentthreshold” = “ Virtual SAN节点:近节点组件数限制。” “ esx.problem.vob.vsan.lsom.diskerror” = “ Virtual SAN设备出现永久错误。” “ esx.problem.vob.vsan.lsom.diskgrouplimit” = “无法创建新的磁盘组。” “ esx.problem.vob.vsan.lsom.disklimit” = “无法将磁盘添加到磁盘组。” “ esx.problem.vob.vsan.pdl.offline” = “ Virtual SAN设备已脱机。” “ esx.problem.vsan.clustering.disabled” = “ Virtual SAN群集服务已被禁用。” “ esx.problem.vsan.lsom.congestionthreshold” = “ Virtual SAN设备的内存/ SSD拥塞已更改。” “ esx.problem.vsan.net.not.ready” = “添加到Virtual SAN网络配置的vmknic没有有效的IP。” “ esx.problem.vsan.net.redundancy.lost” = “ Virtual SAN在其网络配置中没有任何冗余。” “减少了esx.problem.vsan.net.redundancy。” = “ Virtual SAN在减少的网络冗余上运行。” “ esx.problem.vsan.no.network.connectivity” = “ Virtual SAN没有任何可用的网络配置。” “添加了esx.audit.vsan.net.vnic。” = “已添加虚拟SAN NIC。” “ esx.audit.vsan.net.vnic.deleted” = “ Virtual SAN NIC已删除。” “ esx.problem.vob.vsan.dom.lsefixed” = “ Virtual SAN检测到并修复了磁盘上的中等错误。” “ esx.problem.vob.vsan.dom.nospaceduringresync” = “重新同步未遇到空间错误。” “ esx.problem.vsan.dom.init.failed.status” = “ Virtual SAN分布式对象管理器无法初始化。” “ esx.problem.vob.vsan.lsom.disklimit2” = “无法将磁盘添加到VSAN 6.0中的磁盘组。” “ vprob.vob.vsan.pdl.offline” = “ Virtual SAN设备已在VSAN 6.0中脱机。” } $ alarmMgr = 查看 报警管理器 实体 = 获取集群 $集群 | 查看 $ 虚拟SANAlerts.按键 | Foreach { $名称 = $ 虚拟SANAlerts.Get_Item($ _ ) 价值 = $ _ #创建警报规格 $警报 = 新对象 的VMware.Vim.报警规格 $警报.名称 = $名称 $警报.描述 = $名称 $警报.已启用 = $ TRUE $表达式 = 新对象 的VMware.Vim.EventAlarmExpression $表达式.事件类型 = $ null $表达式.eventTypeId = 价值 $表达式.objectType = “主机系统” $表达式.状态 = “红” $警报.表达 = 新对象 的VMware.Vim.或警报表达 $警报.表达.表达 + = $表达式 $警报.设置 = 新对象 的VMware.Vim.警报设定 $警报.设置.报告频率 = 0 $警报.设置.公差范围 = 0 #创建警报 写主机 “在$ Cluster上为$ 名称创建警报” $ CreatedAlarm = $ alarmMgr.CreateAlarm(实体.MoRef, $警报) } 写主机 “所有警报已添加到$ Cluster” 断开VIServer -服务器 $ vc -确认:$假 |
– Enjoy
有关Virtual SAN(VSAN),vSphere虚拟卷(VVOL)和其他软件定义的存储技术以及vSphere + OpenStack的的将来更新,请确保在Twitter上关注我:@PunchingClouds
在警报中(在vCenter中)执行更改时,我收到以下错误(我想向警报中添加一些操作,但不允许任何更改。
数据对象或类型EventAlarmExperrsion缺少必需的属性eventType
在解析序列化的DataObject时或在第13行第10列键入vim.alarm.EventAlarmExpression
顺便说一句,代码很棒。谢谢。
Marco,您使用的是哪个版本的PowerCLI?
尝试向警报添加操作时出现相同的错误。该脚本似乎运行良好,并且确实创建了所有警报,但是我’我无法编辑它们。我正在使用刚刚发布的PowerCLI v6。谢谢你,扎克。