Defender 无法连接到Prisma Cloud控制台出现错误“由于主机名冲突导致连接失败”
Symptom
Defender 无法连接到Prisma Cloud控制台在 Defender 日志中显示以下错误消息:
Connection failed due to hostname conflict, Defender name "<hostname>" is already connected.
Environment
- Prisma Cloud
Cause
- 在安装过程中,Defender 会从底层 Host 中获取 Hostname 作为 DefenderID .
- Prisma Cloud 控制台需要 DefenderID是独一无二的。
- 如果不是唯一的,则另一主机与同一防御者的后续连接ID(主机名)将被拒绝。
Resolution
以下是针对不同部署方案列出的步骤,以使用标志重新安装 Defender:unique_hostname=true
编排器(daemonset):
- 使用 Kubernetes 或 Openshift 等任何编排器,您可以简单地修改YAML/Helm Chart 如下,再次应用到集群。
- Orchestrator 将使用新配置自动在节点上重新部署 defender pod。
如果你有YAML/HELM用于部署,这里是步骤:
YAML
- 用文本编辑器打开yaml文件,找到名称为CLOUD_HOSTNAME_ENABLED的键,将值从false修改为true
当找不到键 CLOUD_HOSTNAME_ENABLED 时,创建一个新的键/值,如下图所示:
- 执行命令以推送 daemonset 的新设置:
kubectl apply -f example.yaml
注意:将 example.yaml 替换为您正在使用的 yaml 文件名。
4.更新daemonset后,集群会自动删除现有的pod,并部署具有唯一主机名/防御者的新设置的podID .
舵图
打开twistlock defender Helm chart路径下的value.yaml,修改key为name的值唯一主机名, 从错误的到真的
当找不到密钥时,如下图创建一个新的键/值唯一主机名:
执行命令以通过 helm 推送 daemonset 的新设置:
helm upgrade -n twistlock 扭锁
(注意:您可能需要将命名空间和/或 helm 版本名称从 twistlock 更改为您自己定义的名称)
示例输出:
找不到原图YAML/头盔图?
如果找不到YAML/HELM用于部署防御者的图表,您可以生成一个新的YAML/HELM通过以下步骤:
去计算UI> 管理 > Defenders > 部署 > Defenders > Orchestrator .
选择适合您环境的最佳选项/值,例如选择协调器类型、Defender 通信端口等。
确保将“为主机分配全局唯一名称(可选)”设置为“打开”:
确认所有选项都选择好后,点击下载YAML或相应的 Helm 图表:
单后卫:
如果您使用的是 Single Defender,则需要卸载当前的 Defender,然后按照以下步骤安装新的 Defender:
卸载防御者:
视窗:
使用管理员在命令提示符下运行此 cmd:
C:\程序文件\Prisma Cloud \scripts\defender.ps1 -卸载
OR
C:\Program Files\Twistlock\scripts\defender.ps1 -卸载
Linux——容器防御者:
运行这个命令:
sudo /var/lib/twistlock/scripts/twistlock.sh -u
Linux - 主机防御者:
运行这个命令:
sudo /var/lib/twistlock/scripts/twistlock.sh -u defender-server
重新安装 Defender:
访问计算UI> 管理 > 防御者 > 部署 > 防御者 > 单一防御者
选择适合您环境的最佳选项/值,例如选择 Defender 类型、Defender 通信端口等。
确保将“为主机分配全局唯一名称(可选)”设置为“打开”
复制上一步的脚本,在你的主机上执行安装新的防御者。
对于 Linux,将结果粘贴到终端/CLI
对于 Windows,将结果粘贴到 powershell
全新安装后,防御者应使用唯一的主机名向控制台报告。 问题解决了。