Salesforce 集成
编辑Salesforce 集成
编辑概述
编辑通过 Salesforce 集成,您可以监控您的 Salesforce 实例。Salesforce 是一个客户关系管理 (CRM) 平台,支持企业从一个可从任何地方访问的统一平台管理营销、销售、商务、服务和 IT 团队。
您可以使用 Salesforce 集成来实现以下目的:
- 运营洞察:深入了解您组织的登录和注销活动以及其他运营事件。
- 数据可视化:创建详细的可视化效果,以监控、衡量和分析使用趋势和关键数据,帮助您获得可操作的业务洞察。
- 主动警报:设置警报,通过在故障排除期间参考相关日志来最大限度地缩短平均检测时间 (MTTD) 和平均修复时间 (MTTR)。
数据流
编辑Salesforce 集成收集以下数据流:
-
login
:收集与登录到 Salesforce 的用户相关的信息。 -
logout
:收集与从 Salesforce 注销的用户相关的信息。 -
apex
:收集有关各种 Apex 事件的信息,例如 Callout、Execution、REST API、SOAP API、Trigger 等。 -
setupaudittrail
:收集与用户在过去 180 天内在组织的设置区域中所做的更改相关的信息。
Salesforce 集成使用 Salesforce REST API 收集以下事件:
兼容性
编辑此集成已针对 Salesforce Spring '22 (v54.0) 版本和 Summer '24 (v61.0) 版本进行了测试。最低支持版本为 v46.0。
要确定您的 Salesforce 实例版本,请使用以下方法之一:
-
Salesforce Classic
在 Salesforce Classic 的主页选项卡上,您可以在右上角找到一个链接,指示您的 Salesforce 实例的当前版本,例如
Summer '24 for Developers
。 -
使用 Salesforce 实例 URL
使用以下格式的 Salesforce 实例 URL:
<Salesforce 实例 URL>/services/data
,例如:https://na9.salesforce.com/services/data
,其中https://na9.salesforce.com
是 Salesforce 实例 URL。请求该 URL 将返回一个 XML 响应,其中列出了所有可用版本。
<Versions> <Version> <label>Spring '22</label> <url>/services/data/v54.0</url> <version>54.0</version> </Version> <Version> <label>Summer '22</label> <url>/services/data/v55.0</url> <version>55.0</version> </Version> </Versions>
列表中的最后一项表示您的 Salesforce 实例的当前版本。在此示例中,当前版本为 Summer '22 (v55.0)
。
先决条件
编辑- 您需要 Elasticsearch 来存储和搜索数据,以及 Kibana 来可视化和管理数据。您可以使用我们在 Elastic Cloud 上的托管 Elasticsearch 服务(推荐),也可以在您的硬件上自行管理 Elastic Stack。
-
确保为您的 Salesforce 实例中的用户配置文件选择了“启用 API”权限
- 转到设置> 快速查找,然后键入用户。
- 从左侧导航树中选择用户。
- 在全名列中,选择与用于数据收集的用户帐户关联的名称。
- 在配置文件页面上搜索启用 API权限。如果它不存在,请在系统权限下搜索,并检查是否选择了“启用 API”特权。如果没有,请启用它以进行数据收集。
-
确保启用了使用 实时事件监控 API 收集数据
- 转到设置> 快速查找,然后键入事件管理器。
- 从左侧导航树中选择事件管理器。
- 要监控事件,例如登录事件或注销事件,请单击下拉箭头,然后选择启用存储。
- 检查您是否具有所需权限:查看实时事件监控数据。
实时事件监控可能需要额外的许可。请与您的 Salesforce 客户代表核实您的订阅级别。
设置
编辑有关如何设置集成的分步说明,请参阅入门指南。
配置
编辑要配置 Salesforce 集成,您需要以下信息:
Salesforce 实例 URL
编辑这是您的 Salesforce 组织的 URL。
- Salesforce Classic:给定示例 URL https://na9.salesforce.com/home/home.jsp,Salesforce 实例 URL 被提取为 https://na9.salesforce.com。
- Salesforce Lightning:实例 URL 在查看配置文件选项卡中您的用户名下可用。如果使用 Salesforce Lightning,请使用正确的实例 URL,因为它使用 *.lightning.force.com,但实例 URL 是 *.salesforce.com。
用于身份验证的客户端密钥和客户端密码
编辑要使用此集成,您需要使用 OAuth 创建一个新的 Salesforce 应用程序。请按照以下步骤在 Salesforce 中创建一个连接的应用程序:
- 使用您要收集数据的用户凭据登录 Salesforce。
- 单击右上菜单栏中的设置。
- 在设置搜索框中,搜索
App Manager
并选择它。 - 单击新建连接的应用程序。
- 为连接的应用程序提供一个名称。此名称将显示在应用程序管理器及其应用程序启动器磁贴上。
- 输入 API 名称。默认值是不带空格的名称版本。只允许使用字母、数字和下划线。如果原始应用程序名称包含任何其他字符,请编辑默认名称。
- 输入 Salesforce 的联系人电子邮件。
- 在API(启用 OAuth 设置)部分下,选中启用 OAuth 设置的框。
- 在回调 URL字段中,输入 Salesforce 实例 URL 中指定的实例 URL。
-
选择以下要应用于连接的应用程序的 OAuth 范围:
- 通过 API 管理用户数据 (api)
- 随时执行请求 (refresh_token, offline_access)
- (可选)如果在数据收集期间遇到任何权限问题,请添加完全访问权限 (full)范围。
- 选择需要 Web 服务器流程的密钥,以要求应用程序的客户端密钥来换取访问令牌。
- 选择需要刷新令牌流程的密钥,以在刷新令牌和混合刷新令牌流程的授权请求中要求应用程序的客户端密钥。
- 单击保存。更改生效可能需要大约 10 分钟。
- 单击继续,然后在API 详细信息下选择管理消费者详细信息。输入验证码验证用户帐户。
- 从“消费者详细信息”部分复制
消费者密钥
和消费者密码
。这些值应分别在配置中用作客户端 ID 和客户端密码。
有关更多详细信息,请查看 Salesforce 文档,了解如何创建连接的应用程序。
用户名
编辑注册用户的用户 ID。
密码
编辑用于使用您的 Salesforce 实例验证用户的密码。
当使用带有安全令牌的 Salesforce 实例时,将令牌直接附加到您的密码,无需空格或特殊字符。例如,如果您的密码是 password
,并且您的安全令牌是 12345
,请输入:password12345
。
令牌 URL
编辑- 使用令牌 URL 来获取用于 API 访问的身份验证令牌。
- 对于大多数 Salesforce 实例,令牌 URL 遵循此格式:https://login.salesforce.com/services/oauth2/token。
- 如果您使用的是 Salesforce 沙盒环境,请改用 https://test.salesforce.com/services/oauth2/token。
- 对于自定义 Salesforce 域,请将
login.salesforce.com
替换为您的自定义域名。例如,如果您的自定义域名是mycompany.my.salesforce.com
,则令牌 URL 将变为 https://mycompany.my.salesforce.com/services/oauth2/token。这也适用于沙盒环境。 - 在 Salesforce 集成中,我们在内部将
/services/oauth2/token
附加到 URL。请确保您在 Salesforce 集成中提供的 URL 是不包含/services/oauth2/token
部分的基本 URL。例如,如果您的自定义域名是mycompany.my.salesforce.com
,完整的令牌 URL 将是 https://mycompany.my.salesforce.com/services/oauth2/token,但您在 Salesforce 集成中提供的 URL 应该是 https://mycompany.my.salesforce.com。在大多数情况下,这与 Salesforce 实例 URL 相同。
Salesforce Lightning 用户必须使用带有 *.salesforce.com
域(类似于 Salesforce 实例 URL)的 URL,而不是 *.lightning.force.com
,因为 Salesforce API 不适用于 *.lightning.force.com
。
API 版本
编辑查找 API 版本
- 转到
设置
>快速查找
>Apex 类
。 - 点击
新建
。 - 点击
版本设置
标签。 - 参考
版本
下拉列表中的 API 版本号。
或者,您可以使用“兼容性”部分中描述的 Salesforce 实例 API 版本。
验证
编辑成功配置 Salesforce 集成后,请按照以下步骤验证设置
- 导航到 Salesforce 集成中的 资产 选项卡。您会找到与您配置的数据流相关的可用仪表板列表。
- 选择与您的数据流相关的仪表板(例如,登录、注销、apex、setupaudittrail)。
- 验证仪表板是否填充了预期的数据。
如果仪表板正确显示数据,则表示您的集成已成功验证。
Salesforce 集成:v0.15.0 及更高版本
编辑在 0.15.0 版本中,我们显著增强了 Salesforce 集成,引入了数据收集机制、身份验证和数据流方面的重大变更。由于这些变更,我们建议使用 Salesforce 集成 v0.15.0 或更高版本,并卸载以前的版本。
主要增强功能
编辑- 统一数据收集:集成现在使用单个 Filebeat 输入 (Salesforce 输入) 从 EventLogFile 和实时事件监控 API 收集数据。
- JWT 身份验证:引入了 JWT 身份验证机制。
- 扩展的配置选项:添加了
initial_interval
和其他选项来微调数据收集,包括历史数据检索。 - 数据收集机制的更改:将 Streaming API (cometd) 替换为实时事件监控 API。
- 性能优化:显著降低了数据收集过程中的 CPU 和内存使用率。
- 增强的仪表板:改进了可视化效果。
重大变更
编辑- 数据流整合:从 6 个数据流减少到 4 个数据流 -
apex
、login
、logout
和setupaudittrail
。 - 字段映射更新:修改了多个字段的映射。
- 其他更改:还进行了一些其他调整,以提高集成的整体性能和功能。
故障排除
编辑本节提供使用 Salesforce 集成时可能遇到的常见问题的解决方案。
请求超时
编辑如果您在 apex
、login
、logout
或 setupaudittrail
数据流中遇到来自 Salesforce 服务器的响应延迟,您可能会遇到类似的错误
Error while processing http request: failed to execute rf.collectResponse: failed to execute http client.Do: failed to execute http client.Do: failed to read http.response.body
解决方案: 考虑增加受影响数据流的 高级选项
部分中的 请求超时
设置。
数据摄取错误
编辑如果您遇到数据摄取错误,您可能会收到以下错误消息
400 Bad Request
解决方案: 确保将 API 已启用
权限授予与用于集成的 用户名
关联的 配置文件
。有关更多信息,请查看先决条件部分。
如果错误仍然存在,请按照以下步骤操作
- 导航到 设置 > 快速查找 > 应用程序管理器。
- 找到该应用程序,然后单击相应的箭头以查看可用的操作。
- 单击 查看。
- 通过单击 API 部分中的 管理消费者详细信息 获取客户端密钥和密钥。
- 单击 管理 以编辑策略。
- 单击 编辑策略,然后从 IP 放松的下拉菜单中选择 放宽 IP 限制。
使用 Salesforce Connected App 验证 OAuth 2.0 身份验证
编辑CLIENT_ID="" # Replace with your client ID CLIENT_SECRET="" # Replace with your client secret USERNAME="" # Replace with your Salesforce username PASSWORD="" # Replace with your Salesforce password SECURITY_TOKEN="" # Replace with your Salesforce security token (if applicable). Else, leave it blank. TOKEN_URL="https://<your-instance>.my.salesforce.com/services/oauth2/token" # Replace with your Salesforce instance URL curl -v -X POST "${TOKEN_URL}" \ -d "grant_type=password" \ -d "client_id=${CLIENT_ID}" \ -d "client_secret=${CLIENT_SECRET}" \ -d "username=${USERNAME}" \ -d "password=${PASSWORD}${SECURITY_TOKEN}"
该脚本已在基于 Unix 的系统(macOS、Linux)上测试过。如果您使用其他操作系统,您可能需要相应地调整命令。
此命令对于调试和排除 Salesforce Connected Apps 的 OAuth 2.0 身份验证问题非常有用。建议在设置完整的 Salesforce 集成之前使用 curl
之类的工具测试 OAuth 2.0 身份验证。这种方法使您能够在设置完整的 Salesforce 集成时尽早验证身份验证过程并识别任何潜在问题。如果请求成功,响应将包含可用于对后续 Salesforce API 请求进行身份验证的访问令牌。如果请求失败,响应将包含一条错误消息,指示失败的原因。
日志参考
编辑Apex
编辑apex
数据流捕获与 Apex 操作相关的事件,使开发人员能够访问 Salesforce 平台后端数据库和客户端-服务器接口来创建第三方 SaaS 应用程序。
示例
apex
的示例事件如下所示
{ "@timestamp": "2022-11-22T04:46:15.591Z", "agent": { "ephemeral_id": "bcd82746-7d4f-4c15-8288-e159f8223e86", "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "name": "docker-fleet-agent", "type": "filebeat", "version": "8.14.0" }, "data_stream": { "dataset": "salesforce.apex", "namespace": "ep", "type": "logs" }, "ecs": { "version": "8.11.0" }, "elastic_agent": { "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "snapshot": false, "version": "8.14.0" }, "event": { "action": "apex-callout", "agent_id_status": "verified", "category": [ "network" ], "dataset": "salesforce.apex", "duration": 1293, "ingested": "2024-06-21T16:36:07Z", "kind": "event", "original": "{\"CLIENT_IP\":\"81.2.69.142\",\"CPU_TIME\":\"10\",\"EVENT_TYPE\":\"ApexCallout\",\"LOGIN_KEY\":\"Obv9123BzbaxqCo1\",\"METHOD\":\"GET\",\"ORGANIZATION_ID\":\"00D5j000000001V\",\"REQUEST_ID\":\"4exLFFQZ1234xFl1cJNwOV\",\"REQUEST_SIZE\":\"10\",\"RESPONSE_SIZE\":\"256\",\"RUN_TIME\":\"1305\",\"SESSION_KEY\":\"WvtsJ1235oW24EbH\",\"SUCCESS\":\"1\",\"TIME\":\"1293\",\"TIMESTAMP\":\"20221122044615.591\",\"TIMESTAMP_DERIVED\":\"2022-11-22T04:46:15.591Z\",\"TYPE\":\"OData\",\"URI\":\"CALLOUT-LOG\",\"URI_ID_DERIVED\":\"0055j000000utlPAQZB\",\"URL\":\"https://temp.sh/odata/Accounts\",\"USER_ID\":\"0055j0000000001\",\"USER_ID_DERIVED\":\"0055j012345utlPAAQ\"}", "outcome": "success", "provider": "EventLogFile", "type": [ "connection" ], "url": "https://temp.sh/odata/Accounts" }, "host": { "architecture": "x86_64", "containerized": true, "hostname": "docker-fleet-agent", "id": "345c85cf1fe945e2b19719b370c09a48", "ip": [ "192.168.251.7" ], "mac": [ "02-42-C0-A8-FB-07" ], "name": "docker-fleet-agent", "os": { "codename": "focal", "family": "debian", "kernel": "3.10.0-1160.114.2.el7.x86_64", "name": "Ubuntu", "platform": "ubuntu", "type": "linux", "version": "20.04.6 LTS (Focal Fossa)" } }, "http": { "request": { "bytes": 10, "method": "GET" }, "response": { "bytes": 256 } }, "input": { "type": "salesforce" }, "related": { "ip": [ "81.2.69.142" ] }, "salesforce": { "apex": { "cpu_time": 10, "event_type": "ApexCallout", "login_key": "Obv9123BzbaxqCo1", "organization_id": "00D5j000000001V", "request_id": "4exLFFQZ1234xFl1cJNwOV", "run_time": 1305, "type": "OData", "uri": "CALLOUT-LOG", "uri_derived_id": "0055j000000utlPAQZB", "user_id_derived": "0055j012345utlPAAQ" }, "instance_url": "http://elastic-package-service-salesforce-1:8010" }, "source": { "geo": { "city_name": "London", "continent_name": "Europe", "country_iso_code": "GB", "country_name": "United Kingdom", "location": { "lat": 51.5142, "lon": -0.0931 }, "region_iso_code": "GB-ENG", "region_name": "England" }, "ip": "81.2.69.142" }, "tags": [ "preserve_original_event", "salesforce-apex" ], "user": { "id": "0055j0000000001" } }
导出的字段
字段 | 描述 | 类型 | 单位 | 指标类型 |
---|---|---|---|---|
@timestamp |
事件时间戳。 |
日期 |
||
data_stream.dataset |
数据流数据集。 |
constant_keyword |
||
data_stream.namespace |
数据流命名空间。 |
constant_keyword |
||
data_stream.type |
数据流类型。 |
constant_keyword |
||
input.type |
输入类型。 |
keyword |
||
salesforce.apex.action |
调用执行的操作。 |
keyword |
||
salesforce.apex.callout_time |
等待 Web 服务调用的时间,以毫秒为单位。 |
浮点数 |
毫秒 |
仪表 |
salesforce.apex.class_name |
Apex 类名称。如果该类是托管包的一部分,则此字符串包含包命名空间。 |
keyword |
||
salesforce.apex.client_name |
正在使用 Salesforce 服务的客户端的名称。此字段是可选参数,可以在 API 调用中传递。如果为空,则调用者未在 CallOptions 标头中指定客户端。 |
keyword |
||
salesforce.apex.cpu_time |
完成请求所用的 CPU 时间,以毫秒为单位。 |
浮点数 |
毫秒 |
仪表 |
salesforce.apex.db_blocks |
指示数据库中正在发生的活动量。此字段的高值表示在查询中添加索引或过滤器将有助于提高性能。 |
长整型 |
仪表 |
|
salesforce.apex.db_cpu_time |
完成请求的 CPU 时间(以毫秒为单位)。指示在请求期间数据库层中发生的活动量。 |
浮点数 |
毫秒 |
仪表 |
salesforce.apex.db_total_time |
请求中所有操作等待数据库处理的总时间(以毫秒为单位)。将此字段与 cpu_time 进行比较,以确定性能问题是发生在数据库层还是在您自己的代码中。 |
浮点数 |
毫秒 |
仪表 |
salesforce.apex.entity |
正在访问的外部对象的名称。 |
keyword |
||
salesforce.apex.entity_name |
受触发器影响的对象的名称。 |
keyword |
||
salesforce.apex.entry_point |
此 Apex 执行的入口点。 |
keyword |
||
salesforce.apex.event_type |
事件的类型。 |
keyword |
||
salesforce.apex.execute_ms |
Salesforce 准备和执行查询所花费的时间(以毫秒为单位)。在 API 版本 42.0 及更高版本中可用。 |
浮点数 |
毫秒 |
仪表 |
salesforce.apex.fetch_ms |
从外部系统检索查询结果所花费的时间(以毫秒为单位)。在 API 版本 42.0 及更高版本中可用。 |
浮点数 |
毫秒 |
仪表 |
salesforce.apex.fields_count |
字段或列的数量(如果适用)。 |
长整型 |
||
salesforce.apex.filter |
用于筛选要返回的行的字段表达式。对应于 SOQL 查询中的 WHERE。 |
keyword |
||
salesforce.apex.is_long_running_request |
指示请求是否计入您组织的并发长时间运行的 Apex 请求限制。 |
布尔值 |
||
salesforce.apex.limit |
查询要返回的最大行数。对应于 SOQL 查询中的 LIMIT。 |
长整型 |
||
salesforce.apex.limit_usage_pct |
针对组织的限制所进行的 Apex SOAP 调用的百分比。 |
浮点数 |
百分比 |
仪表 |
salesforce.apex.login_key |
将给定用户登录会话中的所有事件联系在一起的字符串。它以登录事件开始,并以注销事件或用户会话过期结束。 |
keyword |
||
salesforce.apex.media_type |
响应的媒体类型。 |
keyword |
||
salesforce.apex.message |
与失败的调用相关的错误或警告消息。 |
文本 |
||
salesforce.apex.method_name |
调用 Apex 方法的名称。 |
keyword |
||
salesforce.apex.offset |
在结果集中分页时要跳过的行数。对应于 SOQL 查询中的 OFFSET。 |
长整型 |
||
salesforce.apex.orderby |
用于对查询结果进行排序的字段或列,以及是以升序(默认)还是降序对结果进行排序。对应于 SOQL 查询中的 ORDER BY。 |
keyword |
||
salesforce.apex.organization_id |
组织的 15 个字符的 ID。 |
keyword |
||
salesforce.apex.query |
SOQL 查询(如果已执行)。 |
keyword |
||
salesforce.apex.quiddity |
与此事件关联的外部执行的类型。 |
keyword |
||
salesforce.apex.request_id |
单个事务的唯一 ID。一个事务可以包含一个或多个事件。给定事务中的每个事件都具有相同的 request_id。 |
keyword |
||
salesforce.apex.request_status |
页面视图或用户界面操作的请求状态。 |
keyword |
||
salesforce.apex.rows_fetched |
调用提取的行数。在 API 版本 42.0 及更高版本中可用。 |
长整型 |
||
salesforce.apex.rows_processed |
请求中处理的行数。 |
长整型 |
||
salesforce.apex.rows_total |
结果集中的记录总数。如果自定义适配器的 DataSource.Provider 类未声明 QUERY_TOTAL_SIZE 功能,则该值始终为 -1。 |
长整型 |
||
salesforce.apex.run_time |
请求所花费的时间,以毫秒为单位。 |
浮点数 |
毫秒 |
仪表 |
salesforce.apex.select |
要查询的字段的逗号分隔列表。对应于 SOQL 查询中的 SELECT。 |
keyword |
||
salesforce.apex.soql_queries_count |
在事件期间执行的 SOQL 查询的数量。 |
长整型 |
||
salesforce.apex.subqueries |
保留供将来使用。 |
keyword |
||
salesforce.apex.throughput |
一秒钟内检索的记录数。 |
浮点数 |
仪表 |
|
salesforce.apex.trigger_id |
触发器的 15 个字符的 ID。 |
keyword |
||
salesforce.apex.trigger_name |
对于来自托管包的触发器,trigger_name 包括一个命名空间前缀,该前缀用点 (.) 字符分隔。如果不存在命名空间前缀,则触发器来自非托管触发器。 |
keyword |
||
salesforce.apex.trigger_type |
此触发器的类型。 |
keyword |
||
salesforce.apex.type |
Apex 调用的类型。 |
keyword |
||
salesforce.apex.uri |
接收请求的页面的 URI。 |
keyword |
||
salesforce.apex.uri_derived_id |
接收请求的页面的 URI 的 18 个字符大小写安全 ID。 |
keyword |
||
salesforce.apex.user_agent |
用于发出请求的客户端类型(例如,浏览器、应用程序或 API)的数字代码。 |
keyword |
||
salesforce.apex.user_id_derived |
通过 UI 或 API 使用 Salesforce 服务的用户的 18 个字符大小写安全 ID。 |
keyword |
||
salesforce.instance_url |
Salesforce 实例 URL。 |
keyword |
登录
编辑login
数据流捕获有关 Salesforce 组织内用户登录历史的事件。此数据流提供有关用户身份验证活动的见解,帮助您监控和分析登录模式、检测异常情况并确保安全合规性。
示例
以下是 login
的示例事件
{ "@timestamp": "2022-11-22T04:46:15.591Z", "agent": { "ephemeral_id": "b02f2751-9a38-4438-8b75-937262b340bc", "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "name": "docker-fleet-agent", "type": "filebeat", "version": "8.14.0" }, "data_stream": { "dataset": "salesforce.login", "namespace": "ep", "type": "logs" }, "ecs": { "version": "8.11.0" }, "elastic_agent": { "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "snapshot": false, "version": "8.14.0" }, "event": { "action": "login-attempt", "agent_id_status": "verified", "category": [ "authentication" ], "dataset": "salesforce.login", "ingested": "2024-06-21T16:46:09Z", "kind": "event", "module": "salesforce", "original": "{\"API_TYPE\":\"f\",\"API_VERSION\":\"9998.0\",\"AUTHENTICATION_METHOD_REFERENCE\":\"\",\"BROWSER_TYPE\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36\",\"CIPHER_SUITE\":\"ECDHE-RSA-AES256-GCM-SHA384\",\"CLIENT_IP\":\"81.2.69.142\",\"CPU_TIME\":\"30\",\"DB_TOTAL_TIME\":\"52435102\",\"EVENT_TYPE\":\"Login\",\"LOGIN_KEY\":\"QfNecrLXSII6fsBq\",\"LOGIN_STATUS\":\"LOGIN_NO_ERROR\",\"ORGANIZATION_ID\":\"00D5j000000VI3n\",\"REQUEST_ID\":\"4ehU_U-nbQyAPFl1cJILm-\",\"REQUEST_STATUS\":\"Success\",\"RUN_TIME\":\"83\",\"SESSION_KEY\":\"\",\"SOURCE_IP\":\"81.2.69.142\",\"TIMESTAMP\":\"20221122044615.591\",\"TIMESTAMP_DERIVED\":\"2022-11-22T04:46:15.591Z\",\"TLS_PROTOCOL\":\"TLSv1.2\",\"URI\":\"/index.jsp\",\"URI_ID_DERIVED\":\"s4heK3WbH-lcJIL3-n\",\"USER_ID\":\"0055j000000utlP\",\"USER_ID_DERIVED\":\"0055j000000utlPAAQ\",\"USER_NAME\":\"[email protected]\",\"USER_TYPE\":\"Standard\"}", "outcome": "success", "provider": "EventLogFile", "type": [ "info" ], "url": "/index.jsp" }, "host": { "architecture": "x86_64", "containerized": true, "hostname": "docker-fleet-agent", "id": "345c85cf1fe945e2b19719b370c09a48", "ip": [ "192.168.251.7" ], "mac": [ "02-42-C0-A8-FB-07" ], "name": "docker-fleet-agent", "os": { "codename": "focal", "family": "debian", "kernel": "3.10.0-1160.114.2.el7.x86_64", "name": "Ubuntu", "platform": "ubuntu", "type": "linux", "version": "20.04.6 LTS (Focal Fossa)" } }, "input": { "type": "salesforce" }, "related": { "ip": [ "81.2.69.142" ] }, "salesforce": { "instance_url": "http://elastic-package-service-salesforce-1:8010", "login": { "api": { "type": "Feed", "version": "9998.0" }, "client": { "ip": "81.2.69.142" }, "cpu_time": 30, "db_total_time": 52435102, "event_type": "Login", "key": "QfNecrLXSII6fsBq", "organization_id": "00D5j000000VI3n", "request": { "id": "4ehU_U-nbQyAPFl1cJILm-", "status": "Success" }, "run_time": 83, "uri": { "id": "s4heK3WbH-lcJIL3-n" }, "user_id": "0055j000000utlP" } }, "source": { "geo": { "city_name": "London", "continent_name": "Europe", "country_iso_code": "GB", "country_name": "United Kingdom", "location": { "lat": 51.5142, "lon": -0.0931 }, "region_iso_code": "GB-ENG", "region_name": "England" }, "ip": "81.2.69.142" }, "tags": [ "preserve_original_event", "salesforce-login" ], "tls": { "cipher": "ECDHE-RSA-AES256-GCM-SHA384", "version": "1.2", "version_protocol": "TLS" }, "user": { "email": "[email protected]", "id": "0055j000000utlPAAQ", "roles": [ "Standard" ] }, "user_agent": { "device": { "name": "Other" }, "name": "Chrome", "os": { "full": "Windows 10", "name": "Windows", "version": "10" } } }
导出的字段
字段 | 描述 | 类型 | 单位 | 指标类型 |
---|---|---|---|---|
@timestamp |
事件时间戳。 |
日期 |
||
data_stream.dataset |
数据流数据集。 |
constant_keyword |
||
data_stream.namespace |
数据流命名空间。 |
constant_keyword |
||
data_stream.type |
数据流类型。 |
constant_keyword |
||
input.type |
输入类型。 |
keyword |
||
salesforce.instance_url |
Salesforce 实例的实例 URL。 |
keyword |
||
salesforce.login.additional_info |
在登录请求期间从 HTTP 标头捕获的其他信息。 |
match_only_text |
||
salesforce.login.api.type |
Salesforce API 请求的类型。 |
keyword |
||
salesforce.login.api.version |
用于登录请求的 Salesforce API 版本。 |
keyword |
||
salesforce.login.application |
用于访问 Salesforce 组织的应用程序。 |
keyword |
||
salesforce.login.auth.method_reference |
第三方身份提供商使用 OpenID Connect 协议进行 SSO 的身份验证方法引用。此字段在 API 版本 51.0 及更高版本中可用。 |
keyword |
||
salesforce.login.auth.service_id |
第三方身份提供商使用 OpenID Connect 协议进行单点登录 (SSO) 的身份验证服务 ID。 |
keyword |
||
salesforce.login.client.ip |
使用 Salesforce 服务的客户端的 IP 地址。内部 Salesforce IP 地址显示为“Salesforce.com IP”。 |
ip |
||
salesforce.login.client_version |
用于登录请求的客户端版本。 |
keyword |
||
salesforce.login.cpu_time |
完成登录请求所用的 CPU 时间(以毫秒为单位),表示应用程序服务器层中的活动量。 |
长整型 |
毫秒 |
仪表 |
salesforce.login.db_total_time |
登录期间数据库往返的时间(以纳秒为单位),包括在 JDBC 驱动程序、网络和数据库 CPU 时间中花费的时间。 |
长整型 |
nanos |
仪表 |
salesforce.login.evaluation_time |
评估事务安全策略所花费的时间,以毫秒为单位。此字段在 API 版本 46.0 及更高版本中可用。 |
double |
毫秒 |
仪表 |
salesforce.login.event_type |
事件的类型。对于登录事件,该值始终为“Login”。 |
keyword |
||
salesforce.login.geo_id |
与用户登录期间的 IP 地址关联的 LoginGeo 对象的 Salesforce ID。 |
keyword |
||
salesforce.login.history_id |
跟踪用户会话的标识符,允许将用户活动与特定的登录实例相关联。 |
keyword |
||
salesforce.login.key |
将给定用户登录会话中的所有事件连接在一起的字符串,从登录事件开始,到注销事件或用户会话过期结束。 |
keyword |
||
salesforce.login.organization_id |
Salesforce 组织的 15 个字符的 ID。 |
keyword |
||
salesforce.login.related_event_identifier |
与登录事件关联的相关事件的标识符。 |
keyword |
||
salesforce.login.request.id |
登录请求事务的唯一标识符。 |
keyword |
||
salesforce.login.request.status |
登录请求的状态(例如,成功、失败)。 |
keyword |
||
salesforce.login.run_time |
登录请求所用的总时间(以毫秒为单位)。 |
长整型 |
毫秒 |
仪表 |
salesforce.login.transaction_security.policy.id |
用于评估登录事件的事务安全策略的 ID。 |
keyword |
||
salesforce.login.transaction_security.policy.outcome |
事务安全策略评估的结果(例如,阻止、通知、不操作)。 |
keyword |
||
salesforce.login.type |
用于访问会话的登录类型。 |
keyword |
||
salesforce.login.uri.id |
接收登录请求的页面的 URI 的 18 个字符不区分大小写的 ID。 |
keyword |
||
salesforce.login.user_id |
登录到 Salesforce 的用户的 15 个字符的 ID。 |
keyword |
注销
编辑logout
数据流捕获有关 Salesforce 组织内用户注销历史的事件。此数据流提供有关用户身份验证活动的见解,帮助您监控和分析注销模式、检测异常情况并确保安全合规性。
示例
以下是 logout
的示例事件
{ "@timestamp": "2022-11-22T07:37:25.779Z", "agent": { "ephemeral_id": "222f4fde-1141-42af-adaf-4b86e6aa9c18", "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "name": "docker-fleet-agent", "type": "filebeat", "version": "8.14.0" }, "data_stream": { "dataset": "salesforce.logout", "namespace": "ep", "type": "logs" }, "ecs": { "version": "8.11.0" }, "elastic_agent": { "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "snapshot": false, "version": "8.14.0" }, "event": { "action": "logout", "agent_id_status": "verified", "category": [ "authentication" ], "code": "4exLFFQZ1234xFl1cJNwOV", "dataset": "salesforce.logout", "ingested": "2024-06-21T16:47:21Z", "kind": "event", "module": "salesforce", "original": "{\"API_TYPE\":\"f\",\"API_VERSION\":\"54.0\",\"APP_TYPE\":\"1000\",\"BROWSER_TYPE\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36\",\"CLIENT_IP\":\"81.2.69.142\",\"CLIENT_VERSION\":\"9998\",\"EVENT_TYPE\":\"Logout\",\"LOGIN_KEY\":\"Obv9123BzbaxqCo1\",\"ORGANIZATION_ID\":\"00D5j001234VI3n\",\"PLATFORM_TYPE\":\"1015\",\"REQUEST_ID\":\"4exLFFQZ1234xFl1cJNwOV\",\"RESOLUTION_TYPE\":\"9999\",\"SESSION_KEY\":\"WvtsJ1235oW24EbH\",\"SESSION_LEVEL\":\"1\",\"SESSION_TYPE\":\"O\",\"TIMESTAMP\":\"20221122073725.779\",\"TIMESTAMP_DERIVED\":\"2022-11-22T07:37:25.779Z\",\"USER_ID\":\"0055j000000utlP\",\"USER_ID_DERIVED\":\"0055j000000utlPAAQ\",\"USER_INITIATED_LOGOUT\":\"0\",\"USER_TYPE\":\"S\"}", "provider": "EventLogFile", "type": [ "info" ] }, "host": { "architecture": "x86_64", "containerized": true, "hostname": "docker-fleet-agent", "id": "345c85cf1fe945e2b19719b370c09a48", "ip": [ "192.168.251.7" ], "mac": [ "02-42-C0-A8-FB-07" ], "name": "docker-fleet-agent", "os": { "codename": "focal", "family": "debian", "kernel": "3.10.0-1160.114.2.el7.x86_64", "name": "Ubuntu", "platform": "ubuntu", "type": "linux", "version": "20.04.6 LTS (Focal Fossa)" } }, "input": { "type": "salesforce" }, "related": { "ip": [ "81.2.69.142" ] }, "salesforce": { "instance_url": "http://elastic-package-service-salesforce-1:8010", "logout": { "api": { "type": "Feed", "version": "54.0" }, "app_type": "Application", "browser_type": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36", "client_version": "9998", "event_type": "Logout", "login_key": "Obv9123BzbaxqCo1", "organization_id": "00D5j001234VI3n", "platform_type": "Windows 10", "resolution_type": "9999", "session": { "level": "Standard Session", "type": "Oauth2" }, "user": { "roles": [ "Standard" ] }, "user_id": "0055j000000utlP", "user_initiated_logout": "0" } }, "source": { "geo": { "city_name": "London", "continent_name": "Europe", "country_iso_code": "GB", "country_name": "United Kingdom", "location": { "lat": 51.5142, "lon": -0.0931 }, "region_iso_code": "GB-ENG", "region_name": "England" }, "ip": "81.2.69.142" }, "tags": [ "preserve_original_event", "salesforce-logout" ], "user": { "id": "0055j000000utlPAAQ" } }
导出的字段
字段 | 描述 | 类型 |
---|---|---|
@timestamp |
事件时间戳。 |
日期 |
data_stream.dataset |
数据流数据集。 |
constant_keyword |
data_stream.namespace |
数据流命名空间。 |
constant_keyword |
data_stream.type |
数据流类型。 |
constant_keyword |
input.type |
输入类型。 |
keyword |
salesforce.instance_url |
Salesforce 实例的实例 URL。 |
keyword |
salesforce.logout.api.type |
Salesforce API 请求的类型。 |
keyword |
salesforce.logout.api.version |
正在使用的 Salesforce API 的版本。 |
keyword |
salesforce.logout.app_type |
注销时正在使用的应用程序类型。 |
keyword |
salesforce.logout.browser_type |
登录时使用的浏览器返回的标识符字符串。 |
keyword |
salesforce.logout.client_version |
注销时正在使用的客户端版本。 |
keyword |
salesforce.logout.event_identifier |
仅当此事件监控的活动需要额外的身份验证时(例如,多因素身份验证),才会填充此字段。在这种情况下,Salesforce 会生成更多事件,并将新事件的 RelatedEventIdentifier 字段设置为原始事件的 EventIdentifier 字段的值。将此字段与 EventIdentifier 字段一起使用,以关联所有相关事件。如果不需要额外的身份验证,则此字段为空白。 |
keyword |
salesforce.logout.event_type |
事件的类型。该值始终为 Logout。 |
keyword |
salesforce.logout.login_key |
将给定用户登录会话中的所有事件联系在一起的字符串。它以登录事件开始,并以注销事件或用户会话过期结束。 |
keyword |
salesforce.logout.organization_id |
组织的 15 个字符的 ID。 |
keyword |
salesforce.logout.platform_type |
客户端平台的代码。如果超时导致注销,则此字段为 null。 |
keyword |
salesforce.logout.resolution_type |
客户端的屏幕分辨率。如果超时导致注销,则此字段为 null。 |
keyword |
salesforce.logout.session.key |
用户的唯一会话 ID。可以使用此值来识别会话中的所有用户事件。当用户注销并再次登录时,将启动新的会话。 |
keyword |
salesforce.logout.session.level |
注销时使用的会话的安全级别(例如,标准会话或高保障会话)。 |
keyword |
salesforce.logout.session.type |
注销时使用的会话类型(例如,API、Oauth2 或 UI)。 |
keyword |
salesforce.logout.user.roles |
通过 UI 或 API 使用 Salesforce 服务的用户的角色。 |
keyword |
salesforce.logout.user_id |
通过 UI 或 API 使用 Salesforce 服务的用户的 15 个字符的 ID。 |
keyword |
salesforce.logout.user_id_derived |
通过 UI 或 API 使用 Salesforce 服务的用户的 18 个字符大小写安全 ID。 |
keyword |
salesforce.logout.user_initiated_logout |
如果用户通过单击“注销”按钮有意注销组织,则该值为 true。如果用户的会话由于不活动或其他隐式注销操作而超时,则该值为 false。 |
布尔值 |
设置审核跟踪
编辑setupaudittrail
数据流捕获并记录用户在组织“设置”区域中所做的更改。默认情况下,它会收集过去一周的数据,但用户可以通过调整配置中的初始间隔来配置它以收集过去 180 天的数据。
示例
以下是 setupaudittrail
的示例事件
{ "@timestamp": "2022-08-16T09:26:38.000Z", "agent": { "ephemeral_id": "8a1bedda-17d6-4895-b914-851f067b9106", "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "name": "docker-fleet-agent", "type": "filebeat", "version": "8.14.0" }, "data_stream": { "dataset": "salesforce.setupaudittrail", "namespace": "ep", "type": "logs" }, "ecs": { "version": "8.11.0" }, "elastic_agent": { "id": "ea40bcb3-cd35-4db9-b0d3-81d94e75b64d", "snapshot": false, "version": "8.14.0" }, "event": { "action": "insertConnectedApplication", "agent_id_status": "verified", "created": "2022-08-16T09:26:38.000Z", "dataset": "salesforce.setupaudittrail", "id": "0Ym5j000019nwonCAA", "ingested": "2024-06-21T16:40:13Z", "kind": "event", "module": "salesforce", "original": "{\"Action\":\"insertConnectedApplication\",\"CreatedByContext\":\"Einstein\",\"CreatedById\":\"0055j000000utlPAAQ\",\"CreatedDate\":\"2022-08-16T09:26:38.000+0000\",\"DelegateUser\":\"user1\",\"Display\":\"For user [email protected], the User Verified Email status changed to verified\",\"Id\":\"0Ym5j000019nwonCAA\",\"Section\":\"Connected Apps\"}", "provider": "Object", "type": [ "admin" ] }, "host": { "architecture": "x86_64", "containerized": true, "hostname": "docker-fleet-agent", "id": "345c85cf1fe945e2b19719b370c09a48", "ip": [ "192.168.251.7" ], "mac": [ "02-42-C0-A8-FB-07" ], "name": "docker-fleet-agent", "os": { "codename": "focal", "family": "debian", "kernel": "3.10.0-1160.114.2.el7.x86_64", "name": "Ubuntu", "platform": "ubuntu", "type": "linux", "version": "20.04.6 LTS (Focal Fossa)" } }, "input": { "type": "salesforce" }, "salesforce": { "instance_url": "http://elastic-package-service-salesforce-1:8010", "setup_audit_trail": { "created_by_context": "Einstein", "created_by_id": "0055j000000utlPAAQ", "delegate_user": "user1", "display": "For user [email protected], the User Verified Email status changed to verified", "section": "Connected Apps" } }, "tags": [ "preserve_original_event", "salesforce-setupaudittrail" ], "user": { "id": "0055j000000utlPAAQ", "name": "[email protected]" } }
导出的字段
字段 | 描述 | 类型 |
---|---|---|
@timestamp |
事件时间戳。 |
日期 |
data_stream.dataset |
数据流数据集。 |
constant_keyword |
data_stream.namespace |
数据流命名空间。 |
constant_keyword |
data_stream.type |
数据流类型。 |
constant_keyword |
input.type |
输入类型。 |
keyword |
salesforce.instance_url |
Salesforce 实例的实例 URL。 |
keyword |
salesforce.setup_audit_trail.created_by_context |
进行设置更改的上下文。例如,如果 Einstein 使用云到云服务来更改设置,则此字段的值为 Einstein。 |
keyword |
salesforce.setup_audit_trail.created_by_id |
进行设置更改的 ID。例如,如果 Einstein 使用云到云服务来更改设置,则此字段的值为 Einstein 的 ID。 |
keyword |
salesforce.setup_audit_trail.created_by_issuer |
保留供将来使用。 |
keyword |
salesforce.setup_audit_trail.delegate_user |
在“设置”中执行操作的“以...身份登录”用户。如果“以...身份登录”用户未执行该操作,则此字段为空白。此字段在 API 版本 35.0 及更高版本中可用。 |
keyword |
salesforce.setup_audit_trail.display |
对“设置”中所做更改的完整描述。例如,如果“操作”字段的值为 PermSetCreate,“显示”字段的值类似于“创建了权限集 MAD: 使用用户许可证 Salesforce”。 |
keyword |
salesforce.setup_audit_trail.responsible_namespace_prefix |
未知 |
keyword |
salesforce.setup_audit_trail.section |
执行操作的“设置”菜单中的部分。例如,管理用户或公司资料。 |
keyword |
更新日志
编辑更新日志
版本 | 详细信息 | Kibana 版本 |
---|---|---|
1.0.0 |
增强 (查看拉取请求) 增强 (查看拉取请求) 增强 (查看拉取请求) |
8.16.0 或更高版本 |
0.15.1 |
增强 (查看拉取请求) |
— |
0.15.0 |
重大变更 (查看拉取请求) 增强 (查看拉取请求) |
— |
0.14.1 |
增强 (查看拉取请求) |
— |
0.14.0 |
增强 (查看拉取请求) |
— |
0.13.1 |
错误修复 (查看拉取请求) |
— |
0.13.0 |
增强 (查看拉取请求) |
— |
0.12.1 |
错误修复 (查看拉取请求) |
— |
0.12.0 |
增强 (查看拉取请求) |
— |
0.11.0 |
增强 (查看拉取请求) |
— |
0.10.1 |
增强 (查看拉取请求) |
— |
0.10.0 |
增强 (查看拉取请求) |
— |
0.9.0 |
增强 (查看拉取请求) |
— |
0.8.0 |
增强 (查看拉取请求) |
— |
0.7.0 |
增强 (查看拉取请求) |
— |
0.6.0 |
增强 (查看拉取请求) |
— |
0.5.0 |
增强 (查看拉取请求) |
— |
0.4.1 |
增强 (查看拉取请求) |
— |
0.4.0 |
增强 (查看拉取请求) |
— |
0.3.0 |
增强 (查看拉取请求) |
— |
0.2.1 |
错误修复 (查看拉取请求) |
— |
0.2.0 |
增强 (查看拉取请求) |
— |
0.1.0 |
增强 (查看拉取请求) |
— |