Activemq监控程序
主要原理
使用activemq-admin命令来查询activemq应用的各种状态,必要的要求是activemq的jmx功能必须开启。
依赖软件版本
1、activemq5.3.1 以上的版本
2、jdk1.5以上
activemq的jmx功能配置说明
activemq的配置文件中要按照标红的配置修改,启动jmx功能
<broker
xmlns="/schema/core"
useJmx="true"  brokerName="48activemq"  persistent ="true">
<managementContext>
          <managementContext createConnector="true"/>
</managementContext>
Activemq的jmx功能开启后,执行activemq-admin query 命令后,出现下面打印信息,代表jmx功能已经开启。
develop@wap-houtai:~/activemq/bin> ./activemq-admin query
Java Runtime: Sun Microsystems Inc. 1.5.0_07 /data/j2sdk/jre
  Heap sizes: current=94464k  free=93968k  max=1009792k
    JVM args: -Dorg.apache.activemq.UseDedicatedTaskRunner=false -Dactivemq.classpath=/data/develop/activemq/conf; -Dactivemq.home=/data/develop/activemq -Dactivemq.base=/data/develop/activemq
ACTIVEMQ_HOME: /data/develop/activemq
ACTIVEMQ_BASE: /data/develop/activemq
Connecting to pid: 29062
destinationName = topic_//ActiveMQ.Advisory.TempQueue_topic_//ActiveMQ.Advisory.TempTopic
DispatchedQueueSize = 0
ConnectionId = ID:quku-db-60906-1279013819269-0:3
PrefetchSize = 1000
DispachedCounter = 0
destinationType = Topic
DiscardedCount = 0
MaximumPendingMessageLimit = 0
DequeueCounter = 0
PendingQueueSize = 0
SubcriptionId = 1
执行命令
Java –jar amqmonitor.jar  l  /data/develop/activemq
说明:amqmonitor.jar 是 activemq监控程序的jar名;l是activemq监控程序的配置文件;/data/develop/activemq 是activemq程序的安装目录
配置文件说明
监控程序的配置文件名称可自定义。但是内部结构是规定好的,下面是一个样例文件:
<?xml version="1.0" encoding="utf-8"?>
<Config>
  <Parameters>
      <ObjectName type='queue'>
            <Name&sponse.musicupdateproduct</Name>
            <Pending compare='1'>10000</Pending>
            <ConsumerCount compare='2'>20</ConsumerCount>
            <MemoryPercentUsage compare='1'>30</MemoryPercentUsage>
            <CursorMemoryUsage compare='1'>50</CursorMemoryUsage>
            <AverageEnqueueTime compare='1'>8000</AverageEnqueueTime>
            <MaxEnqueueTime compare='1'>10000</MaxEnqueueTime>
          </ObjectName>
          <ObjectName type='topic'>
            <Name&sponse.productHidden</Name>
            <Pending compare='1'>10</Pending>
            <ConsumerCount compare='2'>20</ConsumerCount>
            <MemoryPercentUsage compare='1'>30</MemoryPercentUsage>
            <MaxPageSize compare='1'>50</MaxPageSize>
            <AverageEnqueueTime compare='1'>8000</AverageEnqueueTime>
            <MaxEnqueueTime compare='1'>10000</MaxEnqueueTime>
          </ObjectName>
  </Parameters>
  <Compares>
      <Compare queue1='sponse.musichdproduct' queue2='sponse.productHidden' type='queue'>
          <Item>
                  <Pending/>
                  <EnqueueCount/>
activemq启动报错
                </Item>
          </Compare>
  </Compares>
  <Contacts>
    <Contact>
        <Name>123</Name>
            <Email>123@abc</Email>
            <Tel>132….</Tel>
        </Contact>
    <Contact>
        <Name>123</Name>
            <Email>456@abc</Email>
            <Tel>133…..</Tel>
        </Contact>                     
  </Contacts>
  <SendInfo>
    <MailFrom>
            <From>789@abc</From> 
                <UserName>789@abc</UserName> 
                <Password>123456</Password>   
                <Smtp>mail.abc</Smtp>
          </MailFrom>
        <SMS>
            <Host>192.168.1.101</Host>
                <Port>8050</Port>
                    <Url>/cms/customer/mobile.jsp</Url> 
                    <ParaMobile>mobile</ParaMobile> 
                    <ParaContent>smscontent</ParaContent>
        </SMS>
  </SendInfo> 
