Elastic Agent 命令参考

编辑

Elastic Agent 提供了用于运行 Elastic Agent、管理 Fleet Server 以及执行常见任务的命令。此处列出的命令适用于 Fleet 管理的独立的 Elastic Agent。

限制

请注意运行 Elastic Agent 命令的以下限制

  • 您可能需要以 root 用户(或 Windows 上的管理员)身份登录才能运行此处描述的命令。在 Elastic Agent 服务安装并运行后,请确保在运行这些命令时不要在前面加上 ./,以避免调用错误的二进制文件。
  • 不支持使用 Windows PowerShell ISE 运行 Elastic Agent 命令。

elastic-agent diagnostics

编辑

从 Elastic Agent 及其运行的组件/单元收集诊断信息。此命令会生成一个包含以下内容的归档文件:

  • version.txt - 版本信息
  • pre-config.yaml - 变量替换之前的预配置
  • variables.yaml - 来自提供程序的当前变量上下文
  • computed-config.yaml - 变量替换后的配置
  • components-expected.yaml - 来自 computed-config.yaml 的预期计算组件模型
  • components-actual.yaml - 运行时管理器报告的实际运行组件模型
  • state.yaml - 所有正在运行的组件的当前状态信息
  • Components Directory - 来自每个正在运行的组件的诊断信息

    • goroutine.txt - goroutine 转储
    • heap.txt - 活动对象的内存分配
    • allocs.txt - 采样过去的内存分配
    • threadcreate.txt - 导致创建新操作系统线程的跟踪
    • block.txt - 导致在同步原语上阻塞的堆栈跟踪
    • mutex.txt - 有争议的互斥锁持有者的堆栈跟踪
    • Unit Directory - 如果给定的单元提供特定的诊断信息,则会将其放置在此处。

请注意,凭据可能不会在归档文件中被编辑;它们可能会以纯文本形式出现在归档文件中的配置或策略文件中。

此命令仅用于调试目的。归档文件的输出格式和结构可能会在版本之间发生变化。

概要

编辑
elastic-agent diagnostics [--file <string>]
                          [--cpu-profile]
                          [--exclude-events]
                          [--help]
                          [global-flags]

选项

编辑
--file
指定输出归档文件名。默认为 elastic-agent-diagnostics-<时间戳>.zip,其中时间戳是当前的 UTC 时间。
--help
显示 diagnostics 命令的帮助。
--cpu-profile
此外,对每个正在运行的组件运行 30 秒的 CPU 分析。这将为每个组件生成一个额外的 cpu.pprof 文件。
--p
--cpu-profile 的别名。
--exclude-events
从诊断归档文件中排除事件日志文件。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent diagnostics

elastic-agent enroll

编辑

在 Fleet 中注册 Elastic Agent。

使用此命令在 Fleet 中注册 Elastic Agent,而无需将代理安装为服务。如果您是从 DEB 或 RPM 包安装的 Elastic Agent,并且计划使用 systemd 命令来启动和管理服务,则需要执行此操作。此命令对于在安装 Elastic Agent 之前对其进行测试也很有用。

如果您已经安装了 Elastic Agent,请使用此命令来修改 Elastic Agent 运行的设置。

要注册 Elastic Agent 将其安装为服务,请使用 install 命令。作为服务安装是最常见的情况。

我们建议您以 root 用户身份运行 enroll(或 install)命令,因为某些集成需要 root 权限才能收集敏感数据。此命令会覆盖代理目录中的 elastic-agent.yml 文件。

此命令包含用于设置 Fleet Server 的可选标志。

此命令会在 Fleet 中注册 Elastic Agent;它不会启动代理。要启动代理,请启动服务(如果存在),或者使用 run 命令从终端启动代理。

概要

编辑

在 Fleet 中注册 Elastic Agent

elastic-agent enroll --url <string>
                     --enrollment-token <string>
                     [--ca-sha256 <string>]
                     [--certificate-authorities <string>]
                     [--daemon-timeout <duration>]
                     [--delay-enroll]
                     [--elastic-agent-cert <string>]
                     [--elastic-agent-cert-key <string>]
                     [--elastic-agent-cert-key-passphrase <string>]
                     [--force]
                     [--header <strings>]
                     [--help]
                     [--insecure ]
                     [--proxy-disabled]
                     [--proxy-header <strings>]
                     [--proxy-url <string>]
                     [--staging <string>]
                     [--tag <string>]
                     [global-flags]

