Azure 日志集成
编辑Azure 日志集成
编辑Azure 日志集成使用活动和平台日志收集特定 Azure 服务(如 Microsoft Entra ID(登录、审核、身份保护和预配日志)、Azure Spring Apps、Azure 防火墙、Microsoft Graph 活动以及其他一些服务)的日志。
然后,您可以在 Kibana 中可视化这些数据,在出现问题时创建警报,并在排除问题时参考数据。
例如,要检测可能的暴力登录攻击,您可以安装 Azure 日志集成以将 Azure 登录日志发送到 Elastic。然后,通过在 Elastic 可观测性日志应用中设置新规则,当失败的登录尝试次数超过某个阈值时,您可以收到警报。或者,您可能希望更好地规划 Azure 容量。将 Azure 活动日志发送到 Elastic,以跟踪和可视化虚拟机由于超出配额限制而未能启动的时间。
数据流
编辑Azure 日志集成收集日志。
日志可帮助您记录 Azure 帐户上发生的事件。Azure 日志集成收集的日志数据流包括活动、平台、Microsoft Entra ID(登录、审核、身份保护、预配)、Microsoft Graph 活动和 Spring Apps 日志。
要求
编辑您需要 Elasticsearch 来存储和搜索您的数据,并需要 Kibana 来可视化和管理它。您可以使用我们托管在 Elastic Cloud 上的 Elasticsearch Service(推荐使用),也可以在您自己的硬件上自行管理 Elastic Stack。
在使用 Azure 集成之前,您需要
- 一个或多个 诊断设置,用于将 Azure 服务的日志导出到事件中心。
- 一个或多个 事件中心,用于存储 Azure 服务导出的正在传输中的日志,并使其可用于 Elastic Agent。
- 一个 存储帐户容器,用于存储有关 Elastic Agent 使用的日志的信息。
诊断设置
编辑Azure 诊断设置允许您将来自 源 服务或资源的指标和日志导出到一个 目标,以进行分析和长期存储。
┌──────────────────┐ ┌──────────────┐ ┌─────────────────┐ │Microsoft Entra ID│ │ Diagnostic │ │ Event Hub │ │ <<source>> │─────▶│ settings │────▶│ <<destination>> │ └──────────────────┘ └──────────────┘ └─────────────────┘
源服务示例
- Azure Monitor
- Microsoft Entra ID
- Spring Apps
诊断设置支持多种目标类型。Elastic Agent 需要配置一个以事件中心为目标的诊断设置。
事件中心
编辑Azure 事件中心是一个数据流平台和事件引入服务。它可以接收并临时存储数百万个事件。
使用 Azure 日志集成的 Elastic Agent 将从事件中心服务使用日志。
┌────────────────┐ ┌────────────┐ │ adlogs │ │ Elastic │ │ <<Event Hub>> │─────▶│ Agent │ └────────────────┘ └────────────┘
要了解有关事件中心的更多信息,请参阅 Azure 事件中心的功能和术语。
存储帐户容器
编辑存储帐户是一种通用的 Azure 服务,允许您将数据存储在各种存储类型中,包括 Blob、文件共享、队列、表和磁盘。
Azure 日志集成需要一个存储帐户容器才能工作。集成使用存储帐户容器进行检查点设置;它存储有关使用者组(状态、位置或偏移量)的数据,并在 Elastic Agent 之间共享。共享此类信息允许多个分配给同一代理策略的 Elastic Agent 协同工作;这可以在需要时实现日志处理的水平扩展。
┌────────────────┐ ┌────────────┐ │ adlogs │ logs │ Elastic │ │ <<Event Hub>> │────────────────────▶│ Agent │ └────────────────┘ └────────────┘ │ consumer group info │ ┌────────────────┐ (state, position, or │ │ azurelogs │ offset) │ │ <<container>> │◀───────────────────────────┘ └────────────────┘
Elastic Agent 会自动为每个启用的集成创建一个容器。在容器中,Agent 将为事件中心上的每个现有分区创建一个 Blob。
例如,如果您启用一个集成以从具有四个分区的事件中心获取数据,则 Agent 将创建以下内容
- 一个存储帐户容器。
- 该容器中的四个 Blob。
Blob 中存储的信息很小(通常每个 Blob 小于 500 字节),并且访问频率相对较高。Elastic 建议使用热存储层。
只要您需要使用 Elastic Agent 运行集成,就需要保留存储帐户容器。如果删除存储帐户容器,Elastic Agent 将停止工作,并在下次启动时创建一个新的容器。通过删除存储帐户容器,Elastic Agent 将丢失对上次处理的消息的跟踪,并开始从事件中心保留期的开头处理消息。
设置
编辑Elastic 强烈建议安装单独的集成(“Microsoft Entra ID”日志或“Azure 活动日志”),而不是集体集成(“Azure 日志”)。这允许您为每个 Azure 服务或日志组使用专用事件中心,这是实现最佳性能的推荐方法。
在添加集成之前,您必须完成以下任务。
创建事件中心
编辑事件中心接收从 Azure 服务导出的日志,并使其可供 Elastic Agent 获取。
以下是所需步骤的高级概述
- 创建资源组,或选择现有资源组。
- 创建事件中心命名空间。
- 创建事件中心。
有关详细的分步指南,请查看快速入门 使用 Azure 门户创建事件中心。
记下事件中心的 名称,稍后在集成设置中指定 eventhub 时将使用该名称。
事件中心命名空间与事件中心
编辑您应该使用事件中心名称(而不是事件中心命名空间名称)作为集成设置中 eventhub 选项的值。
如果您不熟悉事件中心,请将事件中心命名空间视为群集,将事件中心视为主题。通常,您将拥有一个群集和多个主题。
如果您熟悉 Kafka,以下是两者之间的概念映射
Kafka 概念 | 事件中心概念 |
---|---|
群集 |
命名空间 |
主题 |
事件中心 |
分区 |
分区 |
使用者组 |
使用者组 |
偏移量 |
偏移量 |
多少个分区?
编辑分区数对于平衡事件中心的成本和性能至关重要。
以下是一些具有一个或多个代理的示例,其中包含有关为您的用例选择正确的分区数的建议。
单个代理
编辑对于单个代理部署,增加事件中心的分区数是提高性能的主要驱动因素。代理为每个分区创建一个工作线程。
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ │ │ │ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │ │ partition 0 │◀───────────│ worker │ │ └─────────────────┘ │ │ └─────────────────┘ │ ┌─────────────────┐ ┌─────────────────┐ │ │ partition 1 │◀──┼────┼───│ worker │ │ └─────────────────┘ └─────────────────┘ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │ │ partition 2 │◀────────── │ worker │ │ └─────────────────┘ │ │ └─────────────────┘ │ ┌─────────────────┐ ┌─────────────────┐ │ │ partition 3 │◀──┼────┼───│ worker │ │ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ │ │ └ Event Hub ─ ─ ─ ─ ─ ─ ─ ┘ └ Agent ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
两个或多个代理
编辑对于多个代理,设置分区数至关重要。代理共享现有分区以扩展性能并提高可用性。
分区数必须至少等于代理数。
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ │ │ ┌─────────────────┐ │ ┌──────│ worker │ │ ┌─────────────────┐ │ │ │ └─────────────────┘ │ │ partition 0 │◀────┘ ┌─────────────────┐ │ └─────────────────┘ │ ┌──┼───│ worker │ │ ┌─────────────────┐ │ └─────────────────┘ │ │ partition 1 │◀──┼─┘ │ │ └─────────────────┘ ─Agent─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ┌─────────────────┐ │ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ partition 2 │◀────┐ │ └─────────────────┘ │ │ │ ┌─────────────────┐ │ ┌─────────────────┐ └─────│ worker │ │ │ partition 3 │◀──┼─┐ │ └─────────────────┘ │ └─────────────────┘ │ ┌─────────────────┐ │ │ └──┼──│ worker │ │ └─────────────────┘ │ │ │ │ └ Event Hub ─ ─ ─ ─ ─ ─ ─ ┘ └ Agent ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
建议
编辑创建一个至少有两个分区的事件中心。两个分区允许低容量部署以支持两个代理的高可用性。考虑创建四个或更多分区以处理具有可用性的中等容量部署。
要了解有关事件中心分区的更多信息,请阅读 Microsoft 的深入指南,网址为 https://learn.microsoft.com/zh-cn/azure/event-hubs/event-hubs-create。
要从性能角度了解有关事件中心分区的更多信息,请查看以可扩展性为重点的文档,网址为 https://learn.microsoft.com/zh-cn/azure/event-hubs/event-hubs-scalability#partitions。
多少个事件中心?
编辑Elastic 强烈建议为从中收集数据的每个 Azure 服务创建一个事件中心。
例如,如果您计划收集 Microsoft Entra ID 日志和活动日志,请创建两个事件中心:一个用于 Microsoft Entra ID,另一个用于活动日志。
以下是该解决方案的高级示意图
┌───────────────┐ ┌──────────────┐ ┌───────────────┐ │ MS Entra ID │ │ Diagnostic │ │ adlogs │ │ <<service>> │──▶│ Settings │──▶│ <<Event Hub>> │──┐ └───────────────┘ └──────────────┘ └───────────────┘ │ ┌───────────┐ │ │ Elastic │ ├──▶│ Agent │ ┌───────────────┐ ┌──────────────┐ ┌───────────────┐ │ └───────────┘ │ Azure Monitor │ │ Diagnostic │ │ activitylogs │ │ │ <<service>> ├──▶│ Settings │──▶│ <<Event Hub>> │──┘ └───────────────┘ └──────────────┘ └───────────────┘
为每个 Azure 服务使用一个事件中心在性能和易于故障排除方面都很有益。
对于高容量部署,我们建议为每个数据流使用一个事件中心
┌──────────────┐ ┌─────────────────────┐ │ Diagnostic │ │ signin (adlogs) │ ┌─▶│ Settings │──▶│ <<Event Hub>> │──┐ │ └──────────────┘ └─────────────────────┘ │ │ │ ┌─────────────┐ │ ┌──────────────┐ ┌─────────────────────┐ │ ┌───────────┐ │ MS Entra ID │ │ │ Diagnostic │ │ audit (adlogs) │ │ │ Elastic │ │ <<service>> │─┼─▶│ Settings │──▶│ <<Event Hub>> │──┼─▶│ Agent │ └─────────────┘ │ └──────────────┘ └─────────────────────┘ │ └───────────┘ │ │ │ ┌──────────────┐ ┌─────────────────────┐ │ │ │ Diagnostic │ │provisioning (adlogs)│ │ └─▶│ Settings │──▶│ <<Event Hub>> │──┘ └──────────────┘ └─────────────────────┘
使用者组
编辑与其他所有事件中心客户端一样,Elastic Agent 需要一个使用者组名称才能访问事件中心。
使用者组是整个事件中心的视图(状态、位置或偏移量)。使用者组允许多个代理分别拥有事件流的单独视图,并以自己的速度和自己的偏移量独立读取日志。
使用者组允许多个分配给同一代理策略的 Elastic Agent 协同工作;这可以在需要时实现日志处理的水平扩展。
在大多数情况下,您可以使用名为 $Default
的默认使用者组。如果其他应用程序已在使用 $Default
,您可以创建一个专用于 Azure 日志集成的使用者组。
连接字符串
编辑Elastic Agent 需要一个连接字符串才能访问事件中心并获取导出的日志。连接字符串包含有关所用事件中心的详细信息以及访问它所需的凭据。
要获取事件中心命名空间的连接字符串
- 访问您在上一步中创建的 事件中心命名空间。
- 选择 设置 > 共享访问策略。
创建一个新的共享访问策略 (SAS)
- 选择 添加 以打开创建面板。
- 添加一个 策略名称(例如,“ElasticAgent”)。
- 选择 侦听 声明。
- 选择 创建。
当 SAS 策略准备就绪后,选择它以显示信息面板。
记下 连接字符串 – 主密钥,稍后在集成设置中指定 connection_string 时将使用该密钥。
创建诊断设置
编辑诊断设置将 Azure 服务的日志导出到目标位置,要使用 Azure 日志集成,目标位置必须是事件中心。
要创建用于导出日志的诊断设置
- 找到该服务的诊断设置(例如,Microsoft Entra ID)。
- 在服务的 监控 部分选择诊断设置。请注意,不同服务的诊断设置可能位于不同的位置。
- 选择 添加诊断设置。
在诊断设置页面中,您必须选择要导出的源 日志类别,然后选择其 目标位置。
选择日志类别
编辑每个 Azure 服务都会导出一组明确定义的日志类别列表。请查看各个集成文档,了解该集成支持哪些日志类别。
选择目标位置
编辑选择您之前创建的 订阅 和 事件中心命名空间。选择专用于此集成的事件中心。
┌───────────────┐ ┌──────────────┐ ┌───────────────┐ ┌───────────┐ │ MS Entra ID │ │ Diagnostic │ │ adlogs │ │ Elastic │ │ <<service>> ├──▶│ Settings │──▶│ <<Event Hub>> │─────▶│ Agent │ └───────────────┘ └──────────────┘ └───────────────┘ └───────────┘
创建存储帐户容器
编辑Elastic Agent 将事件中心检查点信息存储在存储帐户容器中。将检查点信息存储在容器中,可使代理共享消息处理,并在重启后从上次处理的消息恢复。
仅将存储帐户用作检查点存储。
要创建存储帐户
- 登录到 Azure 门户并创建您的存储帐户。
-
在配置项目详细信息时,请确保选择以下建议的默认设置
- 分层命名空间:已禁用
- 最低 TLS 版本:版本 1.2
- 访问层:热
- 启用 Blob 的软删除:已禁用
- 启用容器的软删除:已禁用
- 当新的存储帐户准备就绪后,您需要记下存储帐户名称和存储帐户访问密钥,因为您稍后将使用它们来验证 Elastic 应用程序对此存储帐户的请求。
这是从 Azure Monitor 服务收集活动日志的设置的最终示意图。
┌───────────────┐ ┌──────────────┐ ┌────────────────┐ ┌───────────┐ │ MS Entra ID │ │ Diagnostic │ │ adlogs │ logs │ Elastic │ │ <<service>> ├──▶│ Settings │──▶│ <<Event Hub>> │────────▶│ Agent │ └───────────────┘ └──────────────┘ └────────────────┘ └───────────┘ │ ┌──────────────┐ consumer group info │ │ azurelogs │ (state, position, or │ │<<container>> │◀───────────────offset)──────────────┘ └──────────────┘
需要多少个存储帐户?
编辑Elastic Agent 可以在单个存储帐户上为所有集成创建容器。
Agent 使用 集成名称 和 事件中心名称 来唯一标识包含带有检查点信息的 Blob 的容器。
┌─────────────────────────────────┐ ┌──────────────────────────────────────────┐ │ │ │ │ │ ┌─────────────────────┐ │ │ ┌───────────────────────────────────┐ │ │ │ azure-eventhub │ │ │ │ filebeat-activitylogs-evehub1 │ │ │ │ <<input>> │──────┼──────┼─▶│ <<container>> │ │ │ └─────────────────────┘ │ │ └───────────────────────────────────┘ │ │ ┌─────────────────────┐ │ │ ┌───────────────────────────────────┐ │ │ │ azure-eventhub │ │ │ │ filebeat-signinlogs-evehub1 │ │ │ │ <<input>> │──────┼──────┼─▶│ <<container>> │ │ │ └─────────────────────┘ │ │ └───────────────────────────────────┘ │ │ ┌─────────────────────┐ │ │ ┌───────────────────────────────────┐ │ │ │ azure-eventhub │ │ │ │ filebeat-auditlogs-evehub1 │ │ │ │ <<input>> │──────┼──────┼─▶│ <<container>> │ │ │ └─────────────────────┘ │ │ └───────────────────────────────────┘ │ │ │ │ │ └─Elastic Agent───────────────────┘ └─Storage Account──────────────────────────┘
在防火墙后运行集成
编辑当您在防火墙后运行 Elastic Agent 时,为了确保与必要组件进行适当的通信,您需要在端口 5671
和 5672
上允许事件中心的流量,并在端口 443
上允许存储帐户容器的流量。
┌────────────────────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │ │ │ ┌────────────┐ ┌───────────┐ │ │ ┌──────────────┐ │ │ ┌───────────────┐ │ │ │ diagnostic │ │ event hub │ │ │ │azure-eventhub│ │ │ │ activity logs │ │ │ │ setting │──▶│ │◀┼AMQP─│ <<input>> │─┼──┼▶│<<data stream>>│ │ │ └────────────┘ └───────────┘ │ │ └──────────────┘ │ │ └───────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌─────────────┬─────HTTPS─┼──────────┘ │ │ │ │ ┌───────┼─────────────┼──────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ │ │ └─Agent─────────────┘ └─Elastic Cloud─────┘ │ │ ┌──────────┐ ┌──────────┐ │ │ │ │ │ 0 │ │ 1 │ │ │ │ │ │ <<blob>> │ │ <<blob>> │ │ │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ │ │ │ │ │ └─Storage Account Container──┘ │ │ │ │ │ └─Azure──────────────────────────┘
事件中心
编辑端口 5671
和 5672
通常用于与事件中心进行安全通信。这些端口用于接收事件。通过允许这些端口上的流量,Elastic Agent 可以与事件中心建立安全连接。
有关更多信息,请查看以下文档
存储帐户容器
编辑端口 443
用于与存储帐户容器进行安全通信。此端口通常用于 HTTPS 流量。通过允许端口 443 上的流量,Elastic Agent 可以安全地访问和与存储帐户容器交互,这对于存储和检索每个事件中心分区的检查点数据至关重要。
DNS
编辑(可选)您可以将流量限制为以下域名
*.servicebus.windows.net *.blob.core.windows.net *.cloudapp.net
设置
编辑将 Azure 日志集成添加到 Fleet 时,请使用以下设置进行配置。
eventhub
: string 一种完全托管的实时数据引入服务。Elastic 建议仅使用字母、数字和连字符 (-) 作为事件中心名称,以最大限度地提高兼容性。您可以使用事件中心名称中带有下划线 (_) 的现有事件中心;在这种情况下,当集成使用事件中心名称在后台创建依赖的 Azure 资源(例如,用于存储事件中心使用者偏移量的存储帐户容器)时,会将下划线替换为连字符 (-)。Elastic 还建议为每种日志类型使用单独的事件中心,因为每种日志类型的字段映射都不同。默认值 insights-operational-logs
。
consumer_group
: string 使用使用者组启用事件中心的发布/订阅机制。使用者组是整个事件中心的视图(状态、位置或偏移量)。使用者组允许多个使用者应用程序各自拥有事件流的单独视图,并以自己的步调和偏移量独立读取流。默认值:$Default
connection_string
: string
与事件中心通信所需的连接字符串。有关更多信息,请参阅 获取事件中心连接字符串。
需要 Blob 存储帐户来存储/检索/更新事件中心消息的偏移量或状态。这允许集成在停止处理消息的位置重新启动。
storage_account
: string 将存储和更新状态/偏移量的存储帐户的名称。
storage_account_key
: string 存储帐户密钥。用于授权访问存储帐户中的数据。
storage_account_container
: string 集成在其中存储使用者组检查点数据的存储帐户容器。这是一个高级选项,使用时必须格外小心。您必须为每种 Azure 日志类型(活动、登录、审核日志等)使用专用的存储帐户容器。请勿为多个 Azure 日志类型重复使用相同的容器名称。有关 Microsoft 命名规则的详细信息,请参阅 容器名称。如果未指定,集成将生成默认容器名称。
resource_manager_endpoint
: string 可选。默认情况下,集成使用 Azure 公共环境。要覆盖此设置并使用不同的 Azure 环境,用户可以提供特定的资源管理器终结点
示例
- Azure 中国云:
https://management.chinacloudapi.cn/
- Azure 德国云:
https://management.microsoftazure.de/
- Azure 公共云:
https://management.azure.com/
- Azure 美国政府云:
https://management.usgovcloudapi.net/
此设置还可用于定义您自己的终结点,例如用于混合云模型。
处理 Azure 日志中的格式错误的 JSON
编辑观察到 Azure 服务偶尔会发送 格式错误的 JSON 文档。这些日志可能会扰乱预期的 JSON 格式,并导致在处理过程中出现解析问题。
为解决此问题,每个数据流的高级设置部分都提供了两个清理选项
- 清理换行符:删除日志中的换行符。
- 清理单引号:将日志中的单引号替换为双引号,但不包括双引号内出现的单引号。
格式错误的日志可以通过以下方式识别
- 消息字段中存在 records 数组,表示无法解组字节切片。
- 存在包含文本“Received invalid JSON from the Azure Cloud platform. Unable to parse the source log message.”的 error.message 字段。
可能产生格式错误日志的已知数据流
- 平台日志
- Spring Apps 日志
参考
编辑访问每个单独的 Azure 日志集成的页面,以查看有关导出字段和示例事件的详细信息。
更新日志
编辑更新日志
版本 | 详细信息 | Kibana 版本 |
---|---|---|
1.20.1 |
Bug 修复 (查看拉取请求) |
8.13.0 或更高版本 |
1.20.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.19.4 |
Bug 修复 (查看拉取请求) |
8.13.0 或更高版本 |
1.19.3 |
Bug 修复 (查看拉取请求) |
8.13.0 或更高版本 |
1.19.2 |
Bug 修复 (查看拉取请求) |
8.13.0 或更高版本 |
1.19.1 |
Bug 修复 (查看拉取请求) |
8.13.0 或更高版本 |
1.18.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.17.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.16.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.15.1 |
Bug 修复 (查看拉取请求) |
8.13.0 或更高版本 |
1.15.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.14.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.13.1 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.13.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.12.0 |
增强 (查看拉取请求) 重大变更 (查看拉取请求) |
8.13.0 或更高版本 |
1.11.4 |
Bug 修复 (查看拉取请求) |
8.12.0 或更高版本 |
1.11.3 |
Bug 修复 (查看拉取请求) |
8.12.0 或更高版本 |
1.11.2 |
Bug 修复 (查看拉取请求) |
8.12.0 或更高版本 |
1.11.1 |
增强 (查看拉取请求) |
8.12.0 或更高版本 |
1.11.0 |
增强 (查看拉取请求) |
8.12.0 或更高版本 |
1.10.0 |
增强 (查看拉取请求) |
8.12.0 或更高版本 |
1.9.2 |
增强 (查看拉取请求) |
8.12.0 或更高版本 |
1.9.1 |
Bug 修复 (查看拉取请求) |
8.12.0 或更高版本 |
1.9.0 |
增强 (查看拉取请求) |
8.12.0 或更高版本 |
1.8.3 |
增强 (查看拉取请求) |
8.8.0 或更高版本 |
1.8.2 |
增强 (查看拉取请求) |
8.8.0 或更高版本 |
1.8.1 |
增强 (查看拉取请求) |
8.8.0 或更高版本 |
1.8.0 |
增强 (查看拉取请求) |
8.8.0 或更高版本 |
1.7.0 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.6.0 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.33 |
Bug 修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.32 |
Bug 修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.31 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.30 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.29 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.28 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.27 |
Bug 修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.26 |
Bug 修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.25 |
Bug 修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.24 |
Bug 修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.23 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.22 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.21 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.20 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.17 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.16 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.15 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.14 |
增强 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.13 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.12 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.11 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.10 |
Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.9 |
Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.8 |
Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.7 |
Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.6 |
Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.5 |
Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.4 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.3 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.2 |
错误修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.1 |
错误修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.0 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.4.1 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.4.0 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.3.0 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.2.3 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.2.2 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.2.1 |
错误修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.2.0 |
增强 (查看拉取请求) |
— |
1.1.11 |
错误修复 (查看拉取请求) |
— |
1.1.10 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.9 |
错误修复 (查看拉取请求) |
— |
1.1.8 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.7 |
错误修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.6 |
错误修复 (查看拉取请求) 错误修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.5 |
增强 (查看拉取请求) |
— |
1.1.4 |
错误修复 (查看拉取请求) |
— |
1.1.3 |
增强 (查看拉取请求) |
— |
1.1.2 |
错误修复 (查看拉取请求) 错误修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.1 |
错误修复 (查看拉取请求) |
— |
1.1.0 |
增强 (查看拉取请求) |
— |
1.0.1 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.0.0 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
0.12.3 |
增强 (查看拉取请求) |
— |
0.12.2 |
错误修复 (查看拉取请求) |
— |
0.12.1 |
错误修复 (查看拉取请求) |
— |
0.12.0 |
增强 (查看拉取请求) |
— |
0.11.0 |
增强 (查看拉取请求) |
— |
0.10.1 |
增强 (查看拉取请求) |
— |
0.10.0 |
增强 (查看拉取请求) |
— |
0.9.2 |
错误修复 (查看拉取请求) |
— |
0.9.1 |
错误修复 (查看拉取请求) |
— |
0.9.0 |
增强 (查看拉取请求) |
— |
0.8.6 |
错误修复 (查看拉取请求) |
— |
0.8.5 |
增强 (查看拉取请求) |
— |
0.8.4 |
增强 (查看拉取请求) |
— |
0.8.3 |
增强 (查看拉取请求) |
— |
0.8.2 |
增强 (查看拉取请求) |
— |
0.8.1 |
增强 (查看拉取请求) |
— |
0.8.0 |
增强 (查看拉取请求) |
— |
0.7.0 |
增强 (查看拉取请求) |
— |
0.6.2 |
增强 (查看拉取请求) |
— |
0.6.1 |
增强 (查看拉取请求) |
— |
0.6.0 |
增强 (查看拉取请求) |
— |
0.5.1 |
增强 (查看拉取请求) |
— |
0.5.0 |
增强 (查看拉取请求) |
— |
0.4.0 |
增强 (查看拉取请求) |
— |
0.3.1 |
增强 (查看拉取请求) |
— |
0.3.0 |
增强 (查看拉取请求) |
— |
0.2.3 |
增强 (查看拉取请求) |
— |
0.2.2 |
错误修复 (查看拉取请求) |
— |
0.2.1 |
错误修复 (查看拉取请求) |
— |
0.2.0 |
增强 (查看拉取请求) |
— |
0.0.1 |
增强 (查看拉取请求) |
— |