本教程将一步步演示怎么使用BMC Atrium Orchestrator (BAO) Vmware Infrastructure Event Monitor来监控VSphere Webservice的事件消息,通过匹配定制的事件,实现对vcenter事件的实时监控,并根据监控到的信息采取一定行动。你也可以根据此教程来调用其他monitor类型的adapter,并根据monitor到的信息进行进一步操作。我这里主要对vcenter虚拟机的开关机事件进行监控。

0) 概述

  BAO monitoring涉及4个组件:

  • The Monitor Adapter--用于monitor的配置
  • The Adapter Event--事件生成
  • The Rules--规则创建
  • The Process (Workflow)--工作流的定制

整个工作流程是这样的:Monitor Adapter监听VSphere Webservice发出的事件消息,当Monitor Adapter接收到消息后,把它传送到Adapter Manager,并自动创建Monitor Event。Rules 根据条件匹配相应的事件,如果命中则进入Workflow process(可以将事件信息传送到workflow中)。如果没有匹配上则直接pass。以上所有的组件都通过XML进行管理,组件之间可以直接通过xml的形式进行talk。

分下面几步进行介绍:

  1. Adapter Configuration(s) - Monitor Adapter:配置Adapter
  2. Adapter Operation Verification: 在vcenter进行开关机操作,并在BAO中生成相应的Adapter Event
  3. Workflow - Process & Rules:创建规则和工作流

1) Adapter Configuration(s) - Monitor Adapter

 1.1 配置 VIS event monitor adapter,具体配置参考如下文档:

https://docs.bmc.com/docs/display/public/baoc201401/Configuring+the+VIS+event+monitor+adapter

我配置完后的信息如下,由于我只监控虚拟机开关机事件,所以我添加的event type包括:VmStartingEvent、VmPoweredOffEvent

<config>
  <soap-url>https://10.200.108.67:443/sdk/vim</soap-url>
  <transport>https-rpc</transport>
  <user-name>administrator@vsphere.local</user-name>
  <password>P@ssw0rd</password>
  <use-ssl-certificate>false</use-ssl-certificate>
  <install-certificate>true</install-certificate>
  <passphrase>changeit</passphrase>
  <allow-unsigned-certificate>false</allow-unsigned-certificate>
  <return-history>false</return-history>
  <suppress-version-info>false</suppress-version-info>
  <event-types>
    <event-type>VmStartingEvent</event-type>
    <event-type>VmPoweredOffEvent</event-type>
  </event-types>
</config>

注意:此处monitor adapter的名字为:"monitor67",后面会用到这个名字

1.2 激活Adapter

登录BAO CDP grid,激活新增的monitor67。

2) Adapter Operation Verification生成Adapter Event

2.1 Logging

设置logging模式,登录BAO CDP→Manage→GRID→Logging Level(=DEEBUG),通过log,可以获取monitor到的事件xml,并可根据XML进行解析出有用的信息

Log的位置默认为/u01/bmc/ao-platform/cdp/tomcat/logs/grid.log,关键字可使用"adapter-event"

2.2 登录vcenter,对虚拟机进行开关机,生成开关机消息

一旦生成了开关机的消息,便会生成adapter event

2.3 分析grid.log,获取对应的Adapter-event

我获取的event如下:

<adapter-event>
    <source-adapter>monitor67</source-adapter>
    <event>VMware Events Monitor adapter:</event>
    <data>
        <vmware-monitor-event>
            <returnval>
                <version>13</version>
                <changeSet>
                    <name>latestPage[284873]</name>
                    <op>remove</op>
                </changeSet>
                <changeSet>
                    <name>latestPage[286219]</name>
                    <op>add</op>
                    <VmPoweredOffEvent>
                        <key>286219</key>
                        <chainId>286219</chainId>
                        <createdTime>2016-08-17T01:16:55.895456Z</createdTime>
                        <userName/>
                        <datacenter>
                            <name>CEBBANK</name>
                            <Datacenter>datacenter-2</Datacenter>
                        </datacenter>
                        <computeResource>
                            <name>Cluster2</name>
                            <ClusterComputeResource>domain-c385</ClusterComputeResource>
                        </computeResource>
                        <host>
                            <name>10.200.236.15</name>
                            <HostSystem>host-417</HostSystem>
                        </host>
                        <vm>
                            <name>luobo2</name>
                            <VirtualMachine>vm-3251</VirtualMachine>
                            <uuid>422984fe-31ee-0261-e0f8-21f53cb614bf</uuid>
                        </vm>
                        <fullFormattedMessage>CEBBANK 中 10.200.236.15 上的 luobo2 已关闭电源</fullFormattedMessage>
                        <changeTag/>
                        <template>false</template>
                        <virtualCenter>10.200.108.67</virtualCenter>
                    </VmPoweredOffEvent>
                </changeSet>
            </returnval>
        </vmware-monitor-event>
    </data>
