Activemq判断队列存活脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activemq判断队列存活脚本相关的知识,希望对你有一定的参考价值。

#脚本用途:检测Activemq集群的端口监听情况及其队列通畅情况
#!/usr/bin/env python
#coding=utf-8 
import paramiko
import time
import sys
import stomp
Aip = ("第一台mq服务器")
Bip = ("第二台mq服务器")
Cip = ("第三台mq服务器")
list = []

def Checknetstat():
    for i in (Aip,Bip,Cip):
        hostname=i
        username="root"
        password="服务器密码"    #这里默认三台服务器的密码是一样的
        paramiko.util.log_to_file("syslogin.log")
        ssh=paramiko.SSHClient()
        ssh.load_system_host_keys()
        ssh.connect(hostname=hostname,username=username,password=password)
        stdin,stdout,stderr=ssh.exec_command("netstat -ntpl | grep 61613 | wc -l")
        word=str(stdout.read().strip(‘\n‘))
        list.append(word)   #把for循环的结果变成一个list
        ssh.close()
    print list
    
def GoListen(xip):
    class MyListener(object):
        def on_error(self, headers, message):
            print(‘received an error %s‘ % message)
        def on_message(self, headers, message):
            print(‘received a message %s‘ % message)
    conn = stomp.Connection([(xip,61613)])
    conn.set_listener(‘‘, MyListener())
    conn.start()
    conn.connect(‘mq的账户‘,‘mq的密码‘)
    conn.subscribe(destination=‘/queue/队列名称‘, id=1, ack=‘auto‘)
    conn.send(body=‘具体的消息内容‘, destination=‘/queue/队列名称‘)
    time.sleep(2)
    conn.disconnect()
    
def Remotecommand():
    if list == [‘1‘, ‘0‘, ‘0‘]:
        print ("第一台机器的61613端口处于监听状态,现在尝试往队列发送消息...")
        GoListen(Aip)    #这里应该加一个try语句
    elif list == [‘0‘, ‘1‘, ‘0‘]:
        print ("第二台机器的61613端口处于监听状态,现在尝试往队列发送消息...")
        GoListen(Bip)
    elif list == [‘0‘, ‘0‘, ‘1‘]:
        print ("第三台机器的61613端口处于监听状态,现在尝试往队列发送消息...")
        GoLinten(Cip)
    else:
        print ("activemq的61613端口处于异常,现在重启这三台mq...")
        pass    #这一段补上远程restart activemq的过程
        
if __name__ == "__main__":
        Checknetstat()
        Remotecommand()

print("整个脚本执行结束,感谢您的使用!")


基本上来说,整个脚本的结构就是这样的,里面汉字的内容可以依照实际情况填写进去。


目前由于没有完全try语句,所以在正常情况下启动本脚本的效果就是这样的:

技术分享

本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1884415

以上是关于Activemq判断队列存活脚本的主要内容,如果未能解决你的问题,请参考以下文章

消息队列ActiveMQ初步

如何在activemq中设置队列监控

Java消息队列--ActiveMq 初体验

求助,activemq监控界面点击队列的消息ID查看消息内容报错

ActiveMQ - 以编程方式删除队列

ActiveMQ保护队列