在 Fleet 中注册 Elastic Agent 并设置 Fleet Server

elastic-agent enroll --fleet-server-es <string>
                     --fleet-server-service-token <string>
                     [--fleet-server-service-token-path <string>]
                     [--ca-sha256 <string>]
                     [--certificate-authorities <string>]
                     [--daemon-timeout <duration>]
                     [--delay-enroll]
                     [--elastic-agent-cert <string>]
                     [--elastic-agent-cert-key <string>]
                     [--elastic-agent-cert-key-passphrase <string>]
                     [--fleet-server-cert <string>] 
                     [--fleet-server-cert-key <string>]
                     [--fleet-server-cert-key-passphrase <string>]
                     [--fleet-server-client-auth <string>]
                     [--fleet-server-es-ca <string>]
                     [--fleet-server-es-ca-trusted-fingerprint <string>] 
                     [--fleet-server-es-cert <string>]
                     [--fleet-server-es-cert-key <string>]
                     [--fleet-server-es-insecure]
                     [--fleet-server-host <string>]
                     [--fleet-server-policy <string>]
                     [--fleet-server-port <uint16>]
                     [--fleet-server-timeout <duration>]
                     [--force]
                     [--header <strings>]
                     [--help]
                     [--non-interactive]
                     [--proxy-disabled]
                     [--proxy-header <strings>]
                     [--proxy-url <string>]
                     [--staging <string>]
                     [--tag <string>]
                     [--url <string>] 
                     [global-flags]

如果未指定任何 fleet-server-cert* 标志,则 Elastic Agent 会自动生成具有计算机主机名的自签名证书。使用自签名证书注册到 Fleet Server 的远程 Elastic Agent 必须指定 --insecure 标志。

将自签名证书与 Elasticsearch 结合使用时是必需的。

使用自定义证书注册到 Fleet Server 时是必需的。该 URL 必须与用于生成 --fleet-server-cert 指定的证书的 DNS 名称匹配。

有关自定义证书的更多信息,请参阅 为自管理 Fleet Server 配置 SSL/TLS

选项

编辑
--ca-sha256 <string>
用于证书验证的证书颁发机构哈希 pin 的逗号分隔列表。
--certificate-authorities <string>
用于服务器验证的根证书的逗号分隔列表。
--daemon-timeout <duration>
等待 Elastic Agent 守护进程的超时时间。
--delay-enroll
延迟注册,使其在 Elastic Agent 服务首次启动时发生。当您不希望 Elastic Agent 在下次重新启动或手动启动服务之前注册时,此设置非常有用,例如,当您正在准备包含 Elastic Agent 的映像时。
--elastic-agent-cert
用作 Elastic Agent 与 Fleet Server 连接的客户端证书。
--elastic-agent-cert-key
用作 Elastic Agent 与 Fleet Server 连接的私钥。
--elastic-agent-cert-key-passphrase

包含用于相互 TLS 私钥的密码的文件的路径,Elastic Agent 将使用该私钥连接到 Fleet Server。该文件必须仅包含密码的字符,不能包含换行符或额外的非打印字符。

仅当 --elastic-agent-cert-key 被加密并且需要密码才能使用时,才会使用此选项。

--enrollment-token <string>
用于将 Elastic Agent 注册到 Fleet 的注册令牌。您可以为多个代理使用相同的注册令牌。
--fleet-server-cert <string>
用于公开的 Fleet Server HTTPS 端点的证书。
--fleet-server-cert-key <string>
用于公开的 Fleet Server HTTPS 端点的私钥。
--fleet-server-cert-key-passphrase <string>
用于解密 Fleet Server 的私钥(如果使用了加密的私钥)的密码文件的路径。
--fleet-server-client-auth <string>
noneoptionalrequired 之一。默认为 none。Fleet Server 的用于客户端 mTLS 连接的 client_authentication 选项。如果指定了 optionalrequired,则使用 --certificate-authorities 标志中指定的 CA 验证客户端证书。
--fleet-server-es <string>
在 Elastic Agent 启动时启动 Fleet Server 进程,并连接到指定的 Elasticsearch URL。
--fleet-server-es-ca <string>
用于与 Elasticsearch 通信的证书颁发机构的路径。
--fleet-server-es-ca-trusted-fingerprint <string>
用于自签名 Elasticsearch 证书的证书颁发机构的 SHA-256 指纹(哈希)。此指纹将用于验证 Fleet Server 提供的自签名证书以及 Elastic Agent 启动的任何输入以进行通信。将自签名证书与 Elasticsearch 结合使用时,此标志是必需的。
--fleet-server-es-cert
Fleet Server 连接到 Elasticsearch 时将使用的客户端证书的路径。
--fleet-server-es-cert-key
Fleet Server 连接到 Elasticsearch 时将使用的私钥的路径。
--fleet-server-es-insecure

