Monitoring PostgreSQL

在您安裝 Instana 代理程式之後,會自動部署並安裝 PostgreSQL 感應器。

支援的作業系統

PostgresQL 感應器支援的作業系統與主機代理程式需求一致,可以在每一個主機代理程式的「支援的作業系統」區段中檢查這些需求,例如 Unix 的支援作業系統

支援的版本

Instana 支援下列版本的 PostgresQL:

  • PostgresQL 8.0.x 至 8.4.x
  • PostgresQL 9.0.x 至 9.6.x
  • PostgresQL 10.x
  • PostgresQL 11.x
  • PostgresQL 12.x
  • PostgresQL 13.x
  • PostgresQL 14.x
  • PostgresQL 15.x

配置

啟用統計資料收集

統計資料的收集由 postgresql.conf 檔案中設定的配置參數所控制,該檔案在配置 postgresql 時建立。 若要監視統計資料的收集,請將下列參數設為 on (也接受yestrue1 ):

參數 說明
track_activities = on 監視任何伺服器處理程序所執行的現行指令。
track_counts = on 監視所收集與表格及索引存取相關的累加統計資料。
track_io_timing = on 監視區塊讀取及寫入時間。

如需統計資料收集配置的相關資訊,請參閱 PostgreSQL 說明文件

若要顯示詳細資料查詢計數,您必須在 postgresql.conf 檔案中配置 shared_preload_libraries 欄位,以載入 pg_stat_statements 副檔名,如下所示:

shared_preload_libraries = 'pg_stat_statements'

如需 shared_preload_libraries 欄位的相關資訊,請參閱 共用程式庫預載

建立監視使用者

監視度量收集的最低許可權是 pg_stat_database 資料庫上的 SELECT 。 下列範例顯示如何建立代理程式需求的使用者:

create user <USERNAME> with password <PASSWORD>;
grant SELECT ON pg_stat_database to <USERNAME>;

感應器

若要配置感應器連接至 PostgreSQL時所需的鑑別,請完成下列步驟:

  1. 透過啟用代理程式配置檔 <agent_install_dir>/etc/instana/configuration.yaml中的配置區段來配置使用者認證。

  2. 輸入使用者名稱和密碼。

    附註: 密碼是明碼密碼。

對於密碼型鑑別,對應 PostgreSQL 使用者的鑑別機制必須是 md5、 scram-sha-256 (第 10 版以及更新版本) 或密碼。 如需相關資訊,請參閱 PostgreSQL 說明文件中的 密碼鑑別 及「用戶端鑑別」一節。

若要在感應器與 PostgreSQL之間建立連線, PostgreSQL 必須包含名稱與使用者名稱相同的資料庫:

com.instana.plugin.postgresql:
  user: '<USERNAME>'
  password: '<PASSWORD>'
  database: '' # by default PostgreSQL will use 'user' as database to connect to.

資料庫 欄位僅用於鑑別。 代理程式會自動讀取配置檔 <agent_install_dir>/etc/instana/configuration.yaml的變更。 因此,此配置檔的變更會熱重新載入 (不需要重新啟動代理程式)。

若要收集資料庫度量值,您必須為 PostgreSQL 實例內存在的所有資料庫指派指定的 user CONNECT 專用權。 下列範例顯示如何將 CONNECT 專用權授與使用者:

GRANT CONNECT ON DATABASE <DATABASE_NAME> TO <USERNAME>;

度量值集合

若要檢視度量值,請完成下列步驟:

  1. 在 Instana 使用者介面的資訊看板中,選取 基礎架構
  2. 按一下特定的受監視主機,以檢視主機儀表板,其中包含所有收集的度量及受監視處理程序。

配置資料

請參閱從執行中 Postgres 實例收集的下列配置資料:

  • 程序 ID
  • 開始時間
  • 版本
  • 角色
  • 連線數上限

效能度量

下列是針對每一個 Postgres 實例所收集的效能度量值:

PostgreSQL 伺服器

度量 說明 精度
已確定的交易總數 在所有資料庫中確定的交易數。 1 秒
作用中連線總數 所有資料庫的作用中連線數。 1 秒
連線使用情形 作用中連線數,作為所容許連線數上限的一部分。 1 秒
抄寫延遲 (僅適用於抄寫) 主要伺服器與抄本伺服器之間的抄寫延遲以位元組及秒為單位顯示。 1 秒

資料庫

度量 說明 精度
已確定的交易 在此資料庫中確定的交易數。 1 秒
已回復的交易 在此資料庫中回復的交易數。 1 秒
快取命中率 在緩衝區快取中找到的磁碟區塊百分比,因此不需要讀取。 1 秒
待命衝突 由於與此資料庫中的回復發生衝突而取消的查詢數。 1 秒
傳回的值組數 循序掃描所提取的存活列數,加上此資料庫中索引掃描所傳回的索引項目數。 1 秒
已提取的值組 此資料庫中索引掃描所提取的現用列數。 1 秒
資料庫大小 此資料庫所使用的磁碟空間。 1 秒
作用中連線 此資料庫的作用中連線數。 1 秒

性能簽章

每一個感應器都有一個經過策劃的性能簽章知識庫,可針對送入的度量值持續進行評估,並用來提出取決於使用者影響的問題或發生事件。

內建事件 會根據實體上的性能簽章失敗來觸發問題或突發事件,而 自訂事件 會根據任何特定實體的個別度量值臨界值來觸發問題或突發事件。

如需 PostgreSQL 感應器之建置事件的相關資訊,請參閱 內建事件參照

疑難排解

使用這些疑難排解項目來協助解決與 PostgreSQL相關的問題。 在 Instana 的 Postgresql 儀表板上,以及在日誌中,會顯示一則錯誤訊息,其中含有所指出的問題類型,以及關於發生錯誤的簡要說明。

PostgreSQL 統計資料未啟用

監視問題類型: postgresql_stats_not_enabled

偵測到 PostgreSQL 伺服器,但未啟用統計資料收集。 您需要啟用統計資料收集。 如需相關資訊,請參閱 啟用統計資料收集 一節。

PostgreSQL 鑑別失敗

監視問題類型: postgresql_authentication_failed

PostgreSQL 鑑別失敗。 若要建立監視使用者並配置代理程式,請參閱 建立監視使用者 一節。

PostgreSQL 連線失敗

監視問題類型: postgresql_connection_failed

代理程式無法連接至 PostgreSQL 伺服器。 您需要驗證是否已在代理程式與感應器之間建立連線。