</adapter-event>

注意:adapter event 就是后面workflow rules (below)将要用作判断条件,去运行workflow中process的。

通过上面的event,我们可以获取到关机的//vm/name和//CreateTime信息,这些信息我们后面会用file记录下来,验证monitor效果。

3) Workflow - Process & Rules

使用BAO Development Studio创建workflow,这个workflow将监视monitor Adapter的事件,解析出有用的数据(//vm/name和//CreateTime),并把数据写到服务器的某个文件里。主要步骤包括:创建project、添加file append process、创建rules

3.1 创建project,命名为test_monitor

3.2 创建process,,命名为UpdateStatus

必须先创建process,然后创建rules,因为创建rules的时候需要指定process

这个process包括3个activities:Start、Append、Stop。Append Activity位于 "AutoPilot-AD-Utilities" adapter module→Terminal → File→Append,如下图

分别说说这前两个activities

START ACTIVITY 

  在Start上你需要创建一个输入参数,名字为"inputevent",这个参数是用于Adapter Manager传递符合rules规则的Adapter Events的,它传送的是<data>节点的数据,所以这个参数非常重要,并且只能命名为"inputevent"。"inputevent"可以是局部的也可以全局的context item。

APPEND ACTIVITY

Append activity包括3个输入,分别是: adapter name, file name, and line 1。

adapter name 要填写ro-adapter-file的名字,我这里是"File Adapter"。

File Name: /tmp/montor.txt (BAO server上的文件,输出内容将写到这里)

Line 1 就是要写入文件的具体信息. 这里我要写入的是vm name,由于vm name需要通过解析XML来获取,所以这里需要通过Advanced transformation editor把它的实际值获取出来。XPath transformation如下:

string(//vmware-monitor-event/returnval/changeSet/VmPoweredOffEvent/vm/name)

它将把下文XML中vm 的name解析出来,运行测试你的process,在Job Input Parameters输入下面的xml

    <data>
        <vmware-monitor-event>
            <returnval>
                <version>13</version>
                <changeSet>
                    <name>latestPage[284873]</name>
                    <op>remove</op>
                </changeSet>
                <changeSet>
                    <name>latestPage[286219]</name>
                    <op>add</op>
                    <VmPoweredOffEvent>
                        <key>286219</key>
                        <chainId>286219</chainId>
                        <createdTime>2016-08-17T01:16:55.895456Z</createdTime>
                        <userName/>
                        <datacenter>
                            <name>CEBBANK</name>
                            <Datacenter>datacenter-2</Datacenter>
                        </datacenter>
                        <computeResource>
                            <name>Cluster2</name>
                            <ClusterComputeResource>domain-c385</ClusterComputeResource>
                        </computeResource>
                        <host>
                            <name>10.200.236.15</name>
                            <HostSystem>host-417</HostSystem>
                        </host>
                        <vm>
                            <name>luobo2</name>
                            <VirtualMachine>vm-3251</VirtualMachine>
                            <uuid>422984fe-31ee-0261-e0f8-21f53cb614bf</uuid>
                        </vm>
                        <fullFormattedMessage>CEBBANK 中 10.200.236.15 上的 luobo2 已关闭电源</fullFormattedMessage>
                        <changeTag/>
                        <template>false</template>
                        <virtualCenter>10.200.108.67</virtualCenter>
                    </VmPoweredOffEvent>
                </changeSet>
            </returnval>
        </vmware-monitor-event>
    </data>

到BAO服务器/tmp/montor.txt文件中,查看是否增加了一行内容:luobo2

 3.3 创建Rules

Rules只有if条件,一旦满足条件,它就会把monitor Adapter event中的<data>节点的信息全部传递给"inputevent"参数。如果不满足条件则自动忽略当前event。一个rules只能执行一个process。当然你可以创建多个Rules来调用不同的process。

配置Rules:

填写Rule的名字,指定我们上面创建的process "UpdateStatus", 定义XML条件用于匹配指定的事件消息。下面是我的配置:

rule name:MonitorVmStatus

rule要执行的process::test_monitor:UpdateStatus

Match:ALL(满足所有条件)

Source: string(//source-adapter)

Comparitor: =

Value: "monitor67" (一定要带双引号)

说明:XML Xpath Query将搜索我们上面配置的monitor Adapter ,并把"monitor67"的事件消息移交给Adapter Manager作为Adapter event。最终配置如图:

保存整个module并上传到CDP repository。

所有的创建完成,只需要等vcenter发生虚拟机开关机事件,便可以把vm的name写入到BAO 服务器的/tmp/montor.txt 文件中。

注意:如果你在window环境下打开了/tmp/montor.txt 文件,那么文件将阻止写入,必须关掉才行。

参考:

基本是下面的中文版

Tutorial - BMC Atrium Orchestrator JMS Monitor Adapter with Apache ActiveMQ

VMware Infrastructure Object Model Overview可以通过此参考订阅事件的类型,Data Object Types-VmEvent

一步步使用BMC Atrium Orchestrator Vmware Infrastructure Event Monitor的更多相关文章

  1. VMware Infrastructure 3 in a Cisco Network Environment

    http://www.cisco.com/en/US/docs/solutions/Enterprise/Data_Center/vmware/VMware.html

  2. 摘-BMC自动化解决方案产品概览

    以下内容摘自BMC解决方案白皮书 BMC 解决方案助力您的企业快速享受自动化带来的快速效益,并随时间推移实现这些优势的最大化. BMC 自动化技术可帮助您优化敏捷性,同时保持必要的治理和合规性控制.无 ...

  3. 如何重新注册VMware Update Manager(VUM)至vCenter Server中

    在VMware的vSphere化境中,VUM的角色相当于Windows 环境中的WSUS(Windows 更新服务器),可以批量,自动化的完成所管辖ESXi主机的大版本迁移,小版本升级的任务,深受管理 ...

  4. 转:怎样在VMware ESXi上 克隆虚拟机

    Cloning virtual machines on VMware ESXi 翻译自http://www.dedoimedo.com/computers/vmware-esxi-clone-mach ...

  5. 【VMware虚拟化解决方案】设计和配置VMware vCenter 5.5

    在这之前,我们已经对VMware ESXi 5.5进行了整个环境的设计和规划,虽然安装VMware ESXi 5.5在CPU的选型.网络的设计.共享存储的方式.虚拟化资源的需求和安装ESXI的模式等一 ...

  6. VMWare ESX Server

    VMWare ESX Server 4.1 全套下载 [转自:http://www.awolf.net/content/hack/vmware-esx-server-4-1-all-download. ...

  7. VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager

    VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager VMware  vShield Manager是专为 VMware vCenter Server 集成 ...

  8. Failed to connect to VMware Lookup Service……SSL certificate verification failed

    今天登陆vsphere web-client时候,报错如下: Failed to connect to VMware Lookup Service https://vc-test.cebbank.co ...

  9. 使用Vmware CLI 6.5控制虚拟机,并做快照

    1.下载PowerCLI 6.5 http://7dx.pc6.com/wwb5/VMwarePowerCLI65.zip 2. 打开 VMware vSphere PowerCLI 出现 无法加载文 ...

随机推荐

  1. Javascript一句代码实现JS字符串去除重复字符

    需求: 原字符串:abcdabecd 去重后字符串:abcde JS字符串去重,一个简单需求,网上找案例发现都是一大堆代码,对于强迫症的我 实再无法忍受,于是自己手动写出一段代码,完美解决该问题. 代 ...

  2. JMeter插件之 BlazeMeter's XMPP----测试Openfire等

    JMeter也可以测试XMPP协议了,之前一直使用Tsung或者是直接写java代码结合Java request来进行,现在可以用BlazeMeter提供的插件来进行XMPP测试,无需过多编码. 首先 ...

  3. PHP拓展配置redis、phalcon

    PHPinfo查看php信息 标记部分对应下载版本ts和nts和vc版本 window x64 php7.0-ts-vc14拓展地址,下载相应的dll就行https://pecl.php.net/pa ...

  4. Linux简介与安装

    Linux系统的组成 Linux 内核:内核是系统的"心脏",是运行程序与管理像磁盘和打印机等硬件设备的核心程序. Linux Shell:Shell是系统的用户界面,提供了用户与 ...

  5. VFS四大对象之一 struct super_block

    linux虚拟文件系统四大对象: 1)超级块(super block) 2)索引节点(inode) 3)目录项(dentry) 4)文件对象(file) 现在先介绍第一个 一.super_block的 ...

  6. Java与算法之(5) - 老鼠走迷宫(深度优先算法)

    小老鼠走进了格子迷宫,如何能绕过猫并以最短的路线吃到奶酪呢? 注意只能上下左右移动,不能斜着移动. 在解决迷宫问题上,深度优先算法的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径. 首先 ...

  7. python函数定义

    刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函 ...

  8. 常用OJ名字+地址(自用)

    常用OJ名字+地址 不定期更新,自己用,有补充的也可以给我说说哈. 中文 openjudge 地址:openjudge.cn 说明:北大提供的一个平台,学校可申请小组: 比较好的小组: 计算概论:ic ...

  9. 【转载】Java 内存分配全面浅析

    本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java.这类文章网上有很多,但大多比较零碎.本文从认知过程角度出发,将带给读者一个系统的介绍. 本文转载自袭烽大神的博客,原文链接 ...

  10. hihoCoder 1039:字符消除(字符串处理)

    #1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消 ...