隔离环境编辑

在受限或封闭网络中运行 Elastic Agent 时,您需要采取额外步骤以确保

  • Kibana 能够访问 Elastic 软件包注册表以下载软件包元数据和内容。
  • Elastic Agent 能够在升级期间从 Elastic 工件注册表下载二进制文件。

因此,必须通过 HTTP 代理和/或自托管方式从 Kibana 访问 Elastic 软件包注册表。

因此,必须通过 HTTP 代理和/或自托管方式从 Kibana 访问 Elastic 工件注册表。

有关隔离 离线端点,请参阅 Elastic 安全解决方案文档。

升级隔离环境中的所有组件时,建议您按以下顺序升级

  1. 升级 Elastic 软件包注册表。
  2. 升级 Elastic Stack,包括 Kibana。
  3. 升级 Elastic 工件注册表,并确保最新的 Elastic Agent 二进制文件可用。
  4. 升级本地舰队服务器。
  5. 在舰队中,对所有 Elastic Agent 发出升级命令。

为舰队启用隔离模式编辑

在 Kibana 中设置以下属性以在舰队中启用隔离模式。这允许舰队智能地跳过不应在隔离环境中尝试的某些请求或操作。

xpack.fleet.isAirGapped: true

使用代理服务器访问 Elastic 软件包注册表编辑

默认情况下,Kibana 会从 epr.elastic.co 的公共 Elastic 软件包注册表下载软件包元数据和内容。

如果您可以通过网络网关路由到 Elastic 软件包注册表的公共端点的流量,请在 Kibana 中设置以下属性以使用代理服务器

xpack.fleet.registryProxyUrl: your-nat-gateway.corp.net

有关更多信息,请参阅 结合使用代理服务器与 Elastic Agent 和舰队

托管您自己的 Elastic 软件包注册表编辑

Elastic 软件包注册表软件包包含在 软件包验证 中使用的签名。默认情况下,舰队使用 Elastic 公共 GPG 密钥来验证软件包签名。如果需要更改此 GPG 密钥,请使用 kibana.yml 中的 xpack.fleet.packageVerification.gpgKeyPath 设置。有关更多信息,请参阅 舰队设置

如果无法通过代理服务器路由流量,您可以托管自己的 Elastic 软件包注册表。

可以使用其中一个可用的 Docker 映像在本地部署和托管 Elastic 软件包注册表。这些 Docker 映像包括 Elastic 软件包注册表和一系列软件包。

