Chuyển đến nội dung chính
Kết nối cơ sở dữ liệu MongoDB của bạn để Tony (Database Engineer) có thể phân tích truy vấn, tối ưu hiệu suất và giám sát sức khỏe cơ sở dữ liệu.

Nền tảng được hỗ trợ

Nền tảngHỗ trợ
MongoDB tự host4.x, 5.x, 6.x, 7.x
MongoDB AtlasTất cả phiên bản

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

  • Một instance MongoDB hoặc Atlas cluster có thể tiếp cận từ CloudThinker qua mạng.
  • Quyền admin để tạo người dùng cơ sở dữ liệu riêng và gán role.
  • Connection string MongoDB kèm thông tin xác thực.

Thiết lập

Chọn nền tảng MongoDB của bạn để xem hướng dẫn kết nối cụ thể.
1

Kết nối với tư cách admin

Kết nối tới instance MongoDB bằng Mongo shell (mongosh) với quyền admin.Thay <admin-user>, <admin-password><your-host> bằng thông tin xác thực của bạn. Cơ sở dữ liệu /admin là bắt buộc.
mongosh "mongodb://<admin-user>:<admin-password>@<your-host>:27017/admin"
2

Chuyển sang cơ sở dữ liệu admin

Đảm bảo bạn đang ở cơ sở dữ liệu admin nơi người dùng được tạo:
use admin
3

Tạo người dùng chỉ đọc

Tạo người dùng riêng cho CloudThinker sử dụng các role tích hợp sẵn của MongoDB:
db.createUser({
  user: "<cloudthinker_user>",
  pwd: "<secure-password>",
  roles: [
    { role: "readAnyDatabase", db: "admin" },
    { role: "clusterMonitor", db: "admin" }
  ]
})
Role clusterMonitor được khuyến nghị để phân tích metrics hiệu suất.
4

Cấu hình truy cập mạng

Đảm bảo CloudThinker có thể tiếp cận cơ sở dữ liệu:
  • Thêm IP CloudThinker vào firewall hoặc security group
  • Đảm bảo MongoDB được bind tới địa chỉ IP có thể truy cập trong mongod.conf
5

Thêm kết nối trong CloudThinker

Điều hướng đến Connections → MongoDB và dán connection string:
mongodb://<cloudthinker_user>:<secure-password>@<your-host>:27017/admin?tls=true&appName=CloudThinker
Bao gồm tls=true nếu triển khai của bạn bắt buộc mã hóa TLS. Nhấn Connect. CloudThinker hiển thị trạng thái Connected khi thành công.

Chi tiết kết nối

TrườngMô tảVí dụ
Connection stringMongoDB URI đầy đủ bao gồm thông tin xác thựcmongodb+srv://user:pass@host/admin?tls=true
TLS/SSLBắt buộc TLS cho kết nối — dùng tls=true trong URItrue
Read preferenceNode nào xử lý thao tác đọcprimary
Connection timeoutGiây chờ kết nối10

Quyền bắt buộc

RoleMục đích
readAnyDatabasePhân tích truy vấn và mức sử dụng index trên tất cả collection
clusterMonitorTruy cập serverStatus, replSetGetStatus và các lệnh chẩn đoán khác để lấy metrics hiệu suất
Gán cả hai role để mở khóa phân tích truy vấn toàn diện và giám sát sức khỏe cluster. Không bao giờ cấp role ghi hoặc admin cho người dùng CloudThinker.

Khả năng của agent

Sau khi kết nối, Tony có thể:
Khả năngMô tả
Phân tích truy vấnXác định slow query, phân tích execution plan bằng explain()
Khuyến nghị indexTìm index còn thiếu, xác định index không dùng
Metrics hiệu suấtGiám sát kết nối, mức sử dụng bộ nhớ và replication lag

Xác minh kết nối

@tony #report list all MongoDB databases and summarize their collection counts

Ví dụ prompt

@tony #report analyze slow queries on the production MongoDB instance
@tony #recommend find missing indexes on the users collection
@tony #report check replication lag on the secondary nodes

Khắc phục sự cố

  • Xác minh username và password chính xác
  • Đảm bảo người dùng được tạo trên cơ sở dữ liệu admin, hoặc thêm ?authSource=admin vào connection string
  • Với Atlas: xác nhận người dùng được tạo với đúng đặc quyền trong Database Access
  • Kiểm tra IP CloudThinker đã được thêm vào danh sách Atlas Network Access hoặc firewall của bạn
  • Với MongoDB local, đảm bảo bindIp trong mongod.conf không chỉ đặt là 127.0.0.1
  • Tony cần role clusterMonitor để chạy serverStatusreplSetGetStatus
  • Thêm role clusterMonitor vào người dùng CloudThinker trên cơ sở dữ liệu admin và kết nối lại

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.
  • Bắt buộc TLS — luôn dùng tls=true trong connection string để mã hóa dữ liệu truyền tải.
  • Role tối thiểu — chỉ cấp readAnyDatabaseclusterMonitor; không bao giờ cấp role ghi hoặc admin.

Liên quan

Tony Agent

Agent tối ưu cơ sở dữ liệu
https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/postgresql.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=8bb2ac033d0a2ccbef51154a76e1e819

Kết nối PostgreSQL

Hướng dẫn thiết lập cho cơ sở dữ liệu PostgreSQL