Nền tảng được hỗ trợ
| Nền tảng | Hỗ trợ |
|---|---|
| PostgreSQL tự host | 12.x, 13.x, 14.x, 15.x, 16.x |
| AWS RDS PostgreSQL | Tất cả phiên bản |
| AWS Aurora PostgreSQL | Tất cả phiên bản |
| Google Cloud SQL | Tất cả phiên bản PostgreSQL |
| Azure Database for PostgreSQL | Flexible Server, Single Server |
Điều kiện tiên quyết
- Một instance PostgreSQL có thể tiếp cận từ CloudThinker qua mạng.
- Quyền admin để tạo người dùng riêng và cấp đặc quyền.
- Extension
pg_stat_statementsđã cài đặt nếu bạn muốn phân tích ở cấp độ truy vấn (bắt buộc để lấy dữ liệu slow query).
Thiết lập
Bật pg_stat_statements
Extension này bắt buộc để phân tích truy vấn:Với RDS/Aurora, thêm vào parameter group:
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 security group hoặc firewall
- Với RDS: bật public access hoặc dùng VPC peering
Thêm kết nối trong CloudThinker
Điều hướng đến Connections → PostgreSQL và nhập:
- Host: hostname hoặc IP cơ sở dữ liệu
- Port: cổng cơ sở dữ liệu (mặc định:
5432) - Database: tên cơ sở dữ liệu
- Username:
cloudthinker_readonly - Password: mật khẩu bạn đặt ở trên
- SSL mode:
require(khuyến nghị)
Chi tiết kết nối
| Trường | Mô tả | Mặc định |
|---|---|---|
| Host | Hostname hoặc IP cơ sở dữ liệu | — |
| Port | Cổng PostgreSQL | 5432 |
| Database | Tên cơ sở dữ liệu | — |
| Username | Người dùng riêng, ví dụ: cloudthinker_readonly | — |
| Password | Mật khẩu người dùng | — |
| SSL mode | disable, allow, prefer, require, verify-ca, verify-full | require |
| Connection timeout | Giây chờ kết nối | 10 |
| Statement timeout | Thời gian thực thi truy vấn tối đa tính bằng ms | 30000 |
Quyền bắt buộc
Tối thiểu
Khuyến nghị (phân tích toàn diện)
Khả năng của agent
Sau khi kết nối, Tony có thể:| Khả năng | Mô tả |
|---|---|
| Phân tích truy vấn | Xác định slow query, phân tích execution plan |
| Khuyến nghị index | Tìm index còn thiếu, xác định index không dùng |
| Metrics hiệu suất | Giám sát kết nối, I/O, tỷ lệ cache hit |
| Thống kê bảng | Phân tích table bloat, dead tuple, trạng thái vacuum |
| Giám sát replication | Kiểm tra lag và trạng thái streaming trên replica |
Xác minh kết nối
Ví dụ prompt
Khắc phục sự cố
Connection refused
Connection refused
- Xác minh host và port chính xác
- Kiểm tra security group hoặc firewall cho phép IP CloudThinker
- Với RDS: đảm bảo “Publicly accessible” được bật hoặc dùng VPC peering
- Xác nhận PostgreSQL đang lắng nghe trên interface đúng
Xác thực thất bại
Xác thực thất bại
- Xác minh username và password chính xác
- Kiểm tra
pg_hba.confcho phép phương thức kết nối - Đảm bảo người dùng có đặc quyền
CONNECTtrên cơ sở dữ liệu
Thiếu pg_stat_statements
Thiếu pg_stat_statements
- Xác minh extension đã cài đặt:
SELECT * FROM pg_extension WHERE extname = 'pg_stat_statements'; - Kiểm tra
shared_preload_librariesbao gồmpg_stat_statements - Khởi động lại PostgreSQL sau khi thay đổi
shared_preload_libraries - Với RDS: sửa parameter group và reboot instance
Permission denied
Permission denied
- Xác minh người dùng có
SELECTtrên các bảng bắt buộc - Cấp role
pg_read_all_statscho PostgreSQL 14+ - Kiểm tra quyền schema bằng
\dn+trong psql
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 SSL — luôn sử dụng SSL mode
requirehoặc cao hơn để mã hóa dữ liệu truyền tải. - Grant tối thiểu — chỉ cấp
SELECTcho người dùng CloudThinker; không bao giờ cấp quyền ghi.
Liên quan
Tony Agent
Agent tối ưu cơ sở dữ liệu
Kết nối MySQL
Thiết lập tương tự cho cơ sở dữ liệu MySQL