允许 Fleet Server 在以下情况下连接到 Elasticsearch

  • 连接到 HTTP 服务器时。
  • 连接到 HTTPS 服务器且无法验证证书链时。内容已加密,但未验证证书。

使用此标志时,将禁用证书验证。

--fleet-server-host <string>
Fleet Server HTTP 绑定主机(覆盖策略)。
--fleet-server-policy <string>
在启动自管理 Fleet Server 时使用,以允许使用特定的策略。
--fleet-server-port <uint16>
Fleet Server HTTP 绑定端口(覆盖策略)。
--fleet-server-service-token <string>
用于与 Elasticsearch 通信的服务令牌。与 --fleet-server-service-token-path 互斥。
--fleet-server-service-token-path <string>
用于与 Elasticsearch 通信的服务令牌文件。与 --fleet-server-service-token 互斥。
--fleet-server-timeout <duration>
等待 Fleet Server 准备好开始注册的超时时间。
--force

强制覆盖当前配置,而不提示确认。当使用自动化软件或脚本部署时,此标志很有用。

如果 Elastic Agent 已安装在主机上,则使用 --force 可能会导致不可预测的行为,导致 Fleet 中出现重复的 Elastic Agent。

--header <strings>
用于与 elasticsearch 通信的标头。
--help
显示 enroll 命令的帮助。
--insecure

允许 Elastic Agent 通过不安全的连接连接到 Fleet Server。在以下情况下需要此设置:

  • 当连接到 HTTP 服务器时。API 密钥以明文形式发送。
  • 连接到 HTTPS 服务器且无法验证证书链时。内容已加密,但未验证证书。
  • 当使用 Elastic Agent 生成的自签名证书时。

我们强烈建议您使用安全连接。

--non-interactive
以非交互模式安装 Elastic Agent。当使用自动化软件或脚本部署时,此标志很有用。如果主机上已安装 Elastic Agent,则安装将终止。
--proxy-disabled
禁用代理支持,包括环境变量。
--proxy-header <字符串>
与 CONNECT 请求一起使用的代理头。
--proxy-url <字符串>
配置代理 URL。
--staging <字符串>
配置代理以从暂存构建下载工件。
--tag <字符串>

要应用于 Fleet 管理的 Elastic Agent 的逗号分隔的标签列表。您可以使用这些标签来筛选 Fleet 中的代理列表。

目前,无法删除或编辑现有标签。要更改标签,您必须取消注册 Elastic Agent,然后使用新标签重新注册。

--url <字符串>
用于将 Elastic Agent 注册到 Fleet 的 Fleet Server URL。

有关更多标志,请参阅 全局标志

示例

编辑

将 Elastic Agent 注册到 Fleet

elastic-agent enroll \
  --url=https://cedd4e0e21e240b4s2bbbebdf1d6d52f.fleet.eu-west-1.aws.cld.elstc.co:443 \
  --enrollment-token=NEFmVllaa0JLRXhKebVKVTR5TTI6N2JaVlJpSGpScmV0ZUVnZVlRUExFQQ==

将 Elastic Agent 注册到 Fleet 并设置 Fleet Server

elastic-agent enroll --fleet-server-es=http://elasticsearch:9200 \
  --fleet-server-service-token=AbEAAdesYXN1abMvZmxlZXQtc2VldmVyL3Rva2VuLTE2MTkxMzg3MzIzMTg7dzEta0JDTmZUcGlDTjlwRmNVTjNVQQ \
  --fleet-server-policy=a35fd520-26f5-11ec-8bd9-3374690g57b6

启动带有 Fleet Server 的 Elastic Agent(在自定义 CA 上运行)。此示例假定您已使用以下名称生成证书:

  • ca.crt:根 CA 证书
  • fleet-server.crt:Fleet Server 证书
  • fleet-server.key:Fleet Server 私钥
  • elasticsearch-ca.crt:用于连接到 Elasticsearch 的 CA 证书
