Atlas プラットフォームのアクティビティをレビューするには、ログを使用してください。
Atlas ログの機能
監査ログへのアクセス
次の監査活動には、Atlas CLI、Atlas 管理API、または Atlas UI を使用できます。
監査ログを表示・ダウンロードして、複数のユーザーが関与する配置のシステム イベント アクションを追跡します。Atlas 管理者はカスタム監査フィルターを設定して、監査するアクション、データベースのユーザー、Atlas ロール、 LDAP グループを選択できます。
MongoDB ログを表示・ダウンロードして、配置のログ イベント(受信接続、コマンドの実行、発生した問題など)を追跡します。ログ メッセージは主に、問題の診断、配置のモニタリング、パフォーマンスの調整に役立ちます。
プロジェクトと組織イベントを Project Activity Feed と Organization Activity Feed に表示します。これらのアクティビティフィードには、組織またはプロジェクト レベルのすべてのイベントが一覧表示されます。例として、Atlas のアクセス権やアラート構成に関する変更、モニタリング、請求などが挙げられます。
ユーザーがアクセス ログのクラスターに対して行うデータベース認証試行を表示します。アクセス ログとは、Atlas UI 内の Database access history を指します。Atlas では認証の成否にかかわらず、各試行のタイムスタンプと認証を試みたユーザーがログに記録されます。
監査ログへのプログラムによるアクセス
組み込みの統合以外のツールと統合するには、次のプログラム ツールを使用してログを検索し、JSON 形式の出力を外部ツールにフィードすることをお勧めします。
AWS S3 バケットにログを継続的にプッシュするには、プッシュベースのログ エクスポート用の Atlas Administration API エンドポイントを使用します。
配置ログとプロジェクト イベントのリストを検索するには、モニタリングとログおよびプロジェクトと組織のイベントのための Atlas 管理API エンドポイントを使用します。
配置ログを検索するには、Atlas CLI で atlas deployment logs コマンドを使用します。
Atlas のログ記録に関する推奨事項
次の推奨事項は、すべての配置パラダイムに適用されます。
包括的監査を実施するには、監査ログ、MongoDB ログ メッセージ、プロジェクトと組織のアクティビティフィードを組み合わせて使用できます。
監査ログ メッセージはデフォルトでは、mongo スキーマと呼ばれる MongoDB の設計形式で返されます。mongo スキーマに従う監査ログ メッセージには常に次の情報が含まれます。
アクション タイプ(
atype)タイムスタンプ
クライアント接続ID(UUID)
クライアントの IP アドレスとポート番号
受信接続の IP アドレスとポート番号
ユーザー名
ユーザー認証データベース
ユーザー・ロール
ユーザー ロールのデータベース
paramイベントの具体的な詳細が記載されているドキュメント結果値またはエラー コード
監査アクション タイプの一覧とそれに関連する param の詳細および result 値については、「mongo スキーマ監査メッセージ」をご覧ください。
オートメーションの例: Atlas ログ記録
Tip
すべてのピリオドにわたって推奨事項を強制する Terraform の例については、 Githubの次のいずれかの例を参照してください。
次の例では、Atlas のオートメーションツールを使用してログを検索およびダウンロードし、監査を構成する方法を示します。
次の例に加えて、ブログ記事の「HashiCorp Terraform による Atlas のプッシュベースのログエクスポートを使用した、Amazon S3 へのログ管理の効率化」を参照してください。
ログは検索およびダウンロードできます。アラートを検索することもできます。
ログを検索すると、最新のログファイルを取得して、リアルタイムに表示したりアクセスしたりできます。
ログをダウンロードすると、MongoDB Atlas からログ アーカイブを作成して、後で分析したり保存したりできます。
ログの検索
ログの検索機能を使って、クラスターの活動をリアルタイムに監視・調査したり、最新ログの問題をトラブルシューティングしたりします。
クラスター内の mongod と mongos はそれぞれ固有の MongoDB ログ と監査ログ メッセージを出力し、その内容は他のインスタンスと異なる可能性があります。これらのログ メッセージは、atlas deployment logs コマンドを使用して Atlas CLI で表示できます。
mongod インスタンスの監査ログ エントリを検索するには、mongod のホスト名を入力して、監査ログファイル名として mongodb-audit-log.gz と指定します。
atlas deployments logs --output json --type atlas --hostname cluster0-shard-00-00.a1b2c.mongodb.net --name mongodb-audit-log.gz
シャーディングされたクラスター内の mongos インスタンスの監査ログ エントリを検索するには、mongos のホスト名を入力して、監査ログファイル名として mongos-audit-log.gz を指定します。
atlas deployments logs --output json --type atlas --hostname cluster0-shard-00-00.a1b2c.mongodb.net --name mongos-audit-log.gz
MongoDB ログメッセージを検索するには、mongod または mongos インスタンスのホスト名を入力し、それぞれのログファイル名を mongodb.gz または mongos.gz と指定します。
atlas deployments logs --output json --type atlas --hostname cluster0-shard-00-00.a1b2c.mongodb.net --name mongodb.gz
ノードまたはクラスターのアクセス ログを表示するには、atlas accessLogs list コマンドを使用することもできます。アクセス ログは、指定したノードまたはクラスターに対するすべての認証リクエストを JSON 形式で一覧表示したものです。
アクセス ログを検索するには、atlas accessLogs list コマンドを実行して、検索対象となるノードまたはクラスターのホスト名またはクラスター名を指定します。
atlas accessLogs list --output json --clusterName Cluster0
ログのダウンロード
ログをダウンロードして、過去のログを中心に監査やパフォーマンスの分析をしたり、アーカイブしたりできます。
クラスター内の mongod と mongos インスタンスにはそれぞれ固有の MongoDB ログと監査ログがあり、ログの内容は他のインスタンスと異なる可能性があります。mongod または mongos インスタンスはアプリケーション的には他の MongoDB インスタンスと同様に動作しますが、これらのログには MongoDB におけるロールに特有の情報が含まれています。
mongodのログには、MongoDB のデータ リクエスト、データアクセス情報、バックグラウンド管理操作が含まれます。mongosログには、クエリと書き込み操作をシャーディングされたクラスター内のシャードにルーティングする処理に関する情報が、含まれています。
Atlas CLI コマンド「atlas logs download」を使用すると各ログを圧縮ファイル形式でダウンロードできます。
クラスター内の mongod インスタンスの監査ログをダウンロードするには、mongod ホスト名と監査ログファイル名「mongodb-auditlog.gz」を引数として入力します。このファイル名はここでは例として使用されており、別の名前を使用することもできます。
atlas logs download cluster0-shard-00-00.a1b2c.mongodb.net mongodb-audit-log.gz
シャーディングされたクラスター配置内の mongos インスタンスの監査ログをダウンロードするには、ホスト名「mongos」と監査ログファイル名「mongos-auditlog.gz」を引数として入力します。このファイル名はここでは例として使用されており、別の名前を使用することもできます。
atlas logs download cluster0-shard-00-00.a1b2c.mongodb.net mongos-audit-log.gz
mongod または mongos インスタンスの MongoDB ログをダウンロードするには、インスタンスのホスト名、およびそれぞれのログファイル名「mongodb.gz」または「mongos.gz」を引数として入力します。
atlas logs download cluster0-shard-00-00.a1b2c.mongodb.net mongodb.gz
すべてのプロジェクト アラートの検索
プロジェクト イベントまたは組織イベントによってトリガーされるアラートを返すには、次の Atlas CLI コマンドを使用できます。Atlas では、Replica set has no primary と User joined the project アラートがデフォルトで発せられます。これらのイベントではプロジェクト内や組織内における重要なアクティビティや変更のレコードが提供されます。例として、重要なデータベース、請求、セキュリティ活動やステータスの変更が挙げられます。
プロジェクトや組織に関するアラートをトリガーするイベントをカスタマイズするには、「アラート設定の構成」を参照してください。
プロジェクトまたは組織のすべてのログ イベントの検索
Project Activity Feed または Organization Activity Feed からプロジェクト イベントまたは組織イベントを取得するには、次の Atlas CLI コマンドを使用できます。
組織のすべてのイベントを取得するには、atlas events organizations list コマンドを使用し、組織ID を指定します。次のコマンドを使用すると、ID 5dd5a6b6f10fab1d71a58495 の組織のイベント リストが JSON 形式で返されます。
atlas events organizations list --orgId 5dd5a6b6f10fab1d71a58495 --output json
プロジェクトのすべてのイベントを取得するには、atlas events projects list コマンドを使用し、グループ ID を指定します。次のコマンドを使用すると、ID 64ac57bfe9810c0263e9d655 のプロジェクトのイベント リストが JSON 形式で返されます。
atlas events organizations list --orgId 5dd5a6b6f10fab1d71a58495 --output json
クラスター全体のすべてのクエリ ログのダウンロード
クラスター全体のクエリ ログをダウンロードするには、必要な権限を取得し、Atlas UI でクラスターを選択してから [Online Archive] をクリックして以下を実行します。
<cluster-name>_cluster_archive_<start-date>_<end-date>_queries.log.gz
ログの検索
Terraform ではログを検索できません。代わりに、次の Atlas Administration APIエンドポイントを使用します。
アクセス トラッキング 管理API を使用して、クラスター名またはホスト名で識別されるデータベースのすべての認証試行のアクセス ログを返します。
指定されたホストのログメッセージを含むログファイルを検索するには、モニタリングおよびログの API を使用します。