示例:使用 Helm 在 Kubernetes 上安装 Fleet 托管的 Elastic Agent

编辑

示例:使用 Helm 在 Kubernetes 上安装 Fleet 托管的 Elastic Agent

编辑

此功能处于技术预览阶段,可能会在将来的版本中更改或移除。Elastic 会致力于修复任何问题,但技术预览版功能不受正式 GA 功能支持 SLA 的约束。

此示例演示了如何使用 Helm Chart 在 Kubernetes 系统上安装 Fleet 托管的 Elastic Agent,收集 Kubernetes 指标并将它们发送到 Elastic Cloud 中的 Elasticsearch 集群,然后在 Kibana 中查看这些指标的可视化效果。

有关 Elastic Agent Helm Chart 及其优势的概述,请参阅 使用 Helm 在 Kubernetes 上安装 Elastic Agent

本指南将引导您完成以下步骤

先决条件
编辑

要开始,您需要

  • 本地安装 Helm Kubernetes 包管理器。
  • 版本 8.16 或更高版本的 Elastic Cloud 托管的 Elasticsearch 集群。
  • 一个活动的 Kubernetes 集群。
  • 本地克隆 elastic/elastic-agent GitHub 存储库。请确保使用 8.16 分支以确保 Elastic Agent 与 Helm Chart 完全兼容。
安装 Elastic Agent
编辑
  1. 打开您的 Elastic Cloud 部署,然后从导航菜单中选择 Fleet
  2. Agents 选项卡中,选择 添加 Agent
  3. 添加 Agent UI 中,指定策略名称并选择 创建策略。保持 收集系统日志和指标 选项处于选中状态。
  4. 添加 Agent 侧边栏中向下滚动到 在您的主机上安装 Elastic Agent 部分。
  5. 选择 Linux TAR 选项卡并复制 urlenrollment-token 的值。在运行 helm install 命令时,您将使用这些值。
  6. 打开一个终端 shell 并切换到本地克隆的 elastic-agent 存储库中的一个目录。
  7. 复制此命令。

    helm install demo ./deploy/helm/elastic-agent \
    --set agent.fleet.enabled=true \
    --set agent.fleet.url=<Fleet-URL> \
    --set agent.fleet.token=<Fleet-token> \
    --set agent.fleet.preset=perNode

    请注意,该命令具有以下属性

    • helm install 运行 Helm CLI 安装工具。
    • demo 为已安装的 Chart 指定一个名称。您可以选择任何名称。
    • ./deploy/helm/elastic-agent 是要安装的 Helm Chart 的本地路径(随着时间的推移,计划为该 Chart 提供一个公共 URL)。
    • --set agent.fleet.enabled=true 启用 Fleet 托管的 Elastic Agent。CLI 参数覆盖 Elastic Agent values.yaml 文件中 agent.fleet.enabled 的默认值 false
    • --set agent.fleet.url=<Fleet-URL> 设置 Elastic Agent 将连接到 Elastic Cloud 部署中的 Fleet 的地址,通过端口 443(同样,覆盖 Elastic Agent values.yaml 文件中默认设置的值)。
    • --set agent.fleet.token=<Fleet-token> 设置 Elastic Agent 用于向 Fleet 进行身份验证的注册令牌。
    • --set agent.fleet.preset=perNodeper node 基础上启用 Kubernetes 指标。或者,您可以设置集群范围指标(clusterWide)或 kube-state-metrics(ksmSharded)。

      有关所有可用 YAML 设置和说明的完整列表,请参阅 Elastic Agent Helm Chart 自述文件

  8. 更新命令以替换

    1. <Fleet-URL> 为您之前复制的 URL。
    2. <Fleet-token> 为您之前复制的注册令牌。

      更新后,命令应如下所示

      helm install demo ./deploy/helm/elastic-agent \
      --set agent.fleet.enabled=true \
      --set agent.fleet.url=https://256575858845283fxxxxxxxd5265d2b4.fleet.us-central1.gcp.foundit.no:443 \
      --set agent.fleet.token=eSVvFDUvSUNPFldFdhhZNFwvS5xxxxxxxxxxxxFEWB1eFF1YedUQ1NWFXwr== \
      --set agent.fleet.preset=perNode
  9. 运行命令。

    命令输出应确认 Elastic Agent 已安装

    ...
    Installed agent:
      - perNode [daemonset - managed mode]
    ...
  10. 运行 kubectl get pods -n default 命令以确认 Elastic Agent Pod 正在运行

    NAME                       READY   STATUS    RESTARTS      AGE
    agent-pernode-demo-86mst   1/1     Running   0          12s
  11. 添加 Agent 侧边栏中,等待一分钟左右,确认 Elastic Agent 已成功注册到 Fleet 并且数据正在传输

    Screen capture of Add Agent UI showing that the agent has enrolled in Fleet
  12. 在 Fleet 中,打开 Agents 选项卡,查看 Agent-pernode-demo-# Agent 是否正在运行。
  13. 选择 Agent 以查看其详细信息。
  14. Agent 详情 选项卡上的 集成 窗格中,展开 system-1 以确认日志和指标是否正在传入。您可以单击 LogsMetrics 链接以查看详细信息。

    Screen capture of the Logs and Metrics view on the Integrations pane
安装 Kubernetes 集成
编辑

现在您已安装 Elastic Agent 并且数据正在传输,您可以设置 Kubernetes 集成。

  1. 在您的 Elastic Cloud 部署中,从 Kibana 菜单打开 集成 页面。
  2. 搜索 Kubernetes,然后选择 Kubernetes 集成卡片。
  3. 在 Kubernetes 集成页面上,单击 添加 Kubernetes 以将集成添加到您的 Elastic Agent 策略。
  4. 滚动到 添加 Kubernetes 集成 页面的底部。在 在哪里添加此集成? 下,选择 现有主机 选项卡。在 Agent 策略 菜单中,选择您之前在 安装 Elastic Agent 步骤中创建的 Agent 策略。

    您可以将所有其他集成设置保留为其默认值。

  5. 单击 保存并继续。出现提示时,选择 稍后添加 Elastic Agent,因为您已使用 Helm 添加了它。
  6. 在 Kubernetes 集成页面上,打开 资产 选项卡并选择 [指标 Kubernetes] Pod 仪表板。

    在仪表板上,您可以查看 Kubernetes Pod 的状态,包括内存使用情况、CPU 使用情况和网络吞吐量的指标。

    Screen capture of the Metrics Kubernetes pods dashboard

您已成功使用 Helm 安装了 Elastic Agent,并且您的 Kubernetes 指标数据可在 Kibana 中查看。

清理
编辑

完成此示例后,运行 helm uninstall 命令以卸载 Elastic Agent。

helm uninstall demo

卸载应得到如下确认

release "demo" uninstalled

提醒一下,有关使用 Elastic Agent Helm Chart 的完整详细信息,请参阅 Elastic Agent Helm Chart 自述文件