elastic-agent enroll \
  --url=https://fleet-server:8220 \
  --fleet-server-es=https://elasticsearch:9200 \
  --fleet-server-service-token=AAEBAWVsYXm0aWMvZmxlZXQtc2XydmVyL3Rva2VuLTE2MjM4OTAztDU1OTQ6dllfVW1mYnFTVjJwTC2ZQ0EtVnVZQQ \
  --fleet-server-policy=a35fd520-26f5-11ec-8bd9-3374690g57b6 \
  --certificate-authorities=/path/to/ca.crt \
  --fleet-server-es-ca=/path/to/elasticsearch-ca.crt \
  --fleet-server-cert=/path/to/fleet-server.crt \
  --fleet-server-cert-key=/path/to/fleet-server.key \
  --fleet-server-port=8220

然后将另一个 Elastic Agent 注册到上一个示例中启动的 Fleet Server

elastic-agent enroll --url=https://fleet-server:8220 \
  --enrollment-token=NEFmVllaa0JLRXhKebVKVTR5TTI6N2JaVlJpSGpScmV0ZUVnZVlRUExFQQ== \
  --certificate-authorities=/path/to/ca.crt

elastic-agent help

编辑

显示特定命令的帮助。

概要

编辑
elastic-agent help <command> [--help] [global-flags]

选项

编辑
command
命令的名称。
--help
显示 help 命令的帮助。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent help enroll

elastic-agent inspect

编辑

显示当前 Elastic Agent 配置。

如果未指定任何参数,则显示完整的 Elastic Agent 配置。

概要

编辑
elastic-agent inspect [--help]
elastic-agent inspect components [--show-config]
                             [--show-spec]
                             [--help]
                             [id]

选项

编辑
components

显示组件的当前配置。此命令接受其他标志

--show-config
用于显示所有单元中的配置。
--show-spec
用于获取组件的输入/输出运行时规范。
--help
显示 inspect 命令的帮助。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent inspect
elastic-agent inspect components --show-config
elastic-agent inspect components log-default

elastic-agent privileged

编辑

以完全超级用户权限运行 Elastic Agent。这是 Elastic Agent 的常用默认运行模式。privileged 命令允许您在以 unprivileged 模式运行代理时,切换回以完全管理权限运行代理。

有关更多详细信息,请参阅 在没有管理权限的情况下运行 Elastic Agent

示例

编辑
elastic-agent privileged

elastic-agent install

编辑

在系统上永久安装 Elastic Agent,并使用系统的服务管理器对其进行管理。安装完成后,代理将自动启动。在 Linux(tar 包)上,此命令需要系统和服务管理器(如 systemd)。

如果您从 DEB 或 RPM 包安装了 Elastic Agent,则 install 命令将跳过安装本身,而改为充当 enroll 命令 的别名。请注意,在使用 DEB 或 RPM 升级 Elastic Agent 后,需要重新启动 Elastic Agent 服务。

您必须以 root 用户(或 Windows 上的管理员)身份运行此命令,才能将文件写入正确的位置。此命令会覆盖代理目录中的 elastic-agent.yml 文件。

运行此命令的语法因平台而异。有关特定于平台的示例,请参阅 安装 Elastic Agent

概要

编辑

要将 Elastic Agent 作为服务安装、将其注册到 Fleet 并启动 elastic-agent 服务

elastic-agent install --url <string>
                      --enrollment-token <string>
                      [--base-path <string>]
                      [--ca-sha256 <string>]
                      [--certificate-authorities <string>]
                      [--daemon-timeout <duration>]
                      [--delay-enroll]
                      [--elastic-agent-cert <string>]
                      [--elastic-agent-cert-key <string>]
                      [--elastic-agent-cert-key-passphrase <string>]
                      [--force]
                      [--header <strings>]
                      [--help]
                      [--insecure ]
                      [--non-interactive]
                      [--privileged]
                      [--proxy-disabled]
                      [--proxy-header <strings>]
                      [--proxy-url <string>]
                      [--staging <string>]
                      [--tag <string>]
                      [--unprivileged]
                      [global-flags]

要将 Elastic Agent 作为服务安装、将其注册到 Fleet 并启动 fleet-server 进程以及 elastic-agent 服务

