Chuyển đến nội dung chính
Kết nối các broker RabbitMQ của bạn để cho phép Tony (Kỹ sư Cơ sở dữ liệu) giám sát độ sâu queue, phân tích consumer lag, kiểm tra dead-letter queue và theo dõi sức khỏe cluster và node. RabbitMQ xác thực bằng tên người dùng và mật khẩu qua Management HTTP API (port mặc định 15672) — cùng API mà giao diện quản lý RabbitMQ sử dụng, nên không cần thiết lập AMQP client.

Nền tảng hỗ trợ

Nền tảngHỗ trợ
Self-hosted RabbitMQ3.8+ với management plugin đã bật
Managed RabbitMQCloudAMQP và các nhà cung cấp khác có expose Management HTTP API

Điều kiện tiên quyết

  • Một RabbitMQ broker có thể truy cập từ CloudThinker trên management port (mặc định 15672, hoặc 15671 cho HTTPS).
  • Management plugin đã được bật. Trên broker tự lưu trữ:
    rabbitmq-plugins enable rabbitmq_management
    
  • Một broker user với tag monitoring hoặc administrator, để Management HTTP API trả về dữ liệu queue, node và cluster.
Tag monitoring là đủ cho tất cả các khả năng đọc và kiểm tra sức khỏe. Chỉ cấp administrator nếu bạn muốn agent chạy các thao tác ghi có kiểm soát (purge/xóa queue, xóa exchange, cập nhật definition) — những thao tác này luôn yêu cầu phê duyệt trong ứng dụng. Xem Quyền yêu cầu.

Thiết lập

1

Bật management plugin

Trên broker tự lưu trữ, bật management plugin và xác nhận nó đang lắng nghe:
rabbitmq-plugins enable rabbitmq_management
curl -u <user>:<password> http://localhost:15672/api/overview
Các nhà cung cấp managed như CloudAMQP đã expose Management HTTP API theo mặc định — bỏ qua và đến bước tiếp theo.
2

Tạo user giám sát

Tạo user riêng cho CloudThinker và gán tag monitoring:
rabbitmqctl add_user cloudthinker <strong-password>
rabbitmqctl set_user_tags cloudthinker monitoring
rabbitmqctl set_permissions -p / cloudthinker "" "" ".*"
Tag monitoring cấp quyền đọc tất cả queue, exchange, node và sức khỏe cluster trên các virtual host.
3

Xác nhận quyền truy cập mạng

Đảm bảo CloudThinker có thể kết nối đến broker tại <host>:15672 (hoặc <host>:15671 cho TLS). Mở management port trên firewall hoặc security group cho egress của CloudThinker.
4

Thêm kết nối trong CloudThinker

Điều hướng đến Connections → RabbitMQ và nhập:
  • Username: broker user (ví dụ: cloudthinker)
  • Password: mật khẩu của user
  • Host: tên máy chủ hoặc IP của broker (chỉ host — không có scheme hoặc port)
  • Management Port: port của management API (mặc định 15672)
  • Use TLS: bật để dùng HTTPS management API và AMQPS
  • Log Level: độ chi tiết log của connector (info theo mặc định)
Nhấn Connect. CloudThinker xác minh thông tin xác thực với Management HTTP API và hiển thị trạng thái Connected.
Đặt Host chỉ là tên máy chủ — không bao gồm http://, https://, hay port. Dùng nút bật/tắt Use TLS để chọn HTTP hay HTTPS, và Management Port cho port.

Chi tiết kết nối

TrườngMô tảMặc định
RABBITMQ_USERNAMEBroker user với tag monitoring hoặc administrator
RABBITMQ_PASSWORDMật khẩu cho broker user
RABBITMQ_HOSTTên máy chủ hoặc IP của broker (không có scheme, không có port)
RABBITMQ_MANAGEMENT_PORTPort của Management HTTP API15672
RABBITMQ_USE_TLSDisabled cho HTTP + AMQP, Enabled cho HTTPS + AMQPSDisabled
LOG_LEVELĐộ chi tiết log connector: debug, info, warn, errorinfo
Management API lắng nghe trên 15672 cho HTTP và 15671 cho HTTPS. Khi bật Use TLS, đặt Management Port thành port management TLS của bạn.

Quyền yêu cầu

