web-dev-qa-db-ja.com

postgresがAmazonEC2コンテナのCPU使用率を100%使用する原因となっているubuntuのゴーストプロセスの起点を追跡するにはどうすればよいですか?

AWSEC2マイクロインスタンスでPostgreSQL10.10(Ubuntu 10.10-0ubuntu0.18.04.1)を実行しています。以前は、どこからでもpostgresdbへのリモート接続を許可していました。数日後、postgresユーザーによって実行された不明なプロセスがCPU使用率の100%を使用しているのがわかります。 topコマンドを実行すると、同様の出力が得られます。

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

バックグラウンドで長時間実行されているアクティブなクエリはありません。そのゴーストプロセスが実行されている場合でも、postgresDBを停止しました。私は問題のありそうな答えを得ました ここ 。しかし、どの親プロセスがそのようなゴースト子プロセスの実行を開始しているかを知る必要がありますか? psPIDと一緒に実行すると、PPIDが1になります。これらの子プロセスを実行している感染したプログラムを知る必要がありますか?

プロセス名に対してmanapprosを実行しようとしましたが、侵害に対処するためにpostgresユーザーパスワードをリセットしようとしましたが、効果はありませんでした。とにかく、どの感染したプログラムがこれを引き起こしているのかを知るために?または、サーバーをフォーマットせずにこの状況を処理するにはどうすればよいですか?

2

サーバーを妥協しないことは非常に困難です。最善の策は次のとおりです。

  • dumpデータベース(pg_dumpを使用)、
  • 削除 EC2インスタンス、
  • 作成新しいインスタンス、
  • 再インストール postgres、および
  • リロードデータ。

レッスン:データベースサーバーを世界に公開したままにしないでください。セキュリティグループを使用して、実際にアクセスが必要なIPのみにアクセスを制限します。また、理想的には、データベースに自動的にパッチを適用してセキュリティの問題を軽減できるAWSRDSを使用します。

2
MLu