elastic-agent install --fleet-server-es <string>
                      --fleet-server-service-token <string>
                      [--fleet-server-service-token-path <string>]
                      [--base-path <string>]
                      [--ca-sha256 <string>]
                      [--certificate-authorities <string>]
                      [--daemon-timeout <duration>]
                      [--delay-enroll]
                      [--elastic-agent-cert <string>]
                      [--elastic-agent-cert-key <string>]
                      [--elastic-agent-cert-key-passphrase <string>]
                      [--fleet-server-cert <string>] 
                      [--fleet-server-cert-key <string>]
                      [--fleet-server-cert-key-passphrase <string>]
                      [--fleet-server-client-auth <string>]
                      [--fleet-server-es-ca <string>]
                      [--fleet-server-es-ca-trusted-fingerprint <string>] 
                      [--fleet-server-es-cert <string>]
                      [--fleet-server-es-cert-key <string>]
                      [--fleet-server-es-insecure]
                      [--fleet-server-host <string>]
                      [--fleet-server-policy <string>]
                      [--fleet-server-port <uint16>]
                      [--fleet-server-timeout <duration>]
                      [--force]
                      [--header <strings>]
                      [--help]
                      [--non-interactive]
                      [--privileged]
                      [--proxy-disabled]
                      [--proxy-header <strings>]
                      [--proxy-url <string>]
                      [--staging <string>]
                      [--tag <string>]
                      [--unprivileged]
                      [--url <string>] 
                      [global-flags]

如果未指定任何 fleet-server-cert* 标志,则 Elastic Agent 会自动生成具有计算机主机名的自签名证书。使用自签名证书注册到 Fleet Server 的远程 Elastic Agent 必须指定 --insecure 标志。

在 Elasticsearch 端使用自签名证书时需要。

使用自定义证书注册到 Fleet Server 时是必需的。该 URL 必须与用于生成 --fleet-server-cert 指定的证书的 DNS 名称匹配。

有关自定义证书的更多信息,请参阅 为自管理 Fleet Server 配置 SSL/TLS

选项

编辑
--base-path <字符串>

将 Elastic Agent 安装在 默认 位置以外的位置。指定安装的自定义基本路径。

--base-path 选项当前不支持 Elastic Defend

--ca-sha256 <string>
用于证书验证的证书颁发机构哈希 pin 的逗号分隔列表。
--certificate-authorities <string>
用于服务器验证的根证书的逗号分隔列表。
--daemon-timeout <duration>
等待 Elastic Agent 守护进程的超时时间。
--delay-enroll
延迟注册,使其在 Elastic Agent 服务首次启动时发生。当您不希望 Elastic Agent 在下次重新启动或手动启动服务之前注册时,此设置非常有用,例如,当您正在准备包含 Elastic Agent 的映像时。
--elastic-agent-cert
用作 Elastic Agent 与 Fleet Server 连接的客户端证书。
--elastic-agent-cert-key
用作 Elastic Agent 与 Fleet Server 连接的私钥。
--elastic-agent-cert-key-passphrase

包含用于相互 TLS 私钥的密码的文件的路径,Elastic Agent 将使用该私钥连接到 Fleet Server。该文件必须仅包含密码的字符,不能包含换行符或额外的非打印字符。

仅当 --elastic-agent-cert-key 被加密并且需要密码才能使用时,才会使用此选项。

--enrollment-token <string>
用于将 Elastic Agent 注册到 Fleet 的注册令牌。您可以为多个代理使用相同的注册令牌。
--fleet-server-cert <string>
用于公开的 Fleet Server HTTPS 端点的证书。
--fleet-server-cert-key <string>
用于公开的 Fleet Server HTTPS 端点的私钥。
--fleet-server-cert-key-passphrase <string>
用于解密 Fleet Server 的私钥(如果使用了加密的私钥)的密码文件的路径。
--fleet-server-client-auth <string>
noneoptionalrequired 之一。默认为 none。Fleet Server 的用于客户端 mTLS 连接的 client_authentication 选项。如果指定了 optionalrequired,则使用 --certificate-authorities 标志中指定的 CA 验证客户端证书。
--fleet-server-es <string>
在 Elastic Agent 启动时启动 Fleet Server 进程,并连接到指定的 Elasticsearch URL。
--fleet-server-es-ca <string>
用于与 Elasticsearch 通信的证书颁发机构的路径。
--fleet-server-es-ca-trusted-fingerprint <string>
用于自签名 Elasticsearch 证书的证书颁发机构的 SHA-256 指纹(哈希)。此指纹将用于验证 Fleet Server 提供的自签名证书以及 Elastic Agent 启动的任何输入以进行通信。将自签名证书与 Elasticsearch 结合使用时,此标志是必需的。
--fleet-server-es-cert
Fleet Server 连接到 Elasticsearch 时将使用的客户端证书的路径。
--fleet-server-es-cert-key
Fleet Server 连接到 Elasticsearch 时将使用的私钥的路径。
--fleet-server-es-insecure

