使用 Elastic Agent 监控 Microsoft Azure

编辑

使用 Elastic Agent 监控 Microsoft Azure编辑

在本教程中,您将学习如何部署 Elastic Agent 并使用 Elastic 可观测性监控您的 Azure 基础设施。

您将学习的内容编辑

您将学习如何

  • 创建具有读取监控数据权限的 Azure 服务主体。
  • 收集 Azure 账单指标。
  • 收集 Azure 活动日志。
  • 在 Kibana 中可视化日志和基础设施指标。

步骤 1:创建 Azure 服务主体编辑

在此步骤中,您将创建 Azure 服务主体,然后授予其使用 Azure REST API 的权限。

Azure REST API 允许您使用不同的操作来获取有关 Azure 资源的见解。要访问 Azure REST API,您需要使用 Azure 资源管理器身份验证模型。因此,您必须使用 Azure Active Directory (Azure AD) 对所有请求进行身份验证。您可以使用 Azure 门户Azure PowerShell 创建服务主体。然后,您需要授予访问权限,详细说明 此处。本教程演示如何使用 Azure 门户。

创建 Azure 服务主体编辑
  1. 转到 Microsoft Azure 门户。搜索并选择 Azure Active Directory
  2. 在导航窗格中,选择 应用注册,然后单击 新建注册
  3. 键入应用程序的名称(本教程使用 ingest-tutorial-monitor-azure),然后单击 注册(接受其他设置的默认值)。

    Screenshot of the application registration

    复制 应用程序(客户端)ID 并保存以备后用。此 ID 用于配置 Elastic Agent 以连接到您的 Azure 帐户。

  4. 在导航窗格中,选择 证书和机密,然后单击 新建客户端机密 以创建新的安全密钥。

    Screenshot of adding a new client secret
  5. 键入机密的描述并选择过期时间。单击 添加 以创建客户端机密。在 下,复制机密值并保存(以及您的客户端 ID)以备后用。

    这是您唯一可以复制机密值的机会。离开此页面后,您将无法检索此值!

授予服务主体的访问权限编辑

创建 Azure 服务主体后,您需要授予其正确的权限。您需要 Billing Reader 角色才能配置 Elastic Agent 以收集账单指标。

  1. 在 Azure 门户中,搜索并选择 订阅
  2. 在订阅页面中,单击您的订阅的名称。
  3. 在导航窗格中,选择 访问控制 (IAM)
  4. 单击 添加 并选择 添加角色分配
  5. 角色 选项卡上,选择 账单读取者 角色,然后单击 下一步
  6. 成员 选项卡上,选择将访问权限分配给 用户、组或服务主体 的选项。
  7. 单击 选择成员,然后搜索并选择您之前创建的主体。
  8. 对于描述,输入服务主体的名称。
  9. 单击 下一步 以查看角色分配

    Screen capture of adding a role assignment
  10. 单击 查看 + 分配 以授予服务主体对您的订阅的访问权限。

步骤 2:安装 Azure 账单指标集成编辑

在此步骤中,您将在 Kibana 中安装 Azure 账单指标集成。此集成包含一个用于收集指标的输入,例如有关您的订阅的 Azure 使用情况详细信息和预测信息。

要添加集成

  1. 转到 Kibana 主页并单击 添加集成

    Screenshot of the Kibana home page
  2. 在查询栏中,搜索 Azure 账单 并选择 Azure 账单指标集成以查看有关它的更多详细信息。
  3. 单击 添加 Azure 账单指标
  4. 在集成设置下,配置集成名称,并可选择添加描述。

    如果您没有看到用于配置集成的选项,您可能处于为新部署设计的流程中。请按照步骤操作,然后在准备好配置集成后返回本教程。

  5. 为所有必需字段指定值。有关这些设置的更多信息,请参阅 Azure 账单指标 文档。

    客户端 ID

    您之前在创建服务主体时复制的应用程序(客户端)ID。

    客户端机密

    您之前复制的机密值。

    租户 ID

    Azure Active Directory 主页上列出的租户 ID。

    订阅 ID

    订阅页面上列出的订阅 ID。

    Screenshot of integration settings for Azure
  6. 确保 收集 Azure 账单指标 选择器已打开。
  7. 接受默认值以创建新的代理策略。
  8. 单击 保存并继续。此步骤需要一两分钟才能完成。完成后,您将拥有一个包含您刚刚指定的 Azure 配置的代理策略。

应该会出现一个弹出窗口,提示您 将 Elastic Agent 添加到您的主机

步骤 3:在您的机器上安装并运行 Elastic Agent编辑

为了获得对 Azure 最新 API 更改的支持,我们建议您使用与 Elastic Stack 兼容的最新 Elastic Agent 在服务版本。否则,您的集成可能无法按预期工作。

您可以在任何可以访问 Azure 帐户并将事件转发到 Elasticsearch 的主机上安装 Elastic Agent。

  1. 在弹出窗口中,单击 将 Elastic Agent 添加到您的主机 以打开 添加代理 侧边栏。

    如果您不小心关闭了弹出窗口,请转到 Fleet → 代理,然后单击 添加代理 以访问安装说明。

    添加代理 侧边栏有两个选项:注册到 Fleet以独立模式运行。默认情况下,代理会注册到 Fleet,因为这通过在 Kibana 中提供集中式管理工具,减少了管理主机的用户的工作量。

  2. 您需要的注册令牌应该已经选中。

    注册令牌特定于您刚刚创建的 Elastic Agent 策略。当您运行命令将代理注册到 Fleet 时,您将传入注册令牌。

  3. 要下载、安装和注册 Elastic Agent,请选择您的主机操作系统并复制说明中显示的安装命令。
  4. 在您要安装 Elastic Agent 的主机上运行该命令。

