天天看點

gpcc安裝與使用文檔一、前言二、gpcc安裝步驟三、gpcc使用手冊

  • 一、前言
    • gpcc特性總覽
    • 幫助文檔
  • 二、gpcc安裝步驟
    • 0. 安裝先決條件
    • 1. 下載下傳安裝包
    • 2. 上傳安裝包
    • 3. 建立安裝路徑
    • 4. 運作安裝程式
    • 5. 更新/安裝 Metrics Collector Extension
    • 6. 啟動gpcc
    • 7. 安裝中可能遇到的問題
  • 三、gpcc使用手冊
    • 1. 系統監控功能
      • 1.1. Dashboard
      • 1.2. Cluster Metrics
      • 1.3. Host Metrics
      • 1.4. Segment Status
      • 1.5. Recommendations
    • 2. 查詢監控功能
    • 3. 系統告警
    • 4. 資源組管理
    • 5. 表資訊查詢

一、前言

Pivotal Greenplum Command Center(以下簡稱gpcc)是為Greenplum大資料平台開發的資料庫監控管理工具,可以從各個度量監控gp系統運作健康程度,也可以為DBA們提供簡單的gp叢集管理手段。對gp使用者來說是非常給力的工具!

gpcc的體系結構:

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-Bw59xtZ4-1614847907673)(png/gpcc4-arch.png)]

gpcc特性總覽

  • gpcc直接繼承gp的認證與權限配置,通過直接操作pg_hba.conf檔案來實作gp的權限控制
  • gpcc提供5個gpcc獨有的使用者權限來實作gpcc中菜單和操作權限的精分
  • gpcc從5個地方“拿數”:OS,gp catalogs,Metrics Collector Extension,gpperfmon,Resource Group/queue
  • 每隔15s,由主節點發送指令,實時搜集系統監控資訊
  • gpcc專用資料庫gpperfmon由gpperfmon_install安裝程式建立,裡面由3種表組成:now, history, tail
  • 主要功能點:
    • 監控Greenplum資料庫性能
    • 監控資料庫查詢
    • 設計&推送系統性能告警
    • 管理資源組,實時配置設定資源
    • 表資訊等其他資訊的查詢統計

幫助文檔

https://tanzu.vmware.com/support

https://gpcc.docs.pivotal.io/630/topics/overview.html

二、gpcc安裝步驟

0. 安裝先決條件

  • gp叢集必須安裝且正常運作
  • 必須設定MASTER_DATA_DIRECTORY環境變量
  • gpcc的安裝目錄(預設/usr/local)在gp所有節點都有gpadmin使用者的讀寫權
  • mdw&smdw必須開放端口28080(BS模式通路端口,可以更改)
  • 所有sdwN節點必須開放8899端口(RPC遠端調用接口)
  • 所有節點必須安裝 Apache Portable Runtime Utility library 類庫

    使用

    yum install apr-util 或 apt install libapr1

    安裝
  • 配置SSL秘鑰(非必須)

1. 下載下傳安裝包

下載下傳到官網:https://network.pivotal.io/products/pivotal-gpdb

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-U4ZhIb4W-1614847907674)(png/gpcc1.png)]

搜尋

"command center"

,按照對應的os版本下載下傳

檢視os發行版本

cat /etc/redhat-release

本文以紅帽7為例,下載下傳greenplum-cc-web-6.3.1-gp6-rhel7-x86_64.zip

下載下傳前必須要注冊使用者。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-T0w4cT9t-1614847907676)(png/gpcc2.png)]

2. 上傳安裝包

上傳安裝包到mdw或smdw伺服器中 gpadmin 使用者的/home目錄下,解壓縮

$ unzip greenplum-cc-web-gp6-<version>-<platform>.zip
           

3. 建立安裝路徑

安裝要求在gp所有節點操作! 或者使用

gpssh

指令操作所有節點,其中hostfile為gp的host叢集配置檔案,每個ip獨占一行

$ source /usr/local/greenplum-db-<version>/greenplum_path.sh
$ gpssh -f <hostfile> 'sudo mkdir -p /usr/local/greenplum-cc-6.3.0'
$ gpssh -f <hostfile> 'sudo chown -R gpadmin:gpadmin /usr/local/greenplum-cc-6.3.0'
$ gpssh -f <hostfile> 'sudo ln -s /usr/local/greenplum-cc-6.3.0 /usr/local/greenplum-cc'
           

