(1) 配置plugin descriptor
Service可以引用server的配置。Server相当于service的parent。
<?xml version="1.0"?> <plugin package="org.hyperic.hq.plugin.monitor">
<classpath> <include name="pdk/lib/mx4j"/> </classpath>
<config name="jmx" type="global"> <option name="jmx.url" description="JMX URL to MBeanServer" default="service:jmx:rmi:///jndi/rmi://192.168.3.60:8849/jmxrmi"/>
<option name="jmx.username" description="JMX username" optional="true"/>
<option name="jmx.password" description="JMX password" optional="true" type="secret"/> </config>
<filter name="template" value="${OBJECT_NAME}:${alias}"/>
<server name="InstallPathMonitor" version="1.2" description="Monitor Test">
<property name="OBJECT_NAME" value="com.nali.monitor:name=testMbean"/>
<property name="PROC_HOME_PROPERTY" value="monitor.home"/>
<plugin type="autoinventory" class="org.hyperic.hq.product.jmx.MxServerDetector"/>
<plugin type="control" class="org.hyperic.hq.product.jmx.MxControlPlugin"/>
<actions include="start,end"/>
<plugin type="measurement" class="org.hyperic.hq.product.jmx.MxMeasurementPlugin"/>
<plugin type="log_track" class="org.hyperic.hq.product.Log4JLogTrackPlugin"/>
<plugin type="config_track" class="org.hyperic.hq.product.ConfigFileTrackPlugin"/>
<properties> <property name="TestMBean" description="Test MBean"/> </properties>
<config include="jmx"/>
<metric name="Availability" indicator="true" units="percentage" category="AVAILABILITY" collectionType="dynamic" defaultOn="true" template="${OBJECT_NAME}:Availability" interval="2000"/>
<metric name="ThroughPut" alias="Throughput" indicator="true" units="B" category="THROUGHPUT" collectionType="dynamic" defaultOn="true"/>
<metric name="Number" alias="Number" indicator="true" defaultOn="true" collectionType="trendsup" rate="1m"/>
<service name="testMxServer"> <property name="OBJECT_NAME" value="com.nali.monitor:name=testMbean"/>
<plugin type="autoinventory"/>
<plugin type="measurement"/>
<plugin type="control"/> <plugin type="autoinventory"/> <metric name="Availability" indicator="true" units="percentage" category="AVAILABILITY" collectionType="dynamic" defaultOn="true" template="${OBJECT_NAME}:Availability" interval="2000"/>
<metric name="ThroughPut" alias="Throughput" indicator="true" units="B" category="THROUGHPUT" collectionType="dynamic" defaultOn="true"/>
<metric name="Number" alias="Number" indicator="true" defaultOn="true" collectionType="trendsup" rate="1m"/> </service> </server> </plugin> |
Config,Option:会出现在HQ后台中让用户配置,然后作为参数传入到HQ plugin的方法参数中。JMX plugin配置了JMX服务器的地址,端口,用户名,密码等
Filter:fitler定义一个模板,会在metric的template属性中使用,metric再定义替换filter中定义的变量。Filter是可以被多个metric重用的。
Property:是写死了的属性值。会被descriptor文件的其他部分引用。Property也可以配置成表达式变量的形式,变量由用户在HQ控制台上输入(config,option)替换。例子:
|
OBJECT_NAME:配置的是MBean的名字
PROC_HOME_PROPERTY:是MxServerDetector查找Mbean server用的。配置启动程序的目录。其实只要-D中带的属性都可以。MxServerDetector用的是sigar的contains语法。
-Dhyperic.monitor.name
MxServerDetector:用来发现MBean server,和插件中定义TestMbean类型的service
MxControlPlugin:可以对Mbean进行操作,调用Mbean的开放的方法,可以在actions中定义。
Actions:执行哪些操作,start,end函数必需要有返回值。不然点击后会停在那里,一直是incomplete而非completed。
MxMeasurementPlugin:收集监控的数据。
Metric:用来展示图表
Avalaibility:配置的时候要注意每个服务都需要一个availability属性,并且不可以用filter。返回值只能为0或1.
Indicator:是否显示
Category:对图表进行归档,方便查看。
collectionType:描述图表如何展示,trendsup一直增长,dynamic:根据收集到的值动态变化,
interval:收集周期
具体配置文件各个元素的意思可以参考:
http://support.hyperic.com/display/EVO/Plugin+Descriptor+Element+and+Attribute+Reference