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小时内删除。
发表评论