气隙环境
编辑气隙环境
编辑在受限或封闭的网络中运行 Elastic Agent 时,您需要采取额外的步骤来确保
- Kibana 能够访问 Elastic Package Registry 以下载软件包元数据和内容。
- Elastic Agent 能够在升级期间从 Elastic Artifact Registry 下载二进制文件。
因此,必须可以通过 HTTP 代理和/或自托管的方式从 Kibana 访问 Elastic Package Registry。
因此,必须可以通过 HTTP 代理和/或自托管的方式从 Kibana 访问 Elastic Artifact Registry。
有关气隙 离线端点,请参阅 Elastic Security Solution 文档。
在气隙环境中升级所有组件时,建议按以下顺序升级
- 升级 Elastic Package Registry。
- 升级 Elastic Stack,包括 Kibana。
- 升级 Elastic Artifact Registry 并确保最新的 Elastic Agent 二进制文件可用。
- 升级本地 Fleet Server。
- 在 Fleet 中,为所有 Elastic Agent 发布升级。
为 Fleet 启用气隙模式
编辑在 Kibana 中设置以下属性以在 Fleet 中启用气隙模式。这允许 Fleet 智能地跳过在气隙环境中不应尝试的某些请求或操作。
xpack.fleet.isAirGapped: true
使用代理服务器访问 Elastic Package Registry
编辑默认情况下,Kibana 从 epr.elastic.co 的公共 Elastic Package Registry 下载软件包元数据和内容。
如果可以通过网络网关将流量路由到 Elastic Package Registry 的公共端点,请在 Kibana 中设置以下属性以使用代理服务器
xpack.fleet.registryProxyUrl: your-nat-gateway.corp.net
有关更多信息,请参阅 将代理服务器与 Elastic Agent 和 Fleet 结合使用。
托管您自己的 Elastic Package Registry
编辑如果通过代理服务器路由流量不是一种选择,您可以托管自己的 Elastic Package Registry。
可以使用可用的 Docker 镜像之一在本地部署和托管 Elastic Package Registry。这些 Docker 镜像包括 Elastic Package Registry 和一些软件包。
有不同的分发版本可用
- 8.17.0(推荐):
docker.elastic.co/package-registry/distribution:8.17.0
- 从 Elastic Stack 8.17.0 发布的产品存储库中选择的软件包。 - lite-8.17.0:
docker.elastic.co/package-registry/distribution:lite-8.17.0
- 从 Elastic Stack 8.17.0 发布的产品存储库中最常用的软件包子集。此镜像是在气隙环境中开始使用 Fleet 的好选择。 - 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 Package Registry API 公开了一个 Kibana 版本约束,该约束允许筛选与特定版本兼容的软件包。
这些步骤使用标准 Docker CLI,但您可以基于此信息创建 Kubernetes 清单。这些镜像也可以与兼容 Docker 镜像的其他容器运行时一起使用。
-
从公共 Docker 注册表中拉取 Docker 镜像
docker pull docker.elastic.co/package-registry/distribution:8.17.0
-
在本地保存 Docker 镜像
docker save -o package-registry-8.17.0.tar docker.elastic.co/package-registry/distribution:8.17.0
检查镜像大小以确保您有足够的磁盘空间。
-
将镜像传输到气隙环境并加载它
docker load -i package-registry-8.17.0.tar
-
运行 Elastic Package Registry
docker run -it -p 8080:8080 docker.elastic.co/package-registry/distribution:8.17.0
-
(可选)您可以使用对根路径的请求来监控 Elastic Package Registry 的运行状况
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.17.0
将 Kibana 连接到您托管的 Elastic Package Registry
编辑使用 Kibana 配置中的 xpack.fleet.registryUrl
属性来设置您托管的软件包注册表的 URL。例如
xpack.fleet.registryUrl: "http://package-registry.corp.net:8080"
Elastic Package Registry 的 TLS 配置
编辑您可以将 Elastic Package Registry 配置为使用 TLS 侦听安全的 HTTPS 端口。
例如,给定在 /etc/ssl
中可用的密钥和证书对,您可以使用以下命令启动在 443 端口上侦听的 Elastic Package Registry
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.17.0
Elastic Package Registry 支持 1.0 到 1.3 的 TLS 版本。可以使用 EPR_TLS_MIN_VERSION
配置接受的最低版本,默认为 1.0。如果要将支持的版本限制为 1.2 到 1.3,可以使用 EPR_TLS_MIN_VERSION=1.2
。
使用自定义 CA 证书
编辑如果您使用自签名证书或由自定义证书颁发机构 (CA) 颁发的证书,则需要在 Kibana 启动文件的 NODE_EXTRA_CA_CERTS
环境变量中设置 CA 的文件路径。
NODE_EXTRA_CA_CERTS="/etc/kibana/certs/ca-cert.pem"
托管您自己的二进制文件下载工件注册表
编辑Elastic Agent 必须能够访问 Elastic Artifact Registry 才能在升级期间下载二进制文件。默认情况下,Elastic Agent 从 https://artifacts.elastic.co/downloads/
下载工件。
为了在气隙环境中提供二进制文件,您可以托管自己的自定义工件注册表,然后配置 Elastic Agent 从其中下载二进制文件。
-
在 Elastic Agent 可访问的位置创建自定义工件注册表
-
从
https://artifacts.elastic.co/downloads/
的公共 Elastic Artifact Registry 下载最新的发布工件。例如,以下 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.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/apm-server/apm-server-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/apm-server/apm-server-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.17.0-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.17.0-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.17.0-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.17.0-linux-x86_64.tar.gz.asc
-
在您的 HTTP 文件服务器上,将工件分组到目录和子目录中,这些目录和子目录遵循 Elastic Artifact Registry 使用的相同约定
<source_uri>/<artifact_type>/<artifact_name>-<version>-<arch>-<package_type>
其中
-
<artifact_type>
的格式为beats/elastic-agent
、fleet-server
、endpoint-dev
等。 -
<artifict_name>
的格式为elastic-agent
、endpoint-security
或fleet-server
等。 -
arch-package-type
的格式为linux-x86_64
、linux-arm64
、windows_x86_64
、darwin_x86_64
或 darwin_aarch64`。 -
如果您使用 DEB 软件包管理器
- 64 位变体的格式为
<artifact_name>-<version>-amd64.deb
。 - aarch64 变体的格式为
<artifact_name>-<version>-arm64.deb
。
- 64 位变体的格式为
-
如果您使用 RPM 软件包管理器
- 64 位变体的格式为
<artifact_name>-<version>-x86_64.rpm
。 - aarch64 变体的格式为
<artifact_name>-<version>-aarch64.rpm
。
- 64 位变体的格式为
-
- 如果您有任何疑问,请访问 Elastic Agent 下载页面,以查看从哪个 URL 下载各种二进制文件。
- 确保您制定了计划或自动化流程,以便在有新版本的 Elastic Agent 可用时更新您的工件注册表。
-
-
将代理二进制文件下载位置添加到 Fleet 设置
- 打开 Fleet → 设置。
- 在 代理二进制文件下载 下,单击 添加代理二进制文件源 以添加您的工件注册表的位置。有关这些设置的更多详细信息,请参阅 代理二进制文件下载设置。如果您希望所有 Elastic Agent 从此位置下载二进制文件,请将其设置为默认值。
-
如果您的工件注册表不是默认值,请编辑您的代理策略以覆盖默认值
- 转到 Fleet → 代理策略,然后单击策略名称进行编辑。
- 单击 设置。
-
在 代理二进制文件下载 下,选择您的工件注册表。
当您触发为注册到该策略的任何 Elastic Agent 升级时,二进制文件会从您的工件注册表而不是公共存储库下载。
未使用 Fleet? 对于独立的 Elastic Agent,您可以在 elastic-agent.yml
文件中的 agent.download.sourceURI
下设置二进制文件下载位置,或者运行 elastic-agent upgrade
命令并指定 --source-uri
标志。