您可以流事件从Atlas操作日志流式传输到外部工具,包括 Datadog、Splunk、客户托管的云存储以及任何与 OpenTelemetry (OTel) 兼容的目标位置。导出事件可实现集中Atlas 审核记录、长期保留以及与现有监控和可观察性工具的集成。
您可以在以下级别配置事件导出:
项目:从 Project Activity Feed 导出事件。
组织:从 Organization Activity Feed 导出事件。
与系统日志导出不同,事件导出不需要 M10+集群。事件导出支持所有层级的集群,包括免费和共享层集群。
支持的目标
可用目标取决于您配置的是项目集成还是组织。项目事件导出支持所有日志导出目标。在初始发布中,组织事件导出仅支持与 OTel 兼容的目标。
目的地 | 项目事件 | 组织事件 |
|---|---|---|
是 | No | |
是 | No | |
是 | No | |
是 | No | |
是 | 是 | |
是 | No |
必需的访问权限
要为项目配置事件导出,您必须拥有该项目的
Project Owner访问权限。
配置项目事件导出
要导出项目级事件,请按照目标的配置步骤进行操作,并在出现提示时选择 Log Type 下的 Events:
您可以在同一集成中将 Events 与系统日志类型结合使用,或者为日志和事件创建单独的集成。
配置组织事件导出
使用API配置事件导出
要以编程方式配置事件导出,请使用Atlas Administration API的日志集成端点。要导出事件,请将 logTypes设立为包含 EVENTS。
方法 | 端点 | 说明 |
|---|---|---|
|
| 创建一个项目级日志集成。 |
|
| 返回所有项目级别的日志集成。 |
|
| 返回一个项目级别的日志集成。 |
|
| 更新一个项目级日志集成。 |
|
| 删除一个项目级别的日志集成。 |
|
| 创建一个组织级别的日志集成。 |
|
| 返回所有组织级别的日志集成。 |
|
| 返回一个组织级别的日志集成。 |
|
| 更新一个组织级别的日志集成。 |
|
| 删除一个组织级别的日志集成。 |
注意
组织级端点在Atlas Administration API预览版中可用。要使用它们,请将 Accept 标头设立为 application/vnd.atlas.preview+json。
组织级集成仅支持OTEL_LOG_EXPORT 集成类型和 EVENTS日志类型。
响应编辑标头值。更新集成时,原封不动地发回编辑后的值会保留存储的值。仅在更改标头值时才提供完整标头值。
示例:创建项目事件导出集成
以下示例创建了一个项目级 OpenTelemetry 集成,用于导出操作日志事件:
curl --header "Authorization: Bearer {ACCESS-TOKEN}" \ --header "Content-Type: application/json" \ --header "Accept: application/vnd.atlas.2025-03-12+json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/groups/{PROJECT-ID}/logIntegrations?pretty=true" \ --data '{ "type": "OTEL_LOG_EXPORT", "logTypes": ["EVENTS"], "otelEndpoint": "https://otel-collector.example.com:4318/v1/logs", "otelSuppliedHeaders": [ { "name": "Authorization", "value": "Bearer token123" } ] }'
示例:创建组织事件导出集成
以下示例创建了一个组织级 OpenTelemetry 集成,用于导出操作日志事件:
curl --header "Authorization: Bearer {ACCESS-TOKEN}" \ --header "Content-Type: application/json" \ --header "Accept: application/vnd.atlas.preview+json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/orgs/{ORG-ID}/logIntegrations?pretty=true" \ --data '{ "type": "OTEL_LOG_EXPORT", "logTypes": ["EVENTS"], "otelEndpoint": "https://otel-collector.example.com:4318/v1/logs", "otelSuppliedHeaders": [ { "name": "Authorization", "value": "Bearer token123" } ] }'
端点返回创建的集成:
{ "id": "66d9f3e1a2b3c4d5e6f70819", "type": "OTEL_LOG_EXPORT", "logTypes": ["EVENTS"], "otelEndpoint": "https://otel-collector.example.com:4318/v1/logs", "otelSuppliedHeaders": [ { "name": "Authorization", "value": "<redacted>" } ] }
事件格式
Atlas通过 OTLP/ HTTP将事件作为JSON有效负载传递到目的地。每个导出的事件都是一个 OTLP日志记录。该记录的资源包括设立为 mongodb-atlas-events 的 service.name 属性,该属性标识操作日志事件流,以便 OTel 收集器可以将这些事件与其他遥测数据分开路由。 Atlas从导出的事件中省略具有 null 值的属性。
每个导出的事件都包含以下字段:
字段 | 说明 |
|---|---|
| 事件发生的时间,以自 Unix 纪元以来的纳秒为单位。 |
| 文本形式的事件严重性,例如 |
| 事件的严重性,以 OTLP 严重性编号枚举,例如 |
| JSON编码的事件对象。包含事件ID ( |
| 事件的唯一标识符。使用此字段对事件进行去重。 |
| |
| 以 |
| 发生事件的组织ID 。始终在组织级别导出时显示。出席一些项目级别的活动。 |
| 发生事件的项目的ID 。始终在项目级导出中显示。出席一些组织级别的活动。 |
以下示例显示了导出的项目事件:
{ "timeUnixNano": "1788896817574000000", "severityNumber": "SEVERITY_NUMBER_INFO", "severityText": "INFO", "body": { "stringValue": "{\"_id\":\"6aa06631ba29fc2b0f206c32\",\"eventType\":\"/events/mms/alerts/alert_config_added_audit\",\"projectId\":\"62abb98d95a82610b74debc5\",\"createdDate\":1788896817574,\"resources\":[],\"eventPayload\":\"{\\\"targetAlertConfigId\\\": \\\"6aa06631ba29fc2b0f206c30\\\", \\\"targetAlertConfigEventType\\\": \\\"HOST_DOWN\\\", \\\"targetAlertConfigType\\\": \\\"HOST\\\"}\",\"source\":{\"sourceType\":\"USER\",\"sourceInfo\":{\"username\":\"Atlas Admin\"}}}" }, "attributes": [ { "key": "mongodb.event.id", "value": { "stringValue": "6aa06631ba29fc2b0f206c32" } }, { "key": "mongodb.event.type", "value": { "stringValue": "/events/mms/alerts/alert_config_added_audit" } }, { "key": "mongodb.project.id", "value": { "stringValue": "62abb98d95a82610b74debc5" } }, { "key": "mongodb.event.payload.encoding", "value": { "stringValue": "json" } } ] }
传递行为
接近实时。在正常情况下, Atlas会近乎实时地传递事件。批次大约每分钟刷新一次。
至少交付一次。 Atlas可能会多次传递同一事件。使用唯一的
mongodb.event.id字段对事件进行去重。中断期间进行缓冲。如果您的目的地不可用, Atlas会缓冲事件并重试传递。 Atlas将未送达的事件最多保留 7 天。 7 天后仍未送达的事件将被永久删除。
目标限制
目的地 | 限制 |
|---|---|
Datadog | 每个请求Datadog 最多接受 5 MB 和 1,000 事件。 |
Splunk | Splunk 通过HTTP事件收集器 (HEC) 分批摄取事件。如果批处理中的一个事件格式不正确,Splunk 将拒绝整个批处理。 |
OpenTelemetry | 交付取决于 OTel 收集器的可用性和配置。端点必须使用带有由公共证书颁发机构 (CA) 签名的证书的 HTTPS。端点 URL 最多可为 2,048 个字符。您最多可以配置 10 个标头,总大小最大为 2 KB。 |
定价
事件导出没有单独的 SKU 或按功能收费。但是,导出事件可能会产生数据传输费用,该费用因目的地、地区和云提供商而异。要学习;了解更多信息,请参阅数据传输成本。