4. 運作安裝程式

gpcc總共四種安裝方式:

  • 互動式安裝
  • 靜默安裝,使用參數檔案
  • 預設方式安裝 --auto
  • 更新gpcc
# 使用“互動式”安裝程式:
$ source /usr/local/greenplum-db/greenplum_path.sh
$ cd greenplum-cc-<version>
$ ./gpccinstall-<version> -W
           

注意:

  • 根據安裝程式的提示資訊,根據提示逐漸繼續即可完成安裝。
  • gpmon在建立時首次輸入一定要記住密碼!
  • 首次登陸gpcc需要超級使用者gpmon。若原來沒有,那麼gpcc安裝程式會自動建立這個使用者,但是密碼需要新輸入一遍,安裝過程會有提示使用 -W 參數

5. 更新/安裝 Metrics Collector Extension

如果預裝的gpcc版本比它支援的gp的版本更高,則在gpcc安裝之後需要更新metrics_collector這個擴充功能(即删除舊的metrics_collector,安裝新的)。此操作需要重新開機gp!

如果想用gpcc新版本特性則必須安裝新版本metrics_collector,如果不想用新特性可以使用舊的。

安裝方法:直接運作gpcc解壓包中/MetricsCollector檔案夾中的安裝腳本即可!腳本都是解壓好的,選擇對應的版本直接執行。

6. 啟動gpcc

# 安裝完成重新開機gp:
$ gpstop -a , gpstart -a

# 啟動gpcc: 
$ gpcc start
           

gpcc登入位址:http://[master_ip or standby_master_ip]:28080/login

7. 安裝中可能遇到的問題

  • 安裝前gpmon使用者沒有提前建立:
    • 使用預設安裝方式 -auto 會自動建立gpmon使用者,但是需要指定密碼
    • 用這種方式安裝的gpcc使用時需要加 -W 參數輸入密碼,如$ gpcc start -W
    • 如果gpmon已經建立則不需要-W
  • metrics_collector沒有提前建立:
    • 原因:metrics_collector屬于gpdb的一個extension,在安裝gpcc的時候如果沒有安裝會提示是否終止安裝,這時可以選擇跳過繼續安裝gpcc,在安裝完成後再手動安裝metrics_collector。
    • 解決方法:參考$GPCC_HOME下update-extension.txt腳本中的方法操作即可。
    • 網址:http://gpcc.docs.pivotal.io/630/topics/install.html#setup_extensions
    • 注意:手動安裝可能報錯

      Error: Metrics_collector has not been added to shared_preload_libraries. Please add it to enable metrics collection

      ,需要修改配置檔案添加shared_preload_libraries參數,或者使用gpconfig -c shared_proload_libraries -v ‘metrics_collector’,重新開機gpdb和gpcc即可
  • resource group啟動:
    # 變更資源管理方式為資源組:
    $ gpconfig -c gp_resource_manager -v "group"
    $ gpstop -ar
    
    # 檢視資源管理方式:
    $ gpconfig -s gp_resource_manager
               
  • gpmon 和 gpadmin 使用者不能登入到gpcc
    • 原因是gpmon和gpadmin兩個使用者屬于superuser,superuser建立時預設的登入方式都是trust
    • 解決方法:修改 pg_hda.conf把gpmon使用者所有的trust方式改成md5

      host all gpmon <IP_of_host>/32 md5

      • 使配置檔案生效:gpstop -u
      • 重新開機gpcc:gpcc start -W

        [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-36E2RjVZ-1614847907678)(png/gpcc3.png)]

  • gpcc服務挂掉,啟動不了,gpcc start報錯command not found
    • 原因:gpcc環境變量失效,可以通弄過指令echo $PATH檢視,環境變量預設安裝路徑:/usr/local/greenplum-cc-/bin
    • 解決方法:使用官方腳本重新source下環境變量,再用echo $PATH檢視

      參考官方文檔: https://gpcc.docs.pivotal.io/630/topics/setup-env.html

    $ source /usr/local/greenplum-cc-<version>/gpcc_path.sh
               

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-kKCWR9m5-1614847907679)(png/gpcc_source.png)]

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-NVDdT7xk-1614847907681)(index_files/34221992-0131-4484-acef-1a8031bdfdcf.png)]

傳回目錄

