隔离环境
编辑隔离环境编辑
在受限或封闭网络中运行 Elastic Agent 时,您需要采取额外步骤来确保
- Kibana 能够访问 Elastic 软件包注册表以下载软件包元数据和内容。
- Elastic Agent 能够在升级期间下载二进制文件。
有关隔离 离线端点 的信息,请参阅 Elastic 安全解决方案文档。
在升级隔离环境中的所有组件时,建议您按以下顺序进行升级
- 升级 Elastic 软件包注册表。
- 升级 Elastic Stack,包括 Kibana。
- 升级 Elastic 工件注册表,并确保最新的 Elastic Agent 二进制文件可用。
- 升级本地 Fleet 服务器。
- 在 Fleet 中,对所有 Elastic Agent 发起升级。
为 Fleet 启用隔离模式编辑
在 Kibana 中设置以下属性以在 Fleet 中启用隔离模式。这允许 Fleet 智能地跳过在隔离环境中不应该尝试的某些请求或操作。
xpack.fleet.isAirGapped: true
使用代理服务器访问 Elastic 软件包注册表编辑
默认情况下,Kibana 从位于 epr.elastic.co 的公共 Elastic 软件包注册表下载软件包元数据和内容。
如果您可以通过网络网关将流量路由到 Elastic 软件包注册表的公共端点,请在 Kibana 中设置以下属性以使用代理服务器
xpack.fleet.registryProxyUrl: your-nat-gateway.corp.net
有关更多信息,请参阅 将代理服务器与 Elastic Agent 和 Fleet 配合使用。
托管您自己的 Elastic 软件包注册表编辑
如果无法选择通过代理服务器路由流量,则可以托管您自己的 Elastic 软件包注册表。
可以使用其中一个可用的 Docker 镜像在本地部署和托管 Elastic 软件包注册表。这些 Docker 镜像包括 Elastic 软件包注册表和精选的软件包。
有不同的发行版可用
- 8.14.2(推荐):
docker.elastic.co/package-registry/distribution:8.14.2
- 从 Elastic Stack 8.14.2 发布的生产存储库中选择软件包。 - lite-8.14.2:
docker.elastic.co/package-registry/distribution:lite-8.14.2
- 从 Elastic Stack 8.14.2 发布的生产存储库中最常用软件包的子集。此镜像是在隔离环境中开始使用 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 软件包注册表 API 公开了一个 Kibana 版本约束,允许过滤与特定版本兼容的软件包。
这些步骤使用标准 Docker CLI,但您可以根据此信息创建 Kubernetes 清单。这些镜像也可以与其他与 Docker 镜像兼容的容器运行时一起使用。
-
从公共 Docker 注册表拉取 Docker 镜像
docker pull docker.elastic.co/package-registry/distribution:8.14.2
-
在本地保存 Docker 镜像
docker save -o package-registry-8.14.2.tar docker.elastic.co/package-registry/distribution:8.14.2
检查镜像大小以确保您有足够的磁盘空间。
-
将镜像传输到隔离环境并加载它
docker load -i package-registry-8.14.2.tar
-
运行 Elastic 软件包注册表
docker run -it -p 8080:8080 docker.elastic.co/package-registry/distribution:8.14.2
-
(可选)您可以通过请求根路径来监控 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.2
将 Kibana 连接到您托管的 Elastic 软件包注册表编辑
使用 Kibana 配置中的 xpack.fleet.registryUrl
属性来设置您托管的软件包注册表的 URL。例如
xpack.fleet.registryUrl: "http://package-registry.corp.net:8080"
Elastic 软件包注册表的 TLS 配置编辑
您可以将 Elastic 软件包注册表配置为使用 TLS 在安全的 HTTPS 端口上侦听。
例如,假设在 /etc/ssl
中有一个密钥和证书对,您可以使用以下命令启动 Elastic 软件包注册表,使其在 443 端口上侦听
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.2
使用自定义 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 可以访问的位置创建自定义工件注册表
-
从位于
https://artifacts.elastic.co/downloads/
的公共 Elastic 工件注册表下载最新的发行版工件。例如,以下 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.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/apm-server/apm-server-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/apm-server/apm-server-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/osquerybeat/osquerybeat-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/cloudbeat/cloudbeat-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/endpoint-dev/endpoint-security-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/fleet-server/fleet-server-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-collector-8.14.2-linux-x86_64.tar.gz.asc curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.14.2-linux-x86_64.tar.gz curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.14.2-linux-x86_64.tar.gz.sha512 curl -O https://artifacts.elastic.co/downloads/prodfiler/pf-elastic-symbolizer-8.14.2-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 的新版本可用时更新您的工件注册表。
-
-
将代理二进制文件下载位置添加到 Fleet 设置
- 打开 Fleet → 设置。
- 在 代理二进制文件下载 下,单击 添加代理二进制文件源 以添加您的工件注册表的位置。有关这些设置的更多详细信息,请参阅 代理二进制文件下载设置。如果您希望所有 Elastic Agent 都从此位置下载二进制文件,请将其设置为默认值。
-
如果您的工件注册表不是默认值,请编辑您的代理策略以覆盖默认值
- 转到 Fleet → 代理策略 并单击策略名称进行编辑。
- 单击 设置。
-
在 代理二进制文件下载 下,选择您的工件注册表。
当您触发对注册到该策略的任何 Elastic Agent 进行升级时,二进制文件将从您的工件注册表而不是公共存储库下载。
不使用 Fleet? 对于独立的 Elastic Agent,您可以在 elastic-agent.yml
文件的 agent.download.sourceURI
下设置二进制文件下载位置,或者使用指定的 --source-uri
标志运行 elastic-agent upgrade
命令。