#!/bin/bash # RabbitMQ验证脚本 # 用于检查RabbitMQ是否安装成功并正常运行 # 基本信息 RABBITMQ_USER="admin" RABBITMQ_PASS="a7c73c9a" HOSTNAME="mq.zyihs.com" AMQP_PORT=5671 MANAGEMENT_PORT=15672 echo "===== RabbitMQ 服务验证 =====" # 1. 检查RabbitMQ服务状态 echo -e "\n1. 检查 RabbitMQ 服务状态:" systemctl status rabbitmq-server | grep -E "Active:|running" if [ $? -eq 0 ]; then echo "✅ RabbitMQ 服务运行正常" else echo "❌ RabbitMQ 服务未运行" exit 1 fi # 2. 检查RabbitMQ进程 echo -e "\n2. 检查 RabbitMQ 进程:" ps aux | grep -v grep | grep rabbitmq if [ $? -eq 0 ]; then echo "✅ RabbitMQ 进程存在" else echo "❌ RabbitMQ 进程不存在" fi # 3. 检查端口监听 echo -e "\n3. 检查端口监听:" echo "检查 AMQP SSL 端口 (5671):" netstat -tuln | grep 5671 if [ $? -eq 0 ]; then echo "✅ AMQP SSL 端口 (5671) 已开放" else echo "❌ AMQP SSL 端口 (5671) 未开放" fi echo "检查管理界面端口 (15672):" netstat -tuln | grep 15672 if [ $? -eq 0 ]; then echo "✅ 管理界面端口 (15672) 已开放" else echo "❌ 管理界面端口 (15672) 未开放" fi # 4. 检查管理员用户 echo -e "\n4. 检查管理员用户:" rabbitmqctl list_users | grep $RABBITMQ_USER if [ $? -eq 0 ]; then echo "✅ 管理员用户 $RABBITMQ_USER 存在" else echo "❌ 管理员用户 $RABBITMQ_USER 不存在" fi # 5. 测试创建队列和交换机 echo -e "\n5. 测试创建队列和交换机:" # 创建临时测试队列 echo "创建测试队列..." rabbitmqctl eval 'rabbit_amqqueue:declare({resource, <<"/">>, queue, <<"test_queue">>}, true, false, [], none, "test").' if [ $? -eq 0 ]; then echo "✅ 测试队列创建成功" else echo "❌ 测试队列创建失败" fi # 删除测试队列 echo "删除测试队列..." rabbitmqctl delete_queue test_queue if [ $? -eq 0 ]; then echo "✅ 测试队列删除成功" else echo "❌ 测试队列删除失败" fi # 6. 检查SSL配置 echo -e "\n6. 检查SSL配置:" grep -E "ssl_options|listeners.ssl" /etc/rabbitmq/rabbitmq.conf if [ $? -eq 0 ]; then echo "✅ SSL 配置存在" else echo "❌ SSL 配置不存在" fi # 7. 检查Web管理界面可访问性 echo -e "\n7. 检查Web管理界面可访问性:" curl -I -s -u $RABBITMQ_USER:$RABBITMQ_PASS http://$HOSTNAME:$MANAGEMENT_PORT/api/overview | grep "200 OK" if [ $? -eq 0 ]; then echo "✅ Web管理界面可以访问" else echo "❌ Web管理界面无法访问" fi # 8. 检查SSL连接 echo -e "\n8. 检查SSL连接:" echo | openssl s_client -connect $HOSTNAME:$AMQP_PORT 2>/dev/null | grep "CONNECTED" if [ $? -eq 0 ]; then echo "✅ SSL连接成功" else echo "❌ SSL连接失败" fi echo -e "\n===== 验证完成 =====" echo "如果上述大部分检查都通过,则RabbitMQ安装配置成功!" echo "管理界面: http://$HOSTNAME:$MANAGEMENT_PORT" echo "AMQP SSL端口: $AMQP_PORT"