メインコンテンツへスキップ
MongoDB データベースを接続して、Tony(データベースエンジニア)がクエリを分析し、パフォーマンスを最適化し、データベースの健全性を監視できるようにします。

対応プラットフォーム

プラットフォームサポート
セルフホスト MongoDB4.x・5.x・6.x・7.x
MongoDB Atlas全バージョン

前提条件

  • CloudThinker からネットワーク経由で到達可能な MongoDB インスタンスまたは Atlas クラスター。
  • 専用データベースユーザーの作成とロール割り当てに必要な管理者アクセス。
  • クレデンシャルを含む MongoDB 接続文字列。

セットアップ

MongoDB プラットフォームを選択して、具体的な接続手順を確認してください。
1

管理者として接続する

Mongo シェル(mongosh)を使って管理者権限で MongoDB インスタンスに接続します。<admin-user><admin-password><your-host> をご自身のクレデンシャルに置き換えてください。/admin データベースが必要です。
mongosh "mongodb://<admin-user>:<admin-password>@<your-host>:27017/admin"
2

admin データベースに切り替える

ユーザーを作成する admin データベースにいることを確認します:
use admin
3

読み取り専用ユーザーを作成する

MongoDB の組み込みロールを使って CloudThinker 専用のユーザーを作成します:
db.createUser({
  user: "<cloudthinker_user>",
  pwd: "<secure-password>",
  roles: [
    { role: "readAnyDatabase", db: "admin" },
    { role: "clusterMonitor", db: "admin" }
  ]
})
clusterMonitor ロールはパフォーマンスメトリクスの分析に推奨されます。
4

ネットワークアクセスを設定する

CloudThinker がデータベースに到達できるよう設定します:
  • CloudThinker の IP をファイアウォールまたはセキュリティグループに追加
  • mongod.conf で MongoDB がアクセス可能な IP アドレスにバインドされていることを確認
5

CloudThinker に接続を追加する

Connections → MongoDB に移動し、以下の接続文字列を貼り付けます:
mongodb://<cloudthinker_user>:<secure-password>@<your-host>:27017/admin?tls=true&appName=CloudThinker
デプロイが TLS 暗号化を強制している場合は tls=true を含めてください。Connect をクリックします。成功すると CloudThinker は Connected ステータスを表示します。

接続詳細

フィールド説明
接続文字列クレデンシャルを含む完全な MongoDB URImongodb+srv://user:pass@host/admin?tls=true
TLS/SSL接続に TLS を強制 — URI に tls=true を使用true
Read preference読み取り操作をルーティングするノードprimary
Connection timeout接続待機秒数10

必要な権限

ロール用途
readAnyDatabase全コレクションのクエリとインデックス使用状況の分析
clusterMonitorパフォーマンスメトリクスのための serverStatusreplSetGetStatus およびその他の診断コマンドへのアクセス
クエリの完全な分析とクラスターヘルス監視を解放するには、両方のロールを割り当ててください。CloudThinker ユーザーには書き込みや管理ロールは絶対に付与しないでください。

エージェントの機能

接続後、Tony は以下を実行できます:
機能説明
クエリ分析低速クエリの特定、explain() による実行計画の分析
インデックス推奨不足しているインデックスの発見、未使用インデックスの特定
パフォーマンスメトリクス接続数・メモリ使用量・レプリケーションラグの監視

接続を確認する

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

プロンプト例

@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

トラブルシューティング

  • ユーザー名とパスワードが正しいか確認してください
  • ユーザーが admin データベースで作成されているか、接続文字列に ?authSource=admin が付いているか確認してください
  • Atlas の場合:Database Access でユーザーが正しい権限で作成されているか確認してください
  • CloudThinker の IP が Atlas のネットワークアクセスリストまたはファイアウォールに追加されているか確認してください
  • ローカル MongoDB の場合、mongod.confbindIp127.0.0.1 のみに設定されていないか確認してください
  • Tony が serverStatusreplSetGetStatus を実行するには clusterMonitor ロールが必要です
  • admin データベースで CloudThinker ユーザーに clusterMonitor ロールを追加して再接続してください

セキュリティ

  • 最小権限 — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
  • デフォルトで読み取り専用 — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
  • 認証情報のローテーション — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
  • オフボーディング時に失効 — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。
  • TLS 必須 — 転送中のデータを暗号化するために、接続文字列には常に tls=true を使用してください。
  • 最小ロールreadAnyDatabaseclusterMonitor のみを付与し、書き込みや管理ロールは絶対に付与しないでください。

関連

Tony Agent

データベース特化の最適化エージェント
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

PostgreSQL 接続

PostgreSQL データベースのセットアップ手順