#!/bin/bash mqpid=`pgrep -f activemq.jar|wc -l` if [ $mqpid -eq 0 ] then echo "start ActiveMQ now..." export JAVA_HOME=/usr/jdk1.7.0_79 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar export PATH=$PATH:$JAVA_HOME/bin cd /“Activemq的目录地址”/bin ./activemq start else echo "ActiveMQ already started" exit 0 fi
新的知识点!
以往我们获得进程的pid号用的语句是“ps -ef | grep 某进程名 | grep -v 'grep ' | awk '{print $2}'”,更加简便的方法就是“pgrep -f 某进程名”。
以这个storm为例:
把别人二百个字母的事用自己二十个字母说出来,也是一种功力。
命令行监控:
ActiveMQ当然也提供了命令行监控的方式。执行${ACTIVEMQ_HOME}/bin/activemq,会列出命令行的使用帮助。请注意虽然Windows平台也可以使用这个命令行,但是仅仅限于启动ActiveMQ实例,其他命令都不能很好的支持,所以这里所说的命令行方式,都是在Linux平台上的。
限于篇幅,这里只是截取了重要的部分。可以看到命令行提供了16个命令,包括start,stop,restart,console等启动停止实例相关的命令。还有一些控制ActiveMQ Broker的命令,如create,purge等。这里主要介绍几个监控可能用得到的命令
activemq status,显示当前的ActiveMQ是否运行正常,并且能显示pid。
activemq list,列出当前Broker名字。
activemq bstat,显示当前Broker的统计信息。
activemq query,根据筛选条件显示Broker的统计信息。如:activemq query -QQueue=string_queue,是只显示string_queue这个队列的统计信息。更多使用方法可以使用activemq query --help显示帮助。
activemq browse,可以查询当前Broker为被消费的消息,会显示消息的详细信息,如消息头,消息内容,优先级等。类似于数据库的查询功能。有自己的一套查询语法但是不是很复杂,同样可以使用activemq browse --help显示帮助。需要注意的是,只有Queue才可以查询,Topic是不可以的,所以这个功能虽然强大,但是有点鸡肋。
activemq dstat,比较有用的一个功能,可以用来查询队列的关键数值,如队列大小,生产者消费者数量,消息出队入队统计等。还可以支持通过类别查询,如只查询队列或者只查询主题。
个人认为,activemq status和activemq dstat是比较常用的两个监控命令,可以使用shell,然后grep/awk解析。命令行虽然方便,但是明显缺失必要的信息,如硬件使用百分比,订阅者下线信息等。至少目前不能完成监控的全部工作,希望以后可以持续完善功能。
转载于:https://blog.51cto.com/chenx1242/1876086