隔离环境
编辑隔离环境编辑
在受限或封闭网络中运行 Elastic Agent 时,您需要采取额外步骤以确保
- Kibana 能够访问 Elastic 软件包注册表以下载软件包元数据和内容。
- Elastic Agent 能够在升级期间从 Elastic 工件注册表下载二进制文件。
因此,必须通过 HTTP 代理和/或自托管方式从 Kibana 访问 Elastic 软件包注册表。
因此,必须通过 HTTP 代理和/或自托管方式从 Kibana 访问 Elastic 工件注册表。
有关隔离 离线端点,请参阅 Elastic 安全解决方案文档。
升级隔离环境中的所有组件时,建议您按以下顺序升级
- 升级 Elastic 软件包注册表。
- 升级 Elastic Stack,包括 Kibana。
- 升级 Elastic 工件注册表,并确保最新的 Elastic Agent 二进制文件可用。
- 升级本地舰队服务器。
- 在舰队中,对所有 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 软件包注册表。
可以使用其中一个可用的 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 映像兼容的其他容器运行时一起使用。
-
从公共 Docker 注册表拉取 Docker 映像
docker pull docker.elastic.co/package-registry/distribution:8.14.3
-
在本地保存 Docker 映像
docker save -o package-registry-8.14.3.tar docker.elastic.co/package-registry/distribution:8.14.3
检查映像大小以确保您有足够的磁盘空间。
-
将映像传输到隔离环境并加载它
docker load -i package-registry-8.14.3.tar
-
运行 Elastic 软件包注册表
docker run -it -p 8080:8080 docker.elastic.co/package-registry/distribution:8.14.3
-
(可选)您可以通过请求根路径来监控 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 配置为从中下载二进制文件。
-
在 Elastic Agent 可以访问的位置创建自定义工件注册表
-
从公共 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
-
在您的 HTTP 文件服务器上,将工件分组到遵循 Elastic 工件注册表相同约定的目录和子目录中
<source_uri>/<artifact_type>/<artifact_name>-<version>-<arch>-<package_type>
其中
<artifact_type>
可以是beats/elastic-agent
、beats/filebeat
、fleet-server
、endpoint-dev
等等。请确保您有一个计划或自动化来在 Elastic Agent 的新版本可用时更新您的工件注册表。
-
-
将代理二进制下载位置添加到舰队设置
- 打开 舰队 → 设置。
- 在 代理二进制下载 下,点击 添加代理二进制源 以添加您的工件注册表的位置。有关这些设置的更多详细信息,请参阅 代理二进制下载设置。如果您希望所有 Elastic Agent 都从此位置下载二进制文件,请将其设置为默认值。
-
如果您的工件注册表不是默认注册表,请编辑您的代理策略以覆盖默认设置
- 转到 舰队 → 代理策略 并点击策略名称进行编辑。
- 点击 设置。
-
在 代理二进制下载 下,选择您的工件注册表。
当您触发对注册到该策略的任何 Elastic Agent 进行升级时,将从您的工件注册表而不是公共存储库下载二进制文件。
不使用舰队? 对于独立的 Elastic Agent,您可以在 elastic-agent.yml
文件中的 agent.download.sourceURI
下设置二进制下载位置,或运行带有 --source-uri
标志的 elastic-agent upgrade
命令。