允许 Fleet Server 在以下情况下连接到 Elasticsearch

  • 连接到 HTTP 服务器时。
  • 连接到 HTTPS 服务器且无法验证证书链时。内容已加密,但未验证证书。

使用此标志时,将禁用证书验证。

--fleet-server-host <string>
Fleet Server HTTP 绑定主机(覆盖策略)。
--fleet-server-policy <string>
在启动自管理 Fleet Server 时使用,以允许使用特定的策略。
--fleet-server-port <uint16>
Fleet Server HTTP 绑定端口(覆盖策略)。
--fleet-server-service-token <string>
用于与 Elasticsearch 通信的服务令牌。与 --fleet-server-service-token-path 互斥。
--fleet-server-service-token-path <string>
用于与 Elasticsearch 通信的服务令牌文件。与 --fleet-server-service-token 互斥。
--fleet-server-timeout <duration>
等待 Fleet Server 准备好开始注册的超时时间。
--force

强制覆盖当前配置,而不提示确认。当使用自动化软件或脚本部署时,此标志很有用。

如果 Elastic Agent 已安装在主机上,则使用 --force 可能会导致不可预测的行为,导致 Fleet 中出现重复的 Elastic Agent。

--header <strings>
用于与 elasticsearch 通信的标头。
--help
显示 enroll 命令的帮助。
--insecure

允许 Elastic Agent 通过不安全的连接连接到 Fleet Server。在以下情况下需要此设置:

  • 当连接到 HTTP 服务器时。API 密钥以明文形式发送。
  • 连接到 HTTPS 服务器且无法验证证书链时。内容已加密,但未验证证书。
  • 当使用 Elastic Agent 生成的自签名证书时。

我们强烈建议您使用安全连接。

--non-interactive
以非交互模式安装 Elastic Agent。当使用自动化软件或脚本部署时,此标志很有用。如果主机上已安装 Elastic Agent,则安装将终止。
--privileged
以完全超级用户权限运行 Elastic Agent。这是 Elastic Agent 的常用默认运行模式。--privileged 选项允许您在以 unprivileged 运行代理时切换回以完全管理权限运行代理。

有关更多详细信息,请参阅 --unprivileged 选项和 在没有管理权限的情况下运行 Elastic Agent

--proxy-disabled
禁用代理支持,包括环境变量。
--proxy-header <字符串>
与 CONNECT 请求一起使用的代理头。
--proxy-url <字符串>
配置代理 URL。
--staging <字符串>
配置代理以从暂存构建下载工件。
--tag <字符串>

要应用于 Fleet 管理的 Elastic Agent 的逗号分隔的标签列表。您可以使用这些标签来筛选 Fleet 中的代理列表。

目前,无法删除或编辑现有标签。要更改标签,您必须取消注册 Elastic Agent,然后使用新标签重新注册。

--unprivileged
在没有完全超级用户权限的情况下运行 Elastic Agent。此选项在限制 Linux 或 macOS 系统上 root 访问权限或 Windows 系统上 admin 访问权限的组织中很有用。有关在此模式下运行 Elastic Agent 的详细信息和限制,请参阅 在没有管理权限的情况下运行 Elastic Agent

请注意,如果代理当前已注册到包含需要管理访问权限的集成(例如 Elastic Defend 集成)的策略,则会阻止更改为 unprivileged 模式。

--url <字符串>
用于将 Elastic Agent 注册到 Fleet 的 Fleet Server URL。

有关更多标志,请参阅 全局标志

示例

编辑

将 Elastic Agent 作为服务安装、将其注册到 Fleet 并启动 elastic-agent 服务

elastic-agent install \
  --url=https://cedd4e0e21e240b4s2bbbebdf1d6d52f.fleet.eu-west-1.aws.cld.elstc.co:443 \
  --enrollment-token=NEFmVllaa0JLRXhKebVKVTR5TTI6N2JaVlJpSGpScmV0ZUVnZVlRUExFQQ==

将 Elastic Agent 作为服务安装、将其注册到 Fleet 并启动 fleet-server 进程以及 elastic-agent 服务

elastic-agent install --fleet-server-es=http://elasticsearch:9200 \
  --fleet-server-service-token=AbEAAdesYXN1abMvZmxlZXQtc2VldmVyL3Rva2VuLTE2MTkxMzg3MzIzMTg7dzEta0JDTmZUcGlDTjlwRmNVTjNVQQ \
  --fleet-server-policy=a35fd620-26f6-11ec-8bd9-3374690f57b6

