示例:使用 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 将通过端口 443 连接到您的 Elastic Cloud 部署中的 Fleet 的地址(同样,覆盖 Elastic Agent values.yaml 文件中默认设置的值)。
    • --set agent.fleet.token=<Fleet-token> 设置 Elastic Agent 用于向 Fleet 进行身份验证的注册令牌。
    • --set agent.fleet.preset=perNode每个节点 的基础上启用 Kubernetes 指标。您可以选择设置集群范围指标 (clusterWide) 或 kube-state-metrics (ksmSharded)。

      有关所有可用 YAML 设置和描述的完整列表,请参阅 Elastic Agent Helm Chart Readme

  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 以确认日志和指标正在传入。您可以单击 日志指标 链接以查看详细信息。

    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] Pods 仪表板。

    在仪表板上,您可以查看 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 Readme