</Config>
<Config>为监控程序配置文件的根标签
    一级子标签有<Parameters>、<Compares>、<Contacts>、<SendInfo>。
<Parameters>主要是对单个队列的监控,
<Compares>主要是比较两个队列的值,
<Contacts>主要是联系人、
<SendInfo>主要是邮件和发短信的配置说明。
    <Parameters>标签中主要是<ObjectName>子标签,其代表着activemq中的destination,<ObjectName>的type属性只有两个值 queue,topic,分别代表queue和topic两种队列。<ObjectName>的各种子标签都是desctination的各种属性。其中Name是destination的定义名称,不需要与阀值作比较;其它字标签都有compare属性,来与标签中定义的阀值作比较,compare的值:1 代表大于、2代表小于、3代表大于等于、4代表小于等于。
    <Compares>标签中主要是<Compare>子标签,主要是为了比较两个队列的值是否一致使
用的。没有比较队列的需求可以不使用这个标签。<Compare>的属性queue1和queue2是要作比较的两个队列的名称,其<Item>标签中的子标签定义的是两个队列比较的属性,可以为多个属性进行比较。
    <Contacts>标签中主要是<Contact>子标签,为了定义监控人的邮件和电话。
    <SendInfo>标签中主要是邮箱和发短信服务url的配置信息。子标签<MailFrom>主要是发邮件邮箱的配置信息,目前只支持smtp方式的邮箱。子标签<SMS>是发短信功能的url配置信息。<SMS>支持的url必须是可以通过http方式调用的功能url
<?xml version="1.0" encoding="utf-8"?>
<Config>
  <Parameters><!单个队列监控参数
      <ObjectName type='queue'> <!type定义 queue和topic
            <Name&sponse.musicupdateproduct</Name>
            <Pending compare='1'>10000</Pending><!标签是队列的属性,里面的值是具体的阀值
            <ConsumerCount compare='2'>20</ConsumerCount>
            <MemoryPercentUsage compare='1'>30</MemoryPercentUsage>
            <CursorMemoryUsage compare='1'>50</CursorMemoryUsage>
            <AverageEnqueueTime compare='1'>8000</AverageEnqueueTime>
            <MaxEnqueueTime compare='1'>10000</MaxEnqueueTime>
          </ObjectName>
          <ObjectName type='topic'>
            <Name&sponse.productHidden</Name>
            <Pending compare='1'>10</Pending>
            <ConsumerCount compare='2'>20</ConsumerCount>
            <MemoryPercentUsage compare='1'>30</MemoryPercentUsage>
            <MaxPageSize compare='1'>50</MaxPageSize>
            <AverageEnqueueTime compare='1'>8000</AverageEnqueueTime>
            <MaxEnqueueTime compare='1'>10000</MaxEnqueueTime>
          </ObjectName>
  </Parameters>
  <Compares>
      <Compare queue1='sponse.musichdproduct' queue2='sponse.productHidden' type='queue'>
          <Item><!子标签都是具体的阀值
                  <Pending/>
                  <EnqueueCount/>
                </Item>
          </Compare>
  </Compares>
  <Contacts>
    <Contact><!通知人的邮件和电话信息
        <Name>123</Name>
            <Email>123@abc</Email><!通知人邮箱
            <Tel>132..</Tel><!通知人手机号>
        </Contact>
    <Contact>
        <Name>liuxin</Name>
            <Email>456@abc</Email>
            <Tel>158…</Tel>
        </Contact>                     
  </Contacts>
  <SendInfo>
    <MailFrom>
            <From>789@abc</From> <!--自动程序邮件发送账户
                <UserName>789@abc</UserName> <!发送者名称>
                <Password>123456</Password><!邮箱密码>  
                <Smtp>mail.abc</Smtp> <!smtp服务器地址
          </MailFrom>
        <SMS> <!的url
   
            <Host>192.168.1.102</Host>
                <Port>8050</Port>
                    <Url>/cms/customer/mobile.jsp</Url> 
                    <ParaMobile>mobile</ParaMobile> 
                    <ParaContent>smscontent</ParaContent>
        </SMS>
  </SendInfo> 
</Config>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。