启动带有 Fleet Server 的 Elastic Agent(在自定义 CA 上运行)。此示例假定您已使用以下名称生成证书:

  • ca.crt:根 CA 证书
  • fleet-server.crt:Fleet Server 证书
  • fleet-server.key:Fleet Server 私钥
  • elasticsearch-ca.crt:用于连接到 Elasticsearch 的 CA 证书
elastic-agent install \
  --url=https://fleet-server:8220 \
  --fleet-server-es=https://elasticsearch:9200 \
  --fleet-server-service-token=AAEBAWVsYXm0aWMvZmxlZXQtc2XydmVyL3Rva2VuLTE2MjM4OTAztDU1OTQ6dllfVW1mYnFTVjJwTC2ZQ0EtVnVZQQ \
  --fleet-server-policy=a35fd520-26f5-11ec-8bd9-3374690g57b6 \
  --certificate-authorities=/path/to/ca.crt \
  --fleet-server-es-ca=/path/to/elasticsearch-ca.crt \
  --fleet-server-cert=/path/to/fleet-server.crt \
  --fleet-server-cert-key=/path/to/fleet-server.key \
  --fleet-server-port=8220

然后安装另一个 Elastic Agent 并将其注册到上一个示例中启动的 Fleet Server

elastic-agent install --url=https://fleet-server:8220 \
  --enrollment-token=NEFmVllaa0JLRXhKebVKVTR5TTI6N2JaVlJpSGpScmV0ZUVnZVlRUExFQQ== \
  --certificate-authorities=/path/to/ca.crt

elastic-agent otel

编辑

此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。

将 Elastic Agent 作为 OpenTelemetry 收集器 运行。

概要

编辑
elastic-agent otel [flags]
elastic-agent otel [command]

您还可以运行 ./otelcol 命令,该命令会调用 ./elastic-agent otel 并将任何参数传递给它。

可用命令

编辑
validate
验证 OpenTelemetry 收集器配置,而无需运行收集器。

标志

编辑
--config=file:/path/to/first --config=file:path/to/second
配置文件位置。请注意,每个标志条目只能设置一个位置,例如 --config=file:/path/to/first --config=file:path/to/second
--feature-gates flag
以逗号分隔的功能门标识符列表。添加前缀 - 以禁用该功能。添加前缀 + 或不添加前缀将启用该功能。
-h, --help
获取 otel 子命令的帮助。使用 elastic-agent otel [命令] --help 获取有关命令的更多信息。
--set string
设置任意组件配置属性。该组件必须在配置文件中定义,并且该标志具有更高的优先级。数组配置属性将被覆盖,并且映射会进行连接。例如,--set=processors::batch::timeout=2s

示例

编辑

使用提供的 otel.yml 配置文件将 Elastic Agent 作为 OTel 收集器运行。

./elastic-agent otel --config otel.yml

将 Elastic Agent OTel 配置中的默认详细程度设置从 detailed 更改为 normal

./elastic-agent otel --config otel.yml --set "exporters::debug::verbosity=normal"

elastic-agent restart

编辑

重新启动当前正在运行的 Elastic Agent 守护程序。

概要

编辑
elastic-agent restart [--help] [global-flags]

选项

编辑
--help
显示 restart 命令的帮助。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent restart

elastic-agent run

编辑

启动 elastic-agent 进程。

概要

编辑
elastic-agent run [global-flags]

全局标志

编辑

只要您在命令行上运行 elastic-agent,这些标志就有效。

-c <字符串>
要使用的配置文件。如果未指定,则 Elastic Agent 使用 {path.config}/elastic-agent.yml
--e
记录到 stderr 并禁用 syslog/文件输出。
--environment <环境变量>
代理将在其中运行的环境。
--path.config <字符串>
Elastic Agent 在其中查找配置文件的目录。默认值因平台而异。
--path.home <字符串>

Elastic Agent 的根目录。path.home 确定配置文件和数据目录的位置。

如果未指定,则 Elastic Agent 使用当前工作目录。

--path.logs <字符串>
Elastic Agent 的日志输出路径。默认值因平台而异。
--v
将日志级别设置为 INFO。

示例

编辑
elastic-agent run -c myagentconfig.yml

elastic-agent status

编辑

返回正在运行的 Elastic Agent 守护程序以及 Elastic Agent 中每个进程的当前状态。还会返回 Fleet Server 的最后已知状态。output 选项控制信息的详细程度和格式。

