Chào mọi người, mình xin phép chia sẻ một project open-source mình đang phát triển dành cho PostgreSQL/Citus. Hy vọng project sẽ hữu ích với anh em đang vận hành hoặc tìm hiểu Citus.
Citus Manager là nền tảng quản trị web mã nguồn mở, triển khai theo mô hình self-hosted, dành cho các cụm PostgreSQL/Citus hiện có. Công cụ giúp tập trung quản lý topology, cơ sở dữ liệu, giám sát, sao lưu và các thao tác vận hành quan trọng trong một giao diện duy nhất.
Các tính năng chính
Quản lý nhiều cụm Citus tập trung
Đăng ký và quản lý nhiều cụm Citus.
Theo dõi coordinator, worker, query node và trạng thái từng node.
Kiểm tra distributed table, shard, placement và metadata của cluster.
Thêm worker, thêm query node, drain worker, rebalance hoặc loại bỏ node.
Việc thêm worker và rebalance được tách riêng, tránh tự động di chuyển dữ liệu ngoài ý muốn.
Thao tác topology an toàn hơn
Tạo kế hoạch thao tác bất biến trước khi thực thi.
Kiểm tra điều kiện thực tế ngay trước khi chạy.
Giới hạn mỗi cluster chỉ thực hiện một thao tác ảnh hưởng lớn tại một thời điểm.
Theo dõi tiến trình, lưu checkpoint, hỗ trợ yêu cầu hủy và trạng thái phục hồi.
Từ chối xóa worker khi vẫn còn shard placement trên node.
Phát hiện trường hợp worker bị mất nhưng vẫn chứa shard duy nhất cần phục hồi.
Database Workbench trực quan
Duyệt schema, table và các đối tượng cơ sở dữ liệu theo dạng cây.
Xem dữ liệu logical table qua coordinator hoặc đọc trực tiếp shard placement.
Phân trang, lọc, sắp xếp, thêm, sửa và xóa dữ liệu.
Nhập và xuất dữ liệu CSV.
Thiết kế schema, table, column, constraint và index.
Tạo hoặc chuyển đổi giữa local table, reference table và distributed table.
Cấu hình distribution column, colocation và shard count.
Quản lý PostgreSQL partition, gộp partition và rebuild index.
SQL Console tích hợp
Trình soạn thảo PostgreSQL dựa trên CodeMirror.
Hỗ trợ format SQL và autocomplete theo ngữ cảnh schema.
Phân loại mức độ rủi ro trước khi chạy.
Yêu cầu xác nhận rõ ràng với các câu lệnh có khả năng thay đổi dữ liệu.
Hiển thị kết quả theo luồng với timeout và giới hạn cấu hình được.
Audit chỉ lưu fingerprint SHA-256 và metadata thực thi, không lưu nguyên văn SQL hoặc giá trị tham số.
Giám sát và cảnh báo
Theo dõi trạng thái node, metadata synchronization, shard placement, kích thước shard và số lượng table.
Tích hợp Prometheus để theo dõi CPU, RAM, filesystem và trạng thái target.
Cảnh báo trực tiếp trong ứng dụng.
Gửi cảnh báo qua webhook hoặc SMTP.
Cho phép cấu hình chu kỳ polling và thời gian lưu metric.
Sao lưu và khôi phục dữ liệu
Tạo backup thủ công hoặc theo lịch.
Theo dõi tiến trình, retry, retention và lịch sử restore.
Hỗ trợ lưu trữ local, S3-compatible, Cloudflare R2 và Google Drive.
Gửi thông báo backup qua email và Telegram.
Hỗ trợ mã hóa AES-GCM, checksum, manifest xác thực và kiểm tra tính toàn vẹn khi restore.
Tự động lựa chọn công cụ PostgreSQL backup phù hợp với phiên bản server.
Phân quyền, audit và bảo vệ thông tin nhạy cảm
Citus Manager hỗ trợ ba nhóm quyền:
Viewer: xem dashboard, topology, database, SQL, metric, activity và cảnh báo.
Operator: tạo kế hoạch vận hành, quản lý profile, xác nhận cảnh báo và yêu cầu hủy thao tác.
Admin: quản lý người dùng, cluster profile, backup, audit và toàn bộ thao tác được cấp phép.
Mật khẩu cluster, token Prometheus, thông tin lưu trữ và khóa thông báo được bảo vệ bằng ASP.NET Core Data Protection và không được API trả về.
Cập nhật ứng dụng ngay trên giao diện web
Hiển thị phiên bản đang chạy trong Workspace.
Kiểm tra phiên bản mới từ GHCR.
Cho phép quản trị viên cập nhật ứng dụng từ giao diện.
Tự động backup control database và Data Protection keyring trước khi cập nhật.
Không cho phép update khi cluster operation, backup, restore hoặc SQL execution đang chạy.
Điểm nổi bật
Self-hosted và mã nguồn mở.
Giao diện tiếng Việt và tiếng Anh.
Triển khai nhanh bằng Docker Compose.
Đã được kiểm thử trên PostgreSQL 18 và Citus 14.
License Zero-Clause BSD.
Không nằm trong data path của Citus, giúp tách biệt hệ thống quản trị khỏi luồng dữ liệu chính.
GitHub:
https://github.com/int04/citus-manager
Rất mong nhận được góp ý và đánh giá từ anh em J2TEAM. Nếu thấy project hữu ích, mọi người có thể ghé GitHub và cho mình xin một ⭐ Star để ủng hộ project. Cảm ơn mọi người!

Top comments (0)