我想追蹤 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_connections 和 log_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 日誌