三、gpcc使用手冊

1. 系統監控功能

1.1. Dashboard

  • 系統總覽,滑鼠點選不同區域會跳轉到對應頁面
  • Database State的幾種狀态:Normal, Segment(s) Down, Standby Down, Standby Not Syncing, Database Unreachable, Unbalanced, Resyncing
  • Segment Status的狀态:Up / Down

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-GcBJHNMm-1614847907682)(png/ui-dashboard-full.png)]

1.2. Cluster Metrics

  • 統計範圍是所有host節點,mdw&smdw不包含在内
  • 縱坐标中直線為平均值,圖形為(累加)最大值;橫坐标為時間,最右端為目前時間
  • CPU圖表中不包含CPU等待IO所消耗的時間
  • Memory圖表中不包含Buffer和Cache
  • Load圖表為linux系統中的Load average,即對目前CPU工作量的度量,數值1~5為較健康的區間
  • Swap圖表為交換區使用率,在資料庫中要尤其警惕!

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-M0nydhOV-1614847907682)(png/ui-cluster-metrics-full.png)]

1.3. Host Metrics

  • Skew的四種狀态:Low/Moderate/High/Very High,其中Very High需要警惕!

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-1IAHkr6r-1614847907683)(png/ui-host-metrics-full.png)]

1.4. Segment Status

  • Replication Mode: 主副節點的同步狀态,"Synced"為正常
  • Preferred Role: 段主機是否運作在它應該運作的角色。比如主節點掉線之後,作為副節點的段主機接替它成為主節點,此時此副節點的狀态為"Not Preferred"
  • ContentID: 從0開始,主副節點相同,mdw&mdw不包含在内

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-Qj6ARte4-1614847907684)(png/ui-cluster-metrics-full.png)]

1.5. Recommendations

  • 從Bloat,Accuracy,Skew三個次元,對資料庫表提出推薦運維操作
  • 隻統計非空的表,不統計視圖和外部表
  • 掃描隻在規定的時間段進行,優先掃描沒有被掃過或者近期有大量update操作的表
  • 如果規定時間内沒有掃描完,下一次掃描會從上一次的斷點繼續
  • Bloat:
    • 定義:有頻繁DML操作,需要進行vacuum/vacuum-full操作的表
    • 公式:Bloat Space = unused space + dead space
    • 當Bloat比例 > 10%時,建議為Vacuum
    • 當比例 > 50%時,建議為Vacuum-full
    • 如果表近期沒有DML操作,則gpcc會更傾向于Vacuum
    • 在gpcc中分别由參數bloat_threshold和bloat_vacuum_full_threshold控制
    • [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-ntWl95Ze-1614847907684)(png/bloat.png)]
    • [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-bHLvCzww-1614847907685)(png/vacuum.png)]
  • Accuracy:
    • 定義:統計資訊已失準,需要進行analyze的表
    • 範圍:統計過去30天内執行過掃描且查詢過的表
    • 公式:

      inaccuracy = (MAX(plan_rows, actual_rows) - MIN(plan_rows, actual_rows)) / MAX(plan_rows, actual_rows)

    • 在統計使用過某表的所有SQL時,未使用where子句的SQL會有更高權重,Inaccuracy的計算值也更準确
    • inaccuracy > 10%才會上榜,在gpcc中由參數accuracy_threshold控制
  • Skew:
    • 定義:表示一個表資料的分布是否平均,如果過大則需要重選分部鍵或重配置設定
    • 公式:Skew% = (1 - Avg / Max) / (1 - 1/n) * 100%
    • 範圍是表中資料行數為節點數128倍的表
    • 在gpcc中由參數skew_threshold和skew_tuple_per_segment控制

傳回目錄

2. 查詢監控功能

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-eJgYhbJ9-1614847907685)(png/ui-query-monitor-full.png)]

  • Query ID:由

    執行時間-sessionID-指令數量

    組成
  • Stats:
  • 狀态 說明
    Queued 還未執行
    Running 正在執行
    Blocked 等待鎖釋放
    Done 執行結束
    Cancelling/Cancelled 取消
    Idle 會話已打開且在等待
  • 注意除了CPU Master%,CPU Segments%,CPU Skew%等名額為平均值,剩下的名額如CPU Time,Memory,Spill Files都是所有段主機的累加值
  • Query Text:隻能顯示SQL的前100K字元,點選"COPY"可以下載下傳SQL全文,但隻有24h時效
  • Textual Plan:同explain的功能,但若執行計劃過大或包含多條語句則gpcc不會顯示

