MCP Ambari API - Tự động hóa quản lý cụm Apache Hadoop
🚀 Tự động hóa các thao tác Apache Ambari với AI/LLM: Sử dụng lệnh tự nhiên để quản lý cụm Hadoop, điều khiển dịch vụ, giám sát cấu hình và theo dõi tình trạng theo thời gian thực thông qua các công cụ Model Context Protocol (MCP).
Tổng quan về MCP Ambari API
MCP Ambari API là một máy chủ Model Context Protocol (MCP) mạnh mẽ cho phép quản lý cụm Apache Ambari một cách liền mạch thông qua các lệnh tự nhiên. Được xây dựng cho các kỹ sư DevOps, kỹ sư dữ liệu và quản trị hệ thống làm việc với hệ sinh thái Hadoop.
🎯 Tính năng chính
- Quản lý dịch vụ tự động: Khởi động, dừng và khởi động lại các dịch vụ Hadoop (HDFS, YARN, Spark, v.v.) chỉ với các lệnh đơn giản.
- Giám sát theo thời gian thực: Theo dõi sức khỏe cụm, tình trạng dịch vụ và các chỉ số hiệu suất.
- Quản lý cấu hình: Xem, cập nhật và quản lý cấu hình cụm trên tất cả các dịch vụ.
- Quản lý cảnh báo: Theo dõi và quản lý các cảnh báo và thông báo từ cụm.
- Quản lý người dùng và máy chủ: Quản lý người dùng cụm, quyền truy cập và phân bổ máy chủ.
- Theo dõi yêu cầu: Giám sát các thao tác dài hạn với chi tiết tiến trình.
Kiến trúc và Cấu trúc bên trong
Hướng dẫn nhanh với Docker
Lưu ý: Các hướng dẫn sau giả định bạn đang sử dụng chế độ
streamable-httpcho MCP Server.
1. Chuẩn bị cụm Ambari (Mục tiêu thử nghiệm)
Để thiết lập một cụm Ambari Demo, hãy làm theo hướng dẫn tại: Cài đặt Ambari 3.0 với Docker.
2. Chạy Docker-Compose
Khởi động MCP-Server, MCPO (MCP-Proxy cho OpenAPI) và OpenWebUI.
- Đảm bảo rằng Docker và Docker Compose đã được cài đặt trên hệ thống của bạn.
- Sao chép kho này và điều hướng đến thư mục gốc của nó.
- Cài đặt cấu hình môi trường:
# Sao chép mẫu môi trường và cấu hình cài đặt của bạn
cp .env.example .env
# Chỉnh sửa .env với thông tin cụm Ambari của bạn
- Cấu hình kết nối Ambari trong tệp
.env:
AMBARI_HOST=host.docker.internal
AMBARI_PORT=7070
AMBARI_USER=admin
AMBARI_PASS=admin
AMBARI_CLUSTER_NAME=TEST-AMBARI
# (Tùy chọn) Bật xác thực cho chế độ streamable-http
REMOTE_AUTH_ENABLE=false
REMOTE_SECRET_KEY=your-secure-secret-key-here
- Chạy:
docker-compose up -d
- OpenWebUI sẽ có sẵn tại:
http://localhost:${DOCKER_EXTERNAL_PORT_OPENWEBUI}(mặc định: 3001) - MCPO-Proxy sẽ có thể truy cập tại:
http://localhost:${DOCKER_EXTERNAL_PORT_MCPO_PROXY}(mặc định: 8001) - Tài liệu API MCPO:
http://localhost:${DOCKER_EXTERNAL_PORT_MCPO_PROXY}/ambari-api/docs
3. Đăng ký công cụ trong OpenWebUI
- Đăng nhập vào OpenWebUI bằng tài khoản admin.
- Truy cập "Cài đặt" → "Công cụ" từ menu trên cùng.
- Nhập địa chỉ công cụ
ambari-api(ví dụ:http://localhost:8000/ambari-api) để kết nối các công cụ MCP với cụm Ambari của bạn.
4. Ví dụ: Sử dụng các công cụ MCP để truy vấn cụm Ambari
Dưới đây là một ví dụ minh họa cách truy vấn cụm Ambari bằng các công cụ MCP trong OpenWebUI:
Ví dụ truy vấn - Xem cấu hình cụm & Khuyến nghị
Ví dụ truy vấn - Khởi động lại dịch vụ HDFS
💡 Các truy vấn công cụ ví dụ
🔍 Quản lý Cụm & Dịch vụ
get_cluster_info
- "Hiển thị tóm tắt cụm và thông tin cơ bản."
- "Tên cụm và phiên bản là gì?"
- "Hiển thị tổng quan cụm với số lượng dịch vụ."
- 📋 Tính năng: Tên cụm, phiên bản, số lượng dịch vụ, thông tin cơ bản về cụm.
get_cluster_services
- "Hiển thị tất cả các dịch vụ trong cụm và trạng thái hiện tại của chúng."
- "Liệt kê tất cả các dịch vụ với trạng thái của chúng."
- 📋 Tính năng: Tên dịch vụ, trạng thái, tổng quan sức khỏe.
⚙️ Các thao tác dịch vụ
start_service / stop_service / restart_service
- "Khởi động dịch vụ HDFS."
- "Dừng dịch vụ MapReduce."
- 📋 Tính năng: Quản lý vòng đời dịch vụ riêng lẻ.
- ⚠️ Lưu ý: Trả về ID yêu cầu để theo dõi thao tác.
📊 Hoạt động & Giám sát
get_active_requests
- "Hiển thị tất cả các thao tác đang chạy."
- 📋 Tính năng: Trạng thái thao tác theo thời gian thực, theo dõi yêu cầu.
🖥️ Quản lý Máy chủ
list_hosts
- "Liệt kê tất cả các máy chủ trong cụm."
- 📋 Tính năng: Danh sách máy chủ, tổng quan về nút cụm.
🔐 Bảo mật & Xác thực
Xác thực Bearer Token
Đối với chế độ streamable-http, máy chủ MCP này hỗ trợ xác thực Bearer token để bảo mật truy cập từ xa. Điều này đặc biệt quan trọng khi chạy máy chủ trong môi trường sản xuất.
Cấu hình
Bật xác thực:
# Trong tệp .env
REMOTE_AUTH_ENABLE=true
REMOTE_SECRET_KEY=your-secure-secret-key-here
Thực hành bảo mật tốt nhất
- Luôn bật xác thực khi sử dụng chế độ streamable-http trong môi trường sản xuất.
- Sử dụng các khóa bí mật mạnh, được tạo ngẫu nhiên (đề xuất 32+ ký tự).
- Giới hạn quyền truy cập mạng bằng cách sử dụng tường lửa hoặc chính sách mạng.
❓ Câu hỏi thường gặp
Q: Các phiên bản Ambari nào được hỗ trợ?
A: Ambari 2.7+ được khuyến nghị. Các phiên bản trước có thể hoạt động nhưng không được kiểm tra chính thức.
Q: Tôi có thể sử dụng điều này với các cụm Hadoop được quản lý trên đám mây không?
A: Có, miễn là các điểm cuối API Ambari có thể truy cập.
🤝 Đóng góp & Hỗ trợ
Cách đóng góp
- 🐛 Báo lỗi: GitHub Issues
- 💡 Yêu cầu tính năng: Feature Requests
- 🔧 Gửi PR: Hướng dẫn đóng góp
📄 Giấy phép
Dự án này được cấp phép theo Giấy phép MIT.