有不同的发行版可用

  • 8.14.3(推荐):docker.elastic.co/package-registry/distribution:8.14.3 - 从与 Elastic Stack 8.14.3 一起发布的生产存储库中选择软件包。
  • lite-8.14.3:docker.elastic.co/package-registry/distribution:lite-8.14.3 - 从与 Elastic Stack 8.14.3 一起发布的生产存储库中最常用软件包的子集。此映像是在隔离环境中开始使用舰队的理想选择。
  • production:docker.elastic.co/package-registry/distribution:production - 生产注册表中可用的软件包(https://epr.elastic.co)。
  • lite:docker.elastic.co/package-registry/distribution:lite - 生产注册表中可用最常用软件包的子集(https://epr.elastic.co)。

要更新发行版映像,请重新拉取映像,然后重新启动 Docker 容器。

每个发行版都包含可由不同版本的 Elastic Stack 使用的软件包。Elastic 软件包注册表 API 公开了一个 Kibana 版本约束,允许过滤与特定版本兼容的软件包。

这些步骤使用标准 Docker CLI,但您可以根据此信息创建 Kubernetes 清单。这些映像也可以与与 Docker 映像兼容的其他容器运行时一起使用。

  1. 从公共 Docker 注册表拉取 Docker 映像

    docker pull docker.elastic.co/package-registry/distribution:8.14.3
  2. 在本地保存 Docker 映像

    docker save -o package-registry-8.14.3.tar docker.elastic.co/package-registry/distribution:8.14.3

    检查映像大小以确保您有足够的磁盘空间。

  3. 将映像传输到隔离环境并加载它

    docker load -i package-registry-8.14.3.tar
  4. 运行 Elastic 软件包注册表

    docker run -it -p 8080:8080 docker.elastic.co/package-registry/distribution:8.14.3
  5. (可选)您可以通过请求根路径来监控 Elastic 软件包注册表的运行状况

    docker run -it -p 8080:8080 \
        --health-cmd "curl -f -L http://127.0.0.1:8080/health" \
        docker.elastic.co/package-registry/distribution:8.14.3
将 Kibana 连接到您托管的 Elastic 软件包注册表编辑

使用 Kibana 配置中的 xpack.fleet.registryUrl 属性来设置您托管的软件包注册表的 URL。例如

xpack.fleet.registryUrl: "http://package-registry.corp.net:8080"
Elastic 软件包注册表的 TLS 配置编辑

您可以将 Elastic 软件包注册表配置为使用 TLS 在安全的 HTTPS 端口上侦听。

例如,假设在 /etc/ssl 中有一个密钥和证书对,您可以使用以下命令启动在 443 端口上侦听的 Elastic 软件包注册表

docker run -it -p 443:443 \
  -v /etc/ssl/package-registry.key:/etc/ssl/package-registry.key:ro \
  -v /etc/ssl/package-registry.crt:/etc/ssl/package-registry.crt:ro \
  -e EPR_ADDRESS=0.0.0.0:443 \
  -e EPR_TLS_KEY=/etc/ssl/package-registry.key \
  -e EPR_TLS_CERT=/etc/ssl/package-registry.crt \
  docker.elastic.co/package-registry/distribution:8.14.3
使用自定义 CA 证书编辑

如果您使用的是自签名证书或由自定义证书颁发机构 (CA) 颁发的证书,则需要在 Kibana 启动文件中的 NODE_EXTRA_CA_CERTS 环境变量中设置 CA 的文件路径。

NODE_EXTRA_CA_CERTS="/etc/kibana/certs/ca-cert.pem"

托管您自己的工件注册表以进行二进制下载编辑

Elastic Agent 必须能够访问 Elastic 工件注册表才能在升级期间下载二进制文件。默认情况下,Elastic Agent 会从 https://artifacts.elastic.co/downloads/ 下载工件。

要在隔离环境中提供二进制文件,您可以托管自己的自定义工件注册表,然后将 Elastic Agent 配置为从中下载二进制文件。

  1. 在 Elastic Agent 可以访问的位置创建自定义工件注册表

    1. 从公共 Elastic 工件注册表 https://artifacts.elastic.co/downloads/ 下载最新的发行版工件。例如,以下 cURL 命令下载升级在 Linux x86_64 上运行的 Elastic Agent 可能需要的全部工件。您可以将 x86_64 替换为 arm64 以获取 ARM64 版本。确切的列表取决于您正在使用的集成。请确保还下载每个二进制文件对应的 sha512 和 PGP 签名 (.asc) 文件。这些文件用于在安装和升级过程中进行文件完整性验证。

      curl -O https://artifacts.elastic.co/downloads/apm-server/apm-server-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/apm-server/apm-server-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/apm-server/apm-server-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.14.3-linux-x86_64.tar.gz.asc
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.14.3-linux-x86_64.tar.gz
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.14.3-linux-x86_64.tar.gz.sha512
      curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.14.3-linux-x86_64.tar.gz.asc
    2. 在您的 HTTP 文件服务器上,将工件分组到遵循 Elastic 工件注册表相同约定的目录和子目录中

      <source_uri>/<artifact_type>/<artifact_name>-<version>-<arch>-<package_type>

      其中 <artifact_type> 可以是 beats/elastic-agentbeats/filebeatfleet-serverendpoint-dev 等等。

      请确保您有一个计划或自动化来在 Elastic Agent 的新版本可用时更新您的工件注册表。

  2. 将代理二进制下载位置添加到舰队设置

    1. 打开 舰队 → 设置
    2. 代理二进制下载 下,点击 添加代理二进制源 以添加您的工件注册表的位置。有关这些设置的更多详细信息,请参阅 代理二进制下载设置。如果您希望所有 Elastic Agent 都从此位置下载二进制文件,请将其设置为默认值。
  3. 如果您的工件注册表不是默认注册表,请编辑您的代理策略以覆盖默认设置

    1. 转到 舰队 → 代理策略 并点击策略名称进行编辑。
    2. 点击 设置
    3. 代理二进制下载 下,选择您的工件注册表。

      当您触发对注册到该策略的任何 Elastic Agent 进行升级时,将从您的工件注册表而不是公共存储库下载二进制文件。

不使用舰队? 对于独立的 Elastic Agent,您可以在 elastic-agent.yml 文件中的 agent.download.sourceURI 下设置二进制下载位置,或运行带有 --source-uri 标志的 elastic-agent upgrade 命令。