是否应针对每个应用程序或每个环境使用Azure Log Analytics和应用程序见解?

问题描述

我们有一个基于Azure的系统,该系统的复杂性正在不断提高,我们需要监视事件链并确保事件到达我们希望它们到达的位置。

我们有一个本地Java应用程序,它将事件发送到IoT中心。 IoT中心路由到服务总线队列。我们具有更新宇宙数据库,触发其他功能或路由到其他队列的功能。某些功能也可以通过API管理实例调用

enter image description here

我们的功能已经连接到Application Insights,在这里Application Insights实例的名称与Function App相同(IIRC的命名是通过创建AI资源的表单建议的)

Application Insights中的应用程序图使我倾向于每个环境使用一个AI,以获取完整的系统图。 Log Analytics在每个环境中使用一个逻辑似乎也很合逻辑,从而能够在需要时关联数据。

分别用于Log Analytics和Application Insights的正确路径是什么?

如果它不如我的标题中所述明确,那么当我开始使用这些服务时我需要考虑哪些因素?

解决方法

正确的实例数量是最适合您的实例,无论它是否完全遵循建议的做法。

建议在每种环境中使用一个工作区,并确保App Insights中的cloud_RoleName可以区分系统的各个部分。 Log Analytics也有类似的考虑。

默认情况下,Functions会将App Insights实例与应用程序一起旋转,因为如果您不使用App Insights,则会失去大多数日志记录功能-将其连接到App Insights很重要,但是要覆盖默认行为并连接到集中式工作空间在大型系统中很常见。

您肯定有理由要分割工作空间,并且可以根据需要跨工作空间合并数据以将数据从Log Analytics和App Insights实例中拉到一起。

  1. 数据访问控制或地理位置。如果您需要将部分数据保留在特定的地理范围内或限制对某些人的访问,请将该部分分开。
  2. 与安全问题类似的是计费问题。如果出于某种原因,需要拆分应用程序不同部分的账单,那么您还希望拆分日志记录部分。
  3. 系统的不同部分很少交互或由不同的团队维护,并且将数据组织到单独的工作空间中将为克服交叉麻烦带来更多好处。
  4. 您将超越single resource的限制。实际上,很少有应用程序达到这些限制,但它们确实存在。