Azure 日志集成(v2 预览版)
编辑Azure 日志集成(v2 预览版)
编辑Azure 日志集成(v2 预览版)从选定的 Azure 服务收集日志,例如 Microsoft Entra ID(登录、审核、身份保护和预配日志)、Azure Spring Apps、Azure 防火墙、Microsoft Graph 活动以及其他几个服务。
然后,您可以在 Kibana 中可视化该数据,在出现问题时创建警报,并在排除问题时引用数据。
例如,要检测可能的暴力登录攻击,您可以安装 Azure 日志集成以将 Azure 登录日志发送到 Elastic。然后,通过在 Elastic 可观测性日志应用程序中设置新规则,当失败的登录尝试次数超过某个阈值时,您可以收到警报。
您可能还希望更好地规划 Azure 容量。将 Azure 活动日志发送到 Elastic,以跟踪和可视化虚拟机因超出配额限制而无法启动的时间。
v2 预览版中的新增功能?
编辑Azure 日志集成(v2 预览版)引入了一种新架构,允许您将来自多个 Azure 服务的日志转发到同一个事件中心。
┌─────────────────┐ │ activity logs │ ┌─▶│ <<data stream>> │ │ └─────────────────┘ │ ┌───────────────┐ ┌─────────────┐ ┌─────────────────┐ │ ┌─────────────────┐ │ logs │ │ Elastic │ │ events (router) │ │ │ firewall logs │ │ <<event hub>> │──▶│ Agent │─▶│ <<data stream>> │──┼─▶│ <<data stream>> │ └───────────────┘ └─────────────┘ └─────────────────┘ │ └─────────────────┘ │ │ ┌─────────────────┐ │ │ signin logs │ └─▶│ <<data stream>> │ └─────────────────┘
该集成将自动检测日志类别,并将日志转发到相应的数据流。当集成 v2 预览版找不到与日志类别匹配的数据流时,它会将日志转发到平台日志数据流。
要使用 v2 预览版,您必须关闭所有现有的 v1 集成,并且仅打开 v2 预览版集成。
在底层,v2 预览版每个事件中心仅使用一个 azure-eventhub
输入。v2 预览版避免了使用同一事件中心的多个输入所导致的争用和效率低下,这在 v1 架构中很常见。使用 v2 预览版,您仍然可以将代理策略分配给多个 Elastic Agent 以扩展日志处理。
数据流
编辑Azure 日志集成(v2 预览版)收集日志。
日志可帮助您记录 Azure 帐户上发生的事件。Azure 日志集成收集的日志数据流包括活动、平台、Microsoft Entra ID(登录、审核、身份保护、预配)、Microsoft Graph 活动和 Spring Apps 日志。
要求
编辑您需要 Elasticsearch 来存储和搜索数据,并需要 Kibana 来可视化和管理数据。您可以使用我们在 Elastic Cloud 上的推荐托管 Elasticsearch 服务,或者在您的硬件上自行管理 Elastic Stack。
在使用 Azure 集成之前,您需要
- 一个或多个 诊断设置,用于将日志从 Azure 服务导出到事件中心。
- 一个 事件中心,用于存储 Azure 服务导出的正在传输中的日志,并使其可用于 Elastic Agent。
- 一个 存储帐户容器,用于存储每个分区的事件中心检查点信息。
诊断设置
编辑Azure 诊断设置允许您将指标和日志从 源 服务(或资源)导出到一个 目标,以便进行分析和长期存储。
┌────────────────────┐ ┌──────────────┐ ┌─────────────────┐ │ Microsoft Entra ID │ │ Diagnostic │ │ Event Hub │ │ <<source>> │─────▶│ settings │────▶│ <<destination>> │ └────────────────────┘ └──────────────┘ └─────────────────┘
源服务示例
- Azure Monitor
- Microsoft Entra ID
- Azure 防火墙
诊断设置支持多种目标类型。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 小于 300 字节),并且访问频率相对较高。Elastic 建议使用热存储层。
只要您需要使用 Elastic Agent 运行集成,就需要保留存储帐户容器。如果您删除存储帐户容器,Elastic Agent 将停止工作,并在下次启动时创建一个新的容器。通过删除存储帐户容器,Elastic Agent 将丢失对最后处理的消息的跟踪,并开始从事件中心保留期的开头处理消息。
设置
编辑使用 Azure 日志集成(v2 预览版),您可以将来自多个 Azure 服务的日志转发到同一个事件中心。该集成将自动检测日志类别,并将日志转发到相应的数据流。
┌─────────────────┐ │ activity logs │ ┌─▶│ <<data stream>> │ │ └─────────────────┘ │ ┌───────────────┐ ┌─────────────┐ ┌─────────────────┐ │ ┌─────────────────┐ │ logs │ │ Elastic │ │ events (router) │ │ │ firewall logs │ │ <<event hub>> │──▶│ Agent │─▶│ <<data stream>> │──┼─▶│ <<data stream>> │ └───────────────┘ └─────────────┘ └─────────────────┘ │ └─────────────────┘ │ │ ┌─────────────────┐ │ │ signin logs │ └─▶│ <<data stream>> │ └─────────────────┘
在添加集成之前,您必须完成以下任务。
创建事件中心
编辑事件中心接收从 Azure 服务导出的日志,并使它们可供 Elastic Agent 读取。
以下是所需步骤的概要
- 创建一个资源组,或选择一个现有的资源组。
- 创建一个事件中心命名空间。
- 创建一个事件中心。
有关详细的分步指南,请查看快速入门 使用 Azure 门户创建事件中心。
记下事件中心的名称,您稍后在集成设置中指定 eventhub 时将使用该名称。
事件中心命名空间与事件中心
编辑在集成设置中,您应该使用事件中心名称(而不是事件中心命名空间名称)作为 事件中心 选项的值。
如果您不熟悉事件中心,请将事件中心命名空间视为集群,将事件中心视为主题。您通常会有一个集群和多个主题。
如果您熟悉 Kafka,以下是两者之间的概念映射
Kafka 概念 | 事件中心概念 |
---|---|
集群 |
命名空间 |
主题 |
事件中心 |
分区 |
分区 |
使用者组 |
使用者组 |
偏移量 |
偏移量 |
需要多少个分区?
编辑分区的数量对于平衡事件中心的成本和性能至关重要。
以下是一些使用一个或多个代理的示例,以及有关为您的用例选择正确的分区数量的建议。
对于单个代理部署,增加事件中心上的分区数量是提高性能的主要因素。Agent 会为每个分区创建一个工作线程。
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ │ │ │ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │ │ partition 0 │◀───────────│ consumer │ │ └─────────────────┘ │ │ └─────────────────┘ │ ┌─────────────────┐ ┌─────────────────┐ │ │ partition 1 │◀──┼────┼───│ consumer │ │ └─────────────────┘ └─────────────────┘ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │ │ partition 2 │◀────────── │ consumer │ │ └─────────────────┘ │ │ └─────────────────┘ │ ┌─────────────────┐ ┌─────────────────┐ │ │ partition 3 │◀──┼────┼───│ consumer │ │ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ │ │ └ Event Hub ─ ─ ─ ─ ─ ─ ─ ┘ └ Agent ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
对于多个代理,设置分区数量至关重要。代理共享现有分区以扩展性能并提高可用性。
分区的数量必须至少等于代理的数量。
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ │ │ ┌─────────────────┐ │ ┌──────│ consumer │ │ ┌─────────────────┐ │ │ │ └─────────────────┘ │ │ partition 0 │◀────┘ ┌─────────────────┐ │ └─────────────────┘ │ ┌──┼───│ consumer │ │ ┌─────────────────┐ │ └─────────────────┘ │ │ partition 1 │◀──┼─┘ │ │ └─────────────────┘ ─Agent─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ┌─────────────────┐ │ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ partition 2 │◀────┐ │ └─────────────────┘ │ │ │ ┌─────────────────┐ │ ┌─────────────────┐ └─────│ consumer │ │ │ partition 3 │◀──┼─┐ │ └─────────────────┘ │ └─────────────────┘ │ ┌─────────────────┐ │ │ └──┼──│ consumer │ │ └─────────────────┘ │ │ │ │ └ Event Hub ─ ─ ─ ─ ─ ─ ─ ┘ └ Agent ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
创建一个至少有两个分区的事件中心。两个分区允许低容量部署支持具有两个代理的高可用性。考虑创建四个或更多分区来处理具有可用性的中等容量部署。
要了解有关事件中心分区的更多信息,请阅读 Microsoft 的深入指南,网址为 快速入门:使用 Azure 门户创建事件中心。
要从性能角度了解有关事件中心分区的更多信息,请查看以可扩展性为重点的文档,网址为 事件中心可扩展性。
需要多少个事件中心?
编辑对于 Azure 日志集成(v2 预览版),Elastic 强烈建议创建一个事件中心并将其用于所有 Azure 服务。
例如,如果您计划收集 Microsoft Entra ID 和 Azure 防火墙日志,请创建一个事件中心并将其用于这两项服务。
以下是该解决方案的概要图
┌────────────────┐ ┌───────────────┐ │ MS Entra ID │ │ Diagnostic │ │ <<service>> │──▶│ Settings │─┐ └────────────────┘ └───────────────┘ │ │ ┌───────────────┐ ┌─────────────┐ │ │ logs │ │ Elastic │ ├─▶│ <<event hub>> │──▶│ Agent │ │ └───────────────┘ └─────────────┘ ┌────────────────┐ ┌───────────────┐ │ │ Azure Firewall │ │ Diagnostic │ │ │ <<service>> │──▶│ Settings │─┘ └────────────────┘ └───────────────┘
Azure 日志集成(v2 预览版)将自动检测日志类别,并将日志转发到相应的数据流。
使用者组
编辑像所有其他事件中心客户端一样,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 可以使用单个存储帐户来存储多个集成的检查点信息。
重要:确保为每个集成使用不同的storage_account_container。Elastic Agent 使用集成名称和事件中心名称来唯一标识包含带有检查点信息的 Blob 的容器。
┌─────────────────────────────────┐ ┌──────────────────────────────────────────┐ │ │ │ │ │ ┌─────────────────────┐ │ │ ┌────────────────────────────────────┐ │ │ │ azure-eventhub │ │ │ │ filebeat-activitylogs-eventhub-1 │ │ │ │ <<input>> │──────┼──────┼─▶│ <<container>> │ │ │ └─────────────────────┘ │ │ └────────────────────────────────────┘ │ │ ┌─────────────────────┐ │ │ ┌────────────────────────────────────┐ │ │ │ azure-eventhub │ │ │ │ filebeat-signinlogs-eventhub-2 │ │ │ │ <<input>> │──────┼──────┼─▶│ <<container>> │ │ │ └─────────────────────┘ │ │ └────────────────────────────────────┘ │ │ ┌─────────────────────┐ │ │ ┌────────────────────────────────────┐ │ │ │ azure-eventhub │ │ │ │ filebeat-auditlogs-eventhub-3 │ │ │ │ <<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 可以通过允许这些端口上的流量来建立与事件中心的安全连接。
有关更多信息,请查看以下文档:
存储帐户容器
编辑Elastic Agent 使用端口 443
与存储帐户容器进行安全通信。通过允许端口 443 上的流量,Elastic Agent 可以安全地访问存储帐户容器并与之交互,这对于存储和检索每个事件中心分区的检查点数据至关重要。
DNS
编辑或者,您可以将流量限制为以下域名:
*.servicebus.windows.net *.blob.core.windows.net *.cloudapp.net
设置
编辑当您将 Azure 日志集成添加到 Fleet 时,请使用以下设置对其进行配置。
eventhub
:字符串 一项完全托管的实时数据引入服务。Elastic 建议事件中心名称仅使用字母、数字和连字符 (-),以最大限度地提高兼容性。您可以使用事件中心名称中带有下划线 (_) 的现有事件中心;在这种情况下,当集成使用事件中心名称在后台创建依赖的 Azure 资源(例如,用于存储事件中心使用者偏移的存储帐户容器)时,会将下划线替换为连字符 (-)。Elastic 还建议为每种日志类型使用单独的事件中心,因为每种日志类型的字段映射不同。默认值:insights-operational-logs
。
consumer_group
:字符串 使用使用者组启用事件中心的发布/订阅机制。使用者组是整个事件中心的视图(状态、位置或偏移)。使用者组使多个消费应用程序能够各自拥有事件流的单独视图,并以自己的步调和偏移独立读取流。默认值:$Default
connection_string
:字符串
与事件中心通信需要连接字符串。有关更多信息,请参阅获取事件中心连接字符串。
需要 Blob 存储帐户来存储/检索/更新事件中心消息的偏移量或状态。这允许集成在停止处理消息时重新启动。
storage_account
:字符串 将存储和更新状态/偏移量的存储帐户的名称。
storage_account_key
:字符串 存储帐户密钥。用于授权访问您的存储帐户中的数据。
storage_account_container
:字符串 集成存储使用者组的检查点数据的存储帐户容器。这是一个高级选项,使用时必须格外小心。您必须为每种 Azure 日志类型(活动、登录、审核日志等)使用专用的存储帐户容器。不要对多个 Azure 日志类型重复使用相同的容器名称。有关 Microsoft 命名规则的详细信息,请参阅容器名称。如果未指定,集成将生成默认容器名称。
resource_manager_endpoint
:字符串 可选。默认情况下,集成使用 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 格式,并导致处理期间出现解析问题。
为了解决此问题,每个数据流的高级设置部分提供了两个清理选项:
- 清理换行符:删除日志中的换行符。
- 清理单引号:将日志中的单引号替换为双引号,但不包括双引号内的单引号。
可以通过以下方式识别格式错误的日志:
- 消息字段中存在记录数组表明无法取消封送字节切片。
error.message
字段包含“从 Azure 云平台接收到无效的 JSON。无法解析源日志消息”文本。
可能生成格式错误的日志的已知数据流:
- 平台日志
- Spring Apps 日志
参考
编辑访问每个 Azure 日志集成的页面,查看有关导出的字段和示例事件的详细信息。
更新日志
编辑更新日志
版本 | 详细信息 | Kibana 版本 |
---|---|---|
1.20.1 |
错误修复(查看拉取请求) |
8.13.0 或更高版本 |
1.20.0 |
增强(查看拉取请求) |
8.13.0 或更高版本 |
1.19.4 |
错误修复(查看拉取请求) |
8.13.0 或更高版本 |
1.19.3 |
错误修复(查看拉取请求) |
8.13.0 或更高版本 |
1.19.2 |
错误修复(查看拉取请求) |
8.13.0 或更高版本 |
1.19.1 |
错误修复(查看拉取请求) |
8.13.0 或更高版本 |
1.18.0 |
增强(查看拉取请求) |
8.13.0 或更高版本 |
1.17.0 |
增强(查看拉取请求) |
8.13.0 或更高版本 |
1.16.0 |
增强(查看拉取请求) |
8.13.0 或更高版本 |
1.15.1 |
错误修复(查看拉取请求) |
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 |
缺陷修复 (查看拉取请求) |
8.12.0 或更高版本 |
1.11.3 |
缺陷修复 (查看拉取请求) |
8.12.0 或更高版本 |
1.11.2 |
缺陷修复 (查看拉取请求) |
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 |
缺陷修复 (查看拉取请求) |
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 |
缺陷修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.32 |
缺陷修复 (查看拉取请求) |
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 |
缺陷修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.26 |
缺陷修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.25 |
缺陷修复 (查看拉取请求) |
8.6.0 或更高版本 |
1.5.24 |
缺陷修复 (查看拉取请求) |
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 |
缺陷修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.9 |
缺陷修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.8 |
缺陷修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.7 |
缺陷修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.6 |
缺陷修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.5.5 |
缺陷修复 (查看拉取请求) |
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 |
Bug 修复 (查看拉取请求) |
— |
1.1.8 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.7 |
Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.6 |
Bug 修复 (查看拉取请求) Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.5 |
增强 (查看拉取请求) |
— |
1.1.4 |
Bug 修复 (查看拉取请求) |
— |
1.1.3 |
增强 (查看拉取请求) |
— |
1.1.2 |
Bug 修复 (查看拉取请求) Bug 修复 (查看拉取请求) |
7.16.0 或更高版本 |
1.1.1 |
Bug 修复 (查看拉取请求) |
— |
1.1.0 |
增强 (查看拉取请求) |
— |
1.0.1 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
1.0.0 |
增强 (查看拉取请求) |
7.16.0 或更高版本 |
0.12.3 |
增强 (查看拉取请求) |
— |
0.12.2 |
Bug 修复 (查看拉取请求) |
— |
0.12.1 |
Bug 修复 (查看拉取请求) |
— |
0.12.0 |
增强 (查看拉取请求) |
— |
0.11.0 |
增强 (查看拉取请求) |
— |
0.10.1 |
增强 (查看拉取请求) |
— |
0.10.0 |
增强 (查看拉取请求) |
— |
0.9.2 |
Bug 修复 (查看拉取请求) |
— |
0.9.1 |
Bug 修复 (查看拉取请求) |
— |
0.9.0 |
增强 (查看拉取请求) |
— |
0.8.6 |
Bug 修复 (查看拉取请求) |
— |
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 |
Bug 修复 (查看拉取请求) |
— |
0.2.1 |
Bug 修复 (查看拉取请求) |
— |
0.2.0 |
增强 (查看拉取请求) |
— |
0.0.1 |
增强 (查看拉取请求) |
— |