Ubuntu

如何在 ubuntu 中跟踪導致 postgres 在 Amazon EC2 容器中佔用 100% CPU 使用率的幽靈程序的來源?

  • February 8, 2020

我在 AWS EC2 微實例上執行 PostgreSQL 10.10 (Ubuntu 10.10-0ubuntu0.18.04.1)。以前,我允許從任何地方遠端連接到 postgres db。幾天后,我看到postgres使用者執行的未知程序佔用了 100% 的 CPU 使用率。執行top命令給出類似的輸出。

8092 postgres  20   0  302872 266776      0 S 99.3 26.5   2574:21 WI0oUt

沒有在後台長時間執行的活動查詢。我停止了 postgres DB,即使那個幽靈程序正在執行。我在這裡得到了問題的可能答案。但是我需要知道哪個父程序開始執行這些幽靈子程序?如果我使用 執行psPID我得到PPID1。我需要知道執行這些子程序的受感染程序是什麼?

我已經嘗試執行manappros對於程序名,我嘗試重置postgres使用者密碼以解決妥協,但沒有效果。無論如何要找出是哪個受感染的程序導致了這種情況?或者如何在不格式化伺服器的情況下處理這種情況?

對伺服器不妥協是非常困難的。最好的選擇是:

  • 轉儲您的數據庫(使用pg_dump),
  • 刪除EC2 實例,
  • 創建新實例,
  • 重新安裝postgres,和
  • 重新載入數據。

**教訓:**永遠不要讓數據庫伺服器對世界開放。使用安全組將訪問限制為僅對實際需要訪問的 IP 進行。理想情況下,使用 AWS RDS 可以自動修補您的數據庫以緩解安全問題。

引用自:https://serverfault.com/questions/1002320