傳回目錄

3. 系統告警

"Admin -> Alerts"管理者通過設定警報規則或參數門檻值來實作gp系統預警。當規則觸發時,gpcc會記一條記錄。告警記錄可以通過郵件、短信、或者腳本的方式推送給管理者。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-vDlcJz3i-1614847907686)(png/ui-alerts.png)]

規則說明:

  • Database connectivity failure:節點離線時候告警;前提是節點上的gpcc執行個體必須運作
  • Number of connections exceeds [N]:連接配接總數超過N時告警,每30s檢查一次,如果觸發則每30m再檢查一次
  • Master Panic/Fatal:Panic級别的告警會使gp叢集的所有session停止;Fatal級别的告警會使目前session停止(登入驗證錯誤屬于Fatal級别,但是不會觸發alter)
  • Master CPU exceeds [%] for [N] min:注意門檻值是平均值而不是峰值
  • Segment failure:segment離線則觸發,觸發後每30mins檢查一次
  • Total disk space exceeds [%] on a segment host:所有節點的平均值,而不是單一節點;規則每24h查一次
  • Segment Hosts Avg CPU exceeds [%] for [N] min:所有節點的平均值;每15s取樣一次
  • Segment Hosts Avg Memory exceeds [%] for [N] min:同上
  • Out of memory errors:OOM告警,因記憶體不夠而等待的SQL不會觸發此規則
  • Spill files for a query exceeds [N] GB:因記憶體不夠而寫盤的SQL臨時檔案總大小超過N GB則觸發;屬于一次性告警
  • Query runtime exceeds [N] min:一次性告警
  • Query is blocked for [N] min:SQL在資源隊列中等待的時間不算;一個SQL可能出現多次

傳回目錄

4. 資源組管理

Resource Group(以下簡稱rg)是Greenplum的新特性,手段是通過把若幹個role組團成一個“組”,通過給“組”配置資源,進而達到gp整體資源配置設定的定性與定量。

gp的預設資源配置設定方式是Resource Queue,在安裝并啟用了Resource Group後才可以使用這部分功能!

  • Resource Groups子產品功能:增加删除修改rg,也可以把role配置設定給不同的rg。對應pg_roles系統表。
  • Workload Mgmt子產品功能:根據不同的資源組/角色/Query标簽或以上三者組合條件,在會話級别建立規則,通過cpu,cost,io等名額,把不符合規則的會話停掉或遷移到其他資源組繼續運作(gp版本6.8+)。觸發規則時gpcc會記錄和顯示日志!

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-PLEvDUth-1614847907686)(png/ui-resource-group-editor.png)]

Resource Groups參數說明:

  • Concurrency: rg的并發量極限,即rg中所有role的所有session的并發量之和,包括idle的會話!
  • CPU%:對應rg中的CPU_RATE_LIMIT參數, 建議所有rg的此參數總和不要超過90%
  • Memory%:對應rg中的MEMORY_LIMIT參數,建議總和不要超過100%
  • Memory Spill Ratio%:對記憶體敏感類型的操作,如果超過這個值則會把資料向磁盤中寫(如果Memory%為0,則Memory Spill Ratio%必須為0)
  • Statement Memory:為每個query配置設定的固定記憶體大小,其大小由其他參數共同決定

補充說明:

  • Workload Mgmt中的Planner Cost名額分為兩個值,前面的值為使用GPORCA優化器的預估值,後面的值為傳統Postgres Planner優化器
  • Query标簽是Query級别使用者自定義的若幹組鍵值對,前提是gp必須安裝gp_wlm擴充包,标簽設定方法:

    =# SET gpcc.query_tags TO 'appName=tableau;appUser=bi_sales';

  • 所有配置在gpperfmon.gpmetrics庫中可查,系統告警明細見gpcc_alert_* ,資源組配置見表gpcc_wlm_*

傳回目錄

5. 表資訊查詢

"Table Brower"檢視表資訊,包括字段、存儲類型、壓縮、分部鍵、分區等資訊,每隔5mins更新一次,并非實時統計,也非精确值!

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-8Rkt2ESg-1614847907687)(png/ui-table-browser-detail.png)]

繼續閱讀