지원 플랫폼
| 플랫폼 | 지원 |
|---|---|
| 자체 호스팅 MongoDB | 4.x, 5.x, 6.x, 7.x |
| MongoDB Atlas | 전체 버전 |
사전 요구사항
- 네트워크를 통해 CloudThinker에서 접근 가능한 MongoDB 인스턴스 또는 Atlas 클러스터.
- 전용 데이터베이스 사용자를 생성하고 역할을 할당할 관리자 접근.
- 자격증명이 포함된 MongoDB 연결 문자열.
설정
MongoDB 플랫폼을 선택하여 구체적인 연결 방법을 확인하세요.- 자체 호스팅 MongoDB
- MongoDB Atlas
관리자로 연결
관리자 권한으로 Mongo 셸(
mongosh)을 사용하여 MongoDB 인스턴스에 연결하세요.<admin-user>, <admin-password>, <your-host>를 실제 자격증명으로 교체하세요. /admin 데이터베이스가 필요합니다.읽기 전용 사용자 생성
표준 MongoDB 내장 역할을 사용하여 CloudThinker 전용 사용자를 생성하세요:성능 메트릭 분석을 위해
clusterMonitor 역할이 권장됩니다.네트워크 접근 설정
CloudThinker가 데이터베이스에 접근할 수 있는지 확인하세요:
- CloudThinker IP를 방화벽 또는 보안 그룹에 추가
mongod.conf에서 MongoDB가 접근 가능한 IP 주소에 바인딩되어 있는지 확인
연결 세부 정보
| 필드 | 설명 | 예시 |
|---|---|---|
| Connection string | 자격증명을 포함한 전체 MongoDB URI | mongodb+srv://user:pass@host/admin?tls=true |
| TLS/SSL | 연결에 TLS 강제 — URI에서 tls=true 사용 | true |
| Read preference | 읽기 작업을 라우팅할 노드 | primary |
| Connection timeout | 연결 대기 시간 (초) | 10 |
필요 권한
| 역할 | 용도 |
|---|---|
readAnyDatabase | 모든 컬렉션의 쿼리 및 인덱스 사용량 분석 |
clusterMonitor | 성능 메트릭을 위한 serverStatus, replSetGetStatus 및 기타 진단 명령 접근 |
에이전트 기능
연결이 완료되면 Tony가 할 수 있는 작업:| 기능 | 설명 |
|---|---|
| 쿼리 분석 | 느린 쿼리 식별, explain()으로 실행 계획 분석 |
| 인덱스 권고 | 누락된 인덱스 찾기, 미사용 인덱스 식별 |
| 성능 메트릭 | 연결, 메모리 사용량, 복제 지연 모니터링 |
연결 확인
예시 프롬프트
문제 해결
인증 실패
인증 실패
- 사용자 이름과 비밀번호가 올바른지 확인하세요
- 사용자가
admin데이터베이스에 생성되어 있는지 확인하거나 연결 문자열에?authSource=admin을 추가하세요 - Atlas의 경우: Database Access에서 올바른 권한으로 사용자가 생성되었는지 확인하세요
연결 거부됨 또는 타임아웃
연결 거부됨 또는 타임아웃
- CloudThinker IP가 Atlas 네트워크 접근 목록 또는 방화벽에 추가되어 있는지 확인하세요
- 로컬 MongoDB의 경우:
mongod.conf의bindIp가127.0.0.1만으로 설정되어 있지 않은지 확인하세요
성능 메트릭 사용 불가
성능 메트릭 사용 불가
- Tony가
serverStatus및replSetGetStatus를 실행하려면clusterMonitor역할이 필요합니다 admin데이터베이스의 CloudThinker 사용자에게clusterMonitor역할을 추가하고 재연결하세요
보안
- 최소 권한 — 에이전트가 사용 사례에 필요한 권한만 부여하세요. 읽기 전용으로 시작한 후 필요에 따라 확장하세요.
- 기본 읽기 전용 — 에이전트가 이 연결을 통해 변경 작업을 수행하게 할 것이 아니라면 읽기 전용 자격증명을 사용하세요.
- 자격증명 교체 — 정기 일정에 따라 키와 토큰을 교체하세요. 연결을 업데이트하면 CloudThinker가 새 값을 자동으로 반영합니다.
- 오프보딩 시 취소 — 연결을 삭제하거나 팀원이 퇴사할 때 프로바이더에서 자격증명을 제거하세요.
- TLS 필수 — 전송 중 데이터를 암호화하려면 항상 연결 문자열에
tls=true를 사용하세요. - 최소 역할 —
readAnyDatabase와clusterMonitor만 부여하고 쓰기 또는 관리자 역할은 절대 부여하지 마세요.
관련 항목
Tony 에이전트
데이터베이스 중심 최적화 에이전트
PostgreSQL 연결
PostgreSQL 데이터베이스 설정 방법