天天看点

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)]

继续阅读