如何追蹤 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 日誌

相關資訊

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

RDS for PostgreSQL 資料庫日誌檔案

將日誌資料匯出至 Amazon S3

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