本教程将一步步演示怎么使用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. python3之面向对象

    1.面向对象术语 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类属性(类变量):类属性在整个实例化的对象中是公用的.类属 ...

  2. PE文件解析器的编写(二)——PE文件头的解析

    之前在学习PE文件格式的时候,是通过自己查看各个结构,自己一步步计算各个成员在结构中的偏移,然后在计算出其在文件中的偏移,从而找到各个结构的值,但是在使用C语言编写这个工具的时候,就比这个方便的多,只 ...

  3. Linux经常使用的文件传输的几种方式

    Linux经常使用的文件传输的几种方式 1.终端新建stfp协议连接 或者命令方式: sftp -P22 root@192.168.11.100 端口可以不用填写,默认是22,端口的P是大写. 将本地 ...

  4. Linux进程管理描述符 task_struct

    转:http://blog.csdn.net/hongchangfirst/article/details/7075026 大家都知道进程,可是知道linux是怎么管理其进程的吗?每一个进程都有一个进 ...

  5. 【ASP.NET MVC系列】浅谈表单和HTML辅助方法

    [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...

  6. Vijos P1785 同学排序【模拟】

    同学排序 描述 现有m位同学,第1位同学为1号,第2位同学为2号,依次第m位同学为m号.要求双号的学生站出来,然后余下的重新组合,组合完后,再次让双号的学生站出来,重复n次,问这时有多少同学出来站着? ...

  7. [bzoj3702] 二叉树

    一个节点的儿子是否交换,不会影响到它和兄弟节点间的逆序对数. 所以每次合并线段树的时候算一下交换与不交换的逆序对数,然后选个较小值就行了. #include<cstdio> #includ ...

  8. flume1.8 基础架构介绍(一)

    1. 系统要求 1. Java运行环境 -- Java 1.8及以上 2. 内存 -- 足够的内存供配置的sources,channels 或者sinks使用 3. 硬盘空间 -- 足够的硬盘空间供配 ...

  9. 解决get乱码

    也可以在tomcat中修改,但是每次配置tomcat中都得修改.容易忘记,还是图片这个方法最好,推荐

  10. vue安装babel依赖报错

    刚刚因为一些原因把依赖包删除,重新install了一下,结果报错 deprecate babel-preset-es2015@* ???? Thanks for using Babel: we rec ...