要查看 Atlas 平台的活动,请使用日志。
Atlas 日志功能
访问审核日志
您可以使用 Atlas CLI、Atlas 管理 API 或 Atlas 用户界面进行以下 Atlas 审核活动:
查看和下载 Atlas 审核日志以追踪多用户部署中的系统事件操作。Atlas 管理员可以配置自定义过滤器,以选择要 Atlas 审核的操作、数据库用户、Atlas 角色和 LDAP 群组。
查看和下载 MongoDB 日志以追踪您的部署的日志事件,包括传入连接、运行的命令和遇到的问题。通常,日志消息可用于诊断问题、监控部署和调优性能。
在 Project Activity Feed 和 Organization Activity Feed 中查看项目和组织事件。这些操作日志列出了组织或项目级别的所有事件,包括与 Atlas 访问、告警配置和监控、计费等相关的更改。
查看访问日志中用户对集群进行的数据库身份验证尝试(即Database access history 在 Atlas 用户界面中)。Atlas 会记录所有成功和失败的身份验证尝试,包括每次尝试的时间戳和发起身份验证的用户。
编程访问审核日志
为了与内置集成之外的工具进行集成,我们建议您使用以下编程工具来检索日志,并将 JSON 格式的输出传递给您的外部工具:
要将日志持续推送到 AWS S3 存储桶,请使用 Atlas Administration API 终结点来进行基于推送的日志导出。
要检索部署日志和项目事件列表,请使用 Atlas 管理 API 的监控和日志终结点,以及项目和组织事件终结点。
要检索部署日志,请在 Atlas CLI 中使用 atlas deployment logs 命令。
Atlas 日志建议
以下建议适用于所有部署范式。
要执行全面Atlas 审核,您可以结合使用Atlas 审核日志、MongoDB 日志消息和项目和组织操作日志。
默认情况下,审计日志消息以 MongoDB 设计的格式返回,该格式称为 mongo 模式。遵循 mongo 模式的 Atlas 审核日志消息始终包含以下信息:
操作类型 (
atype)时间戳
客户端连接 ID(UUID)
客户端 IP 地址和端口号
传入连接的 IP 地址和端口号
用户名
用户身份验证数据库
用户角色
用户角色数据库
param包含特定事件详细信息的文档结果值或错误代码
有关 Atlas 审核操作类型的完整列表及其相关 param 详情和 result 值,请参阅mongo 模式审核消息。
自动化示例:Atlas 日志
提示
有关在所有支柱上实施我们建议的 Terraform 示例,请参阅Github中的以下示例之一:
以下示例展示了如何使用 Atlas 自动化工具来检索和下载日志并配置审核。
除以下示例外,请参阅博文使用 HashiCorp Terraform 基于 Atlas 推送的日志导出简化 Amazon S3 的日志管理。
您可以检索日志并下载日志。您还可以检索警报。
检索日志使您能够实时查看和访问当前日志文件。
通过下载日志,您可以从 MongoDB Atlas 创建日志存档,以便日后进行分析或存储。
检索日志
检索日志以实时监控和检查集群的活动,并在当前日志中排查问题。
集群中的每个mongod和mongos实例都会输出自己的MongoDB 日志和Atlas 审核日志消息,其内容可能与其他实例不同。您可以在 Atlas CLI 中使用 atlas deployment logs 命令查看这些日志信息。
要检索群集中某个 mongod 实例的 Atlas 审核日志条目,请提供 mongod 主机名,并指定 mongodb-audit-log.gz 作为 Atlas 审核日志文件的名称:
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 中角色的信息。
您可以使用 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。这些事件记录了项目或组织内的重要活动和变化,包括数据库、计费或安全方面的重要活动或状态变化。
要自定义哪些事件会触发项目和组织的警报,请参阅配置警报设置。
检索您项目或组织的所有日志事件
您可以使用以下 Atlas CLI 命令从您的 Project Activity Feed 或 Organization Activity Feed 返回项目或组织事件。
要返回您组织的全部事件,请使用 atlas 事件组织列表命令,并指定您的组织 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 用户界面中选择您的集群,单击 Online Archive,然后运行:
<cluster-name>_cluster_archive_<start-date>_<end-date>_queries.log.gz