User kết nối cần có management tag để HTTP API trả về dữ liệu broker:
TagTính năng mở khóa
monitoringQuyền đọc queue, exchange, binding, connection, channel, node, cluster và health check — bao gồm tất cả khả năng giám sát và chẩn đoán.
administratorTất cả những gì monitoring cung cấp, cộng thêm các thao tác ghi có kiểm soát (purge/xóa queue, xóa exchange, cập nhật definition).
Tuân thủ nguyên tắc quyền tối thiểu: tag monitoring là đủ cho việc điều tra queue, consumer-lag, DLQ và sức khỏe cluster. Chỉ sử dụng administrator nếu bạn định chạy các thao tác ghi có kiểm soát được mô tả bên dưới.

Các thao tác ghi yêu cầu phê duyệt

Kết nối này có bốn công cụ mutative được bật. Chúng luôn được kiểm soát bởi phê duyệt trong ứng dụng — agent phải yêu cầu xác nhận của bạn trước khi chạy bất kỳ thao tác nào trong số đó:
  • delete_queue — xóa một queue
  • purge_queue — xóa tất cả message trong một queue
  • delete_exchange — xóa một exchange
  • update_definition — sửa đổi broker definition
Tất cả các khả năng khác đều chỉ đọc. Các thao tác phá hủy cũng yêu cầu broker user có tag administrator với quyền ghi trên virtual host mục tiêu.

Khả năng của agent

Sau khi kết nối, Tony có thể:
Khả năngMô tả
Độ sâu queue & tốc độ messageSnapshot độ sâu queue, ready vs. unacked, và tốc độ publish/deliver
Consumer lagXác định queue có consumer lag cao hoặc không có consumer
Phân tích dead-letterKiểm tra dead-letter queue để tìm poison message và mẫu lỗi
Sức khỏe cluster & nodeKiểm tra trạng thái node, alarm cục bộ và toàn cục, và queue quan trọng cho quorum
Kiểm tra alarm & certificatePhát hiện broker trong trạng thái alarm và certificate gần hết hạn
Thao tác ghi có kiểm soátPurge hoặc xóa queue, xóa exchange và cập nhật definition — mỗi thao tác yêu cầu phê duyệt trong ứng dụng

Xác minh kết nối

@tony show RabbitMQ cluster status and list all queues with their current depths

Ví dụ prompt

@tony check all queues for abnormal depth or zero-consumer conditions and #alert on any queue growing faster than 500 msg/s
@tony identify queues with high consumer lag and inspect their dead-letter queues for poison messages, then #recommend remediation steps
@tony check cluster node status, alarms, quorum-critical queues, and certificate expiration; #alert on any node down or in alarm

Xử lý sự cố

  • Xác minh broker có thể truy cập từ CloudThinker tại <host>:15672 (hoặc management port TLS của bạn).
  • Xác nhận management port — không phải AMQP port 5672 — đang mở trên firewall hoặc security group.
  • Với broker tự lưu trữ, đảm bảo RabbitMQ được bind vào interface có thể truy cập, không chỉ 127.0.0.1.
Management plugin chưa được bật. Chạy rabbitmq-plugins enable rabbitmq_management và thử lại. Với nhà cung cấp managed, xác nhận Management HTTP API được expose cho instance của bạn.
  • Xác minh tên người dùng và mật khẩu.
  • Xác nhận user có tag monitoring hoặc administrator: rabbitmqctl set_user_tags <user> monitoring.
  • User không có management tag có thể xác thực với AMQP nhưng bị từ chối bởi Management HTTP API.
  • Đảm bảo Use TLS khớp với broker: chỉ bật khi management API phục vụ HTTPS (thường là port 15671).
  • Nếu Use TLS được bật nhưng port phục vụ HTTP thuần (hoặc ngược lại), kết nối sẽ thất bại — căn chỉnh nút bật/tắt và Management Port.
  • User monitoring có thể thiếu quyền trên một số virtual host. Cấp quyền đọc trên các vhost bạn muốn hiển thị: rabbitmqctl set_permissions -p <vhost> <user> "" "" ".*".

Bảo mật

  • Quyền tối thiểu — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
  • Chỉ đọc theo mặc định — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
  • Xoay vòng thông tin xác thực — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
  • Thu hồi khi bàn giao — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.
  • User riêng biệt — tạo broker user cloudthinker riêng; không bao giờ dùng lại tài khoản guest hoặc admin
  • TLS trong truyền tải — bật Use TLS để mã hóa lưu lượng management API giữa CloudThinker và broker

Liên quan

Agent Tony

Agent giám sát và tối ưu hóa tập trung vào cơ sở dữ liệu
https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/kafka.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=f977ba21911cea4b67d99e55c7565058

Kết nối Kafka

Hướng dẫn thiết lập Apache Kafka streaming