Elastic Agent 需要几分钟才能注册到 Fleet、下载策略中指定的配置并开始收集数据。您可以等待确认传入数据,或者关闭窗口。

步骤 4:可视化 Azure 账单指标编辑

现在指标已流式传输到 Elasticsearch,您可以在 Kibana 中可视化它们。在 Kibana 中,打开主菜单并单击 仪表板。搜索 Azure 账单并选择名为 [Azure 账单] 账单概述 的仪表板。

Screenshot of Azure billing overview dashboard

请记住,Elastic Agent 每 24 小时收集一次数据。

步骤 5:收集 Azure 活动日志编辑

Azure 活动日志提供对您订阅中资源上执行的操作的洞察,例如何时以及谁修改了资源,以及何时启动(或启动失败)虚拟机。

在此步骤中,您将配置 Azure 将活动日志导出到 Azure 事件中心,然后配置 Azure 日志集成以从事件中心读取日志并将其发送到 Elasticsearch。

为您的日志创建事件中心编辑

Azure 事件中心 是一个数据流平台和事件摄取服务,用于在将 Azure 日志发送到 Elasticsearch 之前存储它们。

要创建 Azure 事件中心

  1. 转到 Azure 门户。
  2. 搜索并选择 事件中心.
  3. 单击 创建 并创建一个新的事件中心命名空间。您需要创建一个新的资源组,或选择一个现有的资源组。
  4. 输入命名空间所需的设置,然后单击 查看 + 创建.

    Screenshot of window for creating an event hub namespace
  5. 单击 创建 以部署资源。
  6. 在新命名空间中,单击 + 事件中心 并输入事件中心的名称。
  7. 单击 查看 + 创建,然后单击 创建 以部署资源。
  8. 记下命名空间和事件中心名称,因为您稍后会需要它们。
配置诊断设置以将日志发送到事件中心编辑

每个创建日志的 Azure 服务都具有诊断设置,允许您将日志和指标导出到外部目标。在此步骤中,您将配置 Azure Monitor 服务将活动日志导出到您之前创建的事件中心。

要配置 Azure Monitor 服务的诊断设置

  1. 转到 Azure 门户,然后转到 主页 → 监控.
  2. 在导航页面中,选择 活动日志,然后单击 导出活动日志.
  3. 选择您的订阅,然后单击 添加诊断设置.
  4. 输入诊断设置的名称。
  5. 在日志类别列表中,选择要导出的日志。
  6. 在“目标详细信息”下,选择 流式传输到事件中心 并选择您之前创建的命名空间和事件中心。例如

    Screenshot of Azure diagnostic settings showing Administrative
  7. 保存诊断设置。
配置 Azure 日志集成以收集活动日志编辑

现在活动日志已流式传输到事件中心,您可以配置 Azure 活动日志集成以摄取日志。

要添加集成

  1. 转到 Kibana 主页并单击 添加集成
  2. 在查询栏中,搜索 Azure 活动日志 并选择 Azure 活动日志集成以查看有关它的更多详细信息。
  3. 单击 添加 Azure 活动日志.
  4. 在集成设置下,配置集成名称,并可选择添加描述。
  5. 为所有必需字段指定值。有关这些设置的更多信息,请参阅 Azure 活动日志 文档。

    事件中心

    您之前创建的事件中心的名称。

    连接字符串

    事件中心命名空间的连接字符串主密钥。要了解如何获取连接字符串,请参阅 Azure 文档中的 获取事件中心连接字符串

    您应该创建新的共享访问策略(具有侦听权限),而不是从 RootManageSharedAccessKey 策略复制连接字符串,并从新策略复制连接字符串。

    存储帐户

    Elastic Agent 可以用来存储代理使用过的有关日志的信息的 Blob 存储帐户的名称。您可以对所有集成使用相同的存储帐户容器。

    存储帐户密钥

    为存储帐户定义的有效访问密钥。

    Screenshot of integration settings for Azure activity logs
  6. 确保 从事件中心收集 Azure 活动日志 选择器已打开。
  7. 现有主机 下,选择您之前创建的代理策略。
  8. 保存并部署集成。

    此步骤需要一两分钟才能完成。完成后,您将拥有一个包含 Azure 活动日志配置和计费指标配置的代理策略。已部署的 Elastic Agent 将获取策略更改并开始将 Azure 活动日志发送到 Elasticsearch。

步骤 5:可视化 Azure 活动日志编辑

现在日志已流式传输到 Elasticsearch,您可以在 Kibana 中对其进行可视化。要查看原始日志,请打开 Kibana 中的主菜单,然后单击 日志。请注意,您可以根据特定数据流进行筛选。此示例使用 data_stream.dataset : "azure.activitylogs" 来显示 Azure 活动日志

Screenshot of Logs app showing Azure activity logs

Stream 页面上的默认视图包括 Message 列,该列未填充活动日志。为了避免在 Stream 页面上看到 failed to find message 重复出现,您可以更改视图中显示的默认列。在 日志 → Stream 页面上,单击 设置 并删除 Message 列。添加一个基于其他字段的新列,例如 azure.activitylogs.event_category

Screenshot showing the log columns changed to include the azure.activitylogs.event_category field

Azure 活动日志集成还附带预构建的仪表板,您可以使用它们来可视化数据。在 Kibana 中,打开主菜单,然后单击 仪表板。搜索 Azure 活动,然后选择名为 [Logs Azure] 用户活动 的仪表板

Screenshot of Azure activity logs dashboard

恭喜!您已完成本教程。要尝试本系列中的其他教程,请访问 教程 页面。