跳至內容

如何追蹤 Amazon RDS for PostgreSQL 資料庫執行個體的登入失敗嘗試?

1 分的閱讀內容
0

我想要追蹤 Amazon Relational Database Service (Amazon RDS) for PostgreSQL 資料庫執行個體的失敗連線次數。

解決方法

PostgreSQL 每小時都會產生新的日誌檔案。若要追蹤執行 PostgreSQL 的資料庫執行個體登入失敗嘗試,請開啟 log_connections 參數。該參數位於與資料庫執行個體相關聯的自訂參數群組中。然後,當使用者嘗試使用錯誤的憑證登入您的資料庫執行個體時,系統會將失敗嘗試記錄到日誌中。失敗嘗試看起來類似以下範例:「error/postgresql.log.2018-04-19-10.」 如需更多資訊,請參閱使用參數群組

請參閱以下登入嘗試失敗的範例:

2018-04-19 10:12:31 UTC:123.45.67.8(6789):[unknown]@[unknown]:[12507]:LOG: connection received: host=123.45.67.8port=12345
2018-04-19 10:12:31 UTC:123.45.67.8(6789):test_user@Test_DB:[12507]:FATAL: password authentication failed for user "test_user"

您也可以使用 PostgreSQL log_connections 參數,記錄執行 PostgreSQL 的資料庫執行個體登入成功嘗試。

請參閱以下登入嘗試成功的範例:

2018-04-19 10:19:20 UTC:123.45.67.8(6789):[unknown]@[unknown]:[17196]:LOG: connection received: host=123.45.67.8 port=12345
2018-04-19 10:19:20 UTC:123.45.67.8(6789):test_user@Test_DB:[17196]:LOG: connection authorized: user=test_user database=Test_DB SSL enabled (protocol=xxxx, cipher=xxxx, compression=off)

使用 log_connectionslog_disconnections 參數來記錄使用者工作階段的持續時間。

請參閱以下工作階段持續時間範例:

2018-04-19 10:19:43 UTC:123.45.67.8(6789):test_user@Test_DB:[17196]:LOG: disconnection: session time: 0:00:23.753 user=test_user database=Test_DB host=123.45.67.8 port=12345

**注意:**用戶端機器的 IP 位址是 123.45.67.8,而 6789 是提供給 PostgreSQL 資料庫程序的 PID (程序 ID)。

剖析日誌檔案

使用 AWS Command Line Interface (AWS CLI) 或 Amazon RDS 主控台來下載日誌。然後,使用 grep 公用程式搜尋失敗的連線:

注意: 如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新版本的 AWS CLI

$ grep -B 1 "authentication failed" postgresql.log.2018-04-19-10
2018-04-19 10:12:31 UTC:123.45.67.8(6789):[unknown]@[unknown]:[12507]:LOG: connection received: host=123.45.67.8port=12345
2018-04-19 10:12:31 UTC:123.45.67.8(6789):test_user@Test_DB:[12507]:FATAL: password authentication failed for user "test_user"

注意:****- B 1 參數會告訴 grep 同時顯示符合您正搜尋之模式的行之前的一行。在此範例中,該模式是驗證失敗

您也可以使用 PostgreSQL log_fdw 延伸模組,以外部資料表形式存取這些日誌。如果您想要保留 PostgreSQL 日誌檔案的時間超過保留期間,請將 Amazon RDS for PostgreSQL 日誌發佈至 Amazon CloudWatch Logs

相關資訊

如何使用 Amazon RDS 開啟 PostgreSQL 的查詢記錄?

RDS for PostgreSQL 資料庫日誌檔案

將日誌資料匯出至 Amazon S3

將 Aurora PostgreSQL 相容版日誌發佈至 CloudWatch Logs