概要

编辑
elastic-agent status [--output <string>]
                     [--help]
                     [global-flags]

选项

编辑
--output <字符串>
human(默认值)、fulljsonyaml 格式输出状态信息。human 在 Elastic Agent 处于 HEALTHY 状态时返回有限的信息。如果任何组件或单元不处于 HEALTHY 状态,则会显示该组件或单元的完整详细信息。fulljsonyaml 始终返回完整的状态信息。组件映射到在 Elastic Agent 下运行的各个进程,例如 Filebeat 或 Endpoint Security。单元映射到该进程中的离散配置单元,例如 Filebeat 输入或 Metricbeat 模块。

当输出为 jsonyaml 时,状态代码将以数值形式返回。可以使用下表映射状态代码

+

代码 状态

0

启动中

1

配置中

2

健康

3

降级

4

失败

5

停止中

6

升级中

7

回滚

--help
显示 status 命令的帮助。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent status

elastic-agent uninstall

编辑

从系统中永久卸载 Elastic Agent。

您必须以 root 用户身份(或 Windows 上的管理员身份)运行此命令才能删除文件。

请务必从 Elastic Agent 安装位置之外的目录运行 uninstall 命令。

例如,在 Windows 系统上,安装位置是 C:\Program Files\Elastic\Agent。从 C:\Program Files\Elastic\tmp 甚至是您的默认主目录运行卸载命令

C:\"Program Files"\Elastic\Agent\elastic-agent.exe uninstall

您必须以 root 用户身份运行此命令。

sudo /Library/Elastic/Agent/elastic-agent uninstall

概要

编辑
elastic-agent uninstall [--force] [--help] [global-flags]

选项

编辑
--force
卸载 Elastic Agent 并且不提示确认。此标志在使用自动化软件或脚本部署时非常有用。
--help
显示 uninstall 命令的帮助。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent uninstall

elastic-agent unprivileged

编辑

在没有完全超级用户权限的情况下运行 Elastic Agent。这在限制 Linux 或 macOS 系统上的 root 访问权限,或 Windows 系统上的 admin 访问权限的组织中非常有用。有关在此模式下运行 Elastic Agent 的详细信息和限制,请参阅 在没有管理权限的情况下运行 Elastic Agent

请注意,如果代理当前已注册包含 Elastic Defend 集成的策略,则会阻止将正在运行的 Elastic Agent 更改为 unprivileged 模式。

示例

编辑
elastic-agent unprivileged

elastic-agent upgrade

编辑

将当前正在运行的 Elastic Agent 升级到指定的版本。这应该仅用于以独立模式运行的代理。在 Fleet 中注册的代理应该通过 Fleet 升级。

概要

编辑
elastic-agent upgrade <version> [--source-uri <string>] [--help] [flags]

选项

编辑
版本
要升级到的 Elastic Agent 版本。
--source-uri <字符串>
从中下载新版本的源 URI。默认情况下,Elastic Agent 使用 Elastic Artifacts URL。
--skip-verify
跳过软件包验证过程。不建议使用此选项,因为它不安全。
--pgp-path <字符串>
使用本地存储的 PGP 密钥副本验证升级包。
--pgp-uri <字符串>
使用指定的在线 PGP 密钥验证升级包。
--help
显示 upgrade 命令的帮助。

有关使用 --skip-verify--pgp-path <字符串>--pgp-uri <字符串> 包验证选项的详细信息,请参阅 验证 Elastic Agent 包签名

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent upgrade 7.10.1

elastic-agent logs

编辑

显示正在运行的 Elastic Agent 的日志。

概要

编辑
elastic-agent logs [--follow] [--number <int>] [--component <string>] [--no-color] [--help] [global-flags]

选项

编辑
--follow-f
跟踪日志更新,直到命令中断(例如使用 Ctrl-C)。
--number <int>-n <int>
要打印的日志行数。如果启用日志跟踪,则会影响初始输出。
--component <字符串>-C <字符串>
根据组件名称过滤日志。
--no-color
禁用基于每个条目的日志级别的颜色。
--help
显示 logs 命令的帮助。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent logs -n 100 -f -C "system/metrics-default"

elastic-agent version

编辑

显示 Elastic Agent 的版本。

概要

编辑
elastic-agent version [--help] [global-flags]

选项

编辑
--help
显示 version 命令的帮助。

有关更多标志,请参阅 全局标志

示例

编辑
elastic-agent version