本教程将一步步演示怎么使用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. Transact-SQL参考--学习笔记

    基本的就不累赘了. 运算符 除法: dividend / divisor 如果用一个整数的 divisor 去除整数的 dividend,其结果是一个整数,小数部分被截断,如果要有小数可以将divid ...

  2. Java—javac Hello.java找不到文件

    刚开始编写Java代码时,会遇到很多困难,下面来说一个比较常见的错误,如下: 对于初学者,一般都是从Hello,World开始的学起的,废了好大劲儿,铜鼓了半天,终于要在DOS上运行javac Hel ...

  3. Kylin与CDH兼容性剖析

    1. 概述 Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区.它能 ...

  4. Excel生成guid、uuid

    1.Excel生成guid,uuid  格式:600d65bc-948a-1260-2217-fd8dfeebb1cd =LOWER(CONCATENATE(DEC2HEX(RANDBETWEEN(, ...

  5. C++雾中风景6:拷贝构造函数与赋值函数

    在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数.初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容.这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别. 1.调用了 ...

  6. AVFoundation 框架初探究(三)

    这篇总结什么? 在该系列的上一篇的文章中,我们总结的大致内容如下: 1.视频录制  AVCaptureSession + AVCaptureMovieFileOutput 2.视频录制 AVCaptu ...

  7. 学习 node.js 搭建web服务器

    开始 学习使用 node.js 首先完成搭建一个 web服务器.myweb.js var http = require('http'); var url = require('url'); var h ...

  8. Java_web学习(二) eclipse(tomcat)配置

    1.先下载eclipse,隔代版本最佳 https://www.eclipse.org/ 2.创建workspace01存放项目代码 3.配置工作目录: IDE相关配置信息 2 没有配置tomcat, ...

  9. BZOJ2300: [HAOI2011]防线修建

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2300 (我只是在发以前写过的题.. 因为题目没说强制在线,所以离线乱搞就可以了.先把点删掉然后 ...

  10. RAID 详解

    一.什么是RAID 磁盘阵列全名是『Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一个技术(软件或 ...