疑難排解常見問題
本文提供一系列提示和程序,協助您診斷及解決部署和操作 Google Security Operations 遠端代理程式時遇到的常見問題。
金鑰不符問題
如果 Google Security Operations 和遠端代理程式中的私密金鑰不相符,就會發生這個問題。如要解決這個問題,請確認代理資源中的金鑰與 Siemplify agent_db 中的金鑰相符。
遠端連接器故障
如果遠端連接器發生錯誤,請按照下列步驟操作:
- 確認代理程式已成功安裝整合執行個體。
- 檢查代理程式記錄的錯誤層級,找出連線程序中的任何失敗。
- 在本機測試相同的連接器設定,看看是否有錯誤。
安裝失敗:主機 OS 不支援或 EOL 不相容
如果因 glibc 追蹤錯誤和系統呼叫封鎖,導致全新安裝或自動升級失敗,請按照下列步驟操作:
- 確認主機環境並非執行舊版作業系統,因為這類系統可能缺少新式系統呼叫掛鉤。
- 在企業 Linux 發行版上重新託管代理程式環境,並使用最新官方版本。
-
確認主機為支援的平台:Debian 12 (官方基礎)、RHEL 8.7:
檢查
/etc/os-release:執行下列指令,並尋找NAME=和VERSION_ID=:cat /etc/os-release- Debian 12:尋找
NAME="Debian GNU/Linux"和VERSION_ID="12"。 - RHEL 8.7:尋找
NAME="Red Hat Enterprise Linux"和VERSION_ID="8.7"。
- Debian 12:尋找
容器設定會提取先前的作業層,而非「最新」版本
如果重新執行容器設定指令時,不小心提取了先前的作業層,而非新發布的軟體版本,請執行下列指令,明確提取最新映像檔:
Docker:
docker pull us-docker.pkg.dev/siem-ar-public/images/agent:latestPodman:
podman pull us-docker.pkg.dev/siem-ar-public/images/agent:latest
為確保部署作業在最新軟體版本上執行,請務必先提取最新映像檔,再執行代理程式執行指令。
Docker 代理部署失敗
如果 Docker 部署失敗,請按照下列步驟操作:
- 移除 Docker 容器:
執行下列指令,列出執行中的容器:
docker ps執行下列指令,移除失敗的容器:
docker rm -f container_id_or_name
- 移除圖片:
執行下列指令,列出映像檔:
docker images執行下列指令,移除映像檔:
docker rmi image_id_or_name
- 移除磁碟區:
執行下列指令,列出磁碟區:
docker volume ls執行下列指令,移除磁碟區:
docker volume rm volume_name
- 重新部署代理。詳情請參閱「使用 Docker 建立代理程式」。
代理程式卡在「等待代理程式」狀態
如果代理已成功部署,但狀態仍為「waiting for agent」,請按照下列步驟排解問題:
- 檢查主機連線能力:測試代理程式主體機器的網際網路連線能力 (例如
curl www.google.com或ping 8.8.8.8)。如果失敗,表示主機的網際網路連線有問題。 檢查容器連線能力:如果主機測試通過,請使用
docker exec -it container_ID bash進入容器殼層,然後重新檢查連線能力。如果容器無法連線,請重新啟動主體機器上的 Docker 服務 (service docker restart)。執行下列指令:
docker exec -itbash - 再次檢查連線,方法與先前相同。
- 如果沒有連線能力,請執行下列指令,從主體機器 (而非容器) 重新啟動 Docker 服務:
service docker restart 執行下列指令,再次啟動容器:
docker start
查看容器記錄檔中的錯誤
如果上述步驟無效,且重新整理 Google SecOps 的「遠端代理程式」頁面後,代理程式狀態仍為「等待代理程式」,請重新登入容器並提取記錄。
- 在
/var/log/SiemplifyAgent/目錄中尋找記錄。 - 查看記錄檔中是否有任何錯誤,找出根本原因。
- 在
DNS 網路問題
如果容器發生 DNS 解析失敗或網路連線問題,請在 docker run 指令中加入 --network host。使用主機網路模式,容器就能直接共用主機機器的網路堆疊和 DNS 設定。
無法載入 Docker 映像檔 (IP4 轉送功能已停用)
嘗試載入 Google SecOps Docker 映像檔 (系統) 或代理程式時,如果 CLI 顯示錯誤,表示 IP4 轉送功能可能已停用。請按照下列步驟啟用這項功能,並重新啟動代理:
在
/etc/sysctl.conf檔案中新增下列程式碼:net.ipv4.ip_forward=1請注意,您必須使用檔案編輯器 (例如 nano),請使用:yum install nano -y執行下列指令,重新啟動網路服務:
systemctl restart network執行下列指令,重新啟動 Docker 服務:
sudo systemctl restart docker執行下列指令,確認容器是否正在運作:
docker ps如果容器未運作,請執行下列指令,列出所有容器 (包括已停止的容器):
docker ps -a如果容器已列出但已停止,請執行下列指令啟動容器:
docker start container_id_or_name- 如果重新啟動 Docker 和容器後,代理程式或系統仍未執行:
執行下列指令,停止容器:
docker stop container_id_or_name執行下列指令,刪除容器:
docker rm container_id_or_name執行下列指令,刪除映像檔:
docker rmi image_name- 重新載入圖片。
關閉或重新啟動代理程式後發生錯誤
執行下列指令,強制啟動安裝程式代理:
systemctl start supervisord
執行下列指令,強制啟動 Docker 代理程式:
docker start
遠端代理工作在強化環境中失敗
在 RHEL 8 等強化 Linux 主機上部署遠端代理時,代理工作 (包括儲存或升級整合,或執行連接器和動作) 可能會失敗或在 UI 中逾時,而代理狀態仍為「Live」。如果主機 OS 強制執行安全性措施 (例如 Enforcing 模式下的 SELinux、AppArmor 或端點安全性軟體),導致容器內的代理程式無法執行 OS 指令,就會發生這個問題。
如要解決這個問題,請將遠端代理程式排除在主機安全性強制執行政策之外,以免 OS 指令遭到封鎖。請按照下列步驟診斷及解決問題:
確認主機上的 SELinux 是否處於
Enforcing模式:getenforce sestatus如要檢查
/var/log/audit/audit.log最近是否有遭封鎖的指令或遭拒的操作,而不傳回整個記錄檔,請執行下列指令:sudo grep -i "denied" /var/log/audit/audit.log | tail -n 50您也可以在主機上檢查端點安全性記錄,查看與代理程式容器程序相關的封鎖作業。
將遠端代理程式從主機的封鎖安全性政策中排除:
- 如果是容器化部署作業 (Docker 或 Podman),請在首次啟動遠端代理程式容器時,將
--security-opt label=disable(適用於 SELinux) 或--security-opt apparmor=unconfined(適用於 AppArmor) 新增至docker run或podman run指令,藉此排除整個容器。 - 為遠端代理程式目錄 (
/opt/SiemplifyAgent、/home/siemplify_agent/agent_source和/var/log/SiemplifyAgent) 和執行檔 (/usr/local/bin/python3.11、/usr/local/bin/pip3和/usr/bin/supervisord) 設定自訂 SELinux 政策規則、AppArmor 設定檔或主機端點安全豁免,以免 OS 指令遭到封鎖。
- 如果是容器化部署作業 (Docker 或 Podman),請在首次啟動遠端代理程式容器時,將
或者,如果您無法設定指定的 SELinux 豁免,請在主機的
/etc/selinux/config中設定SELINUX=permissive,將 SELinux 設為在重新啟動時持續處於Permissive模式。如果無法修改
/etc/selinux/config,或需要立即套用變更而不重新啟動,請執行下列指令,暫時將 SELinux 切換至Permissive模式:sudo setenforce 0
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。