本教程将一步步演示怎么使用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时间处理插件

    摘要:代码返回的有两种时间格式  一种是///  另外一种是---分割的 两个接收参数的说明 timestr  是接收的时间  mark是格式   默认返回的格式是///   加上-  返回的格式是- ...

  2. python 命令

    pip list 可以查看已经安装的插件 pip show name 可以查看插件的信息(如:pip show selenium) pip install selenium==[version num ...

  3. ztree使用font-awesome字体的问题,

    ztree要使用自定义图标字体的时候 需要自己做皮肤cssstyle,官方有文档,但是有些时候我们值需要简单的设置图标字体class样式 是没办法使用的,我们需要对两个函数进行修改. 下面是两个函数请 ...

  4. ElasticSearch 集群监控

    要监控哪些 ElasticSearch metrics? Elasticsearch 提供了大量的 Metric,可以帮助您检测到问题的迹象,在遇到节点不可用.out-of-memory.long g ...

  5. 如何迭代输出某文件夹下的所有文件的路径?(os.walk用法)

    查看目录结构: tree 查看文件结构: os.walk 查看os.walk用法: help(os.walk) For each directory in the directory tree roo ...

  6. java实现 比较两个文本相似度-- java 中文版 simHash 实现 ,

    比较两个文本的相似度 这里采用 simHash 算法 ; 分词是 基于 http://hanlp.linrunsoft.com/ 的开源 中文分词包 来实现分词 ; 实现效果图: 直接上源码: htt ...

  7. NOIP2017游记

    日常大考之前感冒(这次感冒了3周..) Day -4~Day 0 停课一周,不写作业不上课是很爽,然而想到NOIP结束第二天就要期中考.. 在学校刷刷题,跟着一大堆大佬的步伐,做着一大堆大佬的题目(其 ...

  8. Linux 下非root用户使用docker

    Linux 下非root用户使用docker 通常我们使用linux系统的时候,最好是不要直接使用root账号,但是使用Docker的时候,默认又是不能使用非root用户的,关于原因,官方说法如下: ...

  9. HDU 3377 Plan

    Problem Description One day, Resty comes to an incredible world to seek Eve -- The origin of life. L ...

  10. x+y=xy

        有一天,我拿这一本本子给两位同学看,问他们这本本子多少钱,一个说3块,一个说1.5块,但它实际上是4.5块.于是,我们发现,3X1.5=4.5,3+1.5=4.5.那么这样的数有哪些呢?    ...