GPCC安装笔记
部署GP集群
postgres=# select * from gp_segment_configuration order by 1;
dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir
------+---------+------+----------------+------+--------+-------+----------+---------+-------------------------------------------
1 | -1 | p | p | n | u | 7890 | dhss206 | dhss206 | /home/gpcc/gpdata/master/default/gpseg-1
2 | 0 | p | p | s | u | 30000 | dhss206 | dhss206 | /home/gpcc/gpdata1/primary/default/gpseg0
3 | 1 | p | p | s | u | 30001 | dhss206 | dhss206 | /home/gpcc/gpdata1/primary/default/gpseg1
4 | 2 | p | p | s | u | 30002 | dhss206 | dhss206 | /home/gpcc/gpdata2/primary/default/gpseg2
5 | 3 | p | p | s | u | 30003 | dhss206 | dhss206 | /home/gpcc/gpdata2/primary/default/gpseg3
6 | 4 | p | p | s | u | 30000 | dhss230 | dhss230 | /home/gpcc/gpdata1/primary/default/gpseg4
7 | 5 | p | p | s | u | 30001 | dhss230 | dhss230 | /home/gpcc/gpdata1/primary/default/gpseg5
8 | 6 | p | p | s | u | 30002 | dhss230 | dhss230 | /home/gpcc/gpdata2/primary/default/gpseg6
9 | 7 | p | p | s | u | 30003 | dhss230 | dhss230 | /home/gpcc/gpdata2/primary/default/gpseg7
10 | 0 | m | m | s | u | 31000 | dhss230 | dhss230 | /home/gpcc/gpdata1/mirror/default/gpseg0
11 | 1 | m | m | s | u | 31001 | dhss230 | dhss230 | /home/gpcc/gpdata1/mirror/default/gpseg1
12 | 2 | m | m | s | u | 31002 | dhss230 | dhss230 | /home/gpcc/gpdata2/mirror/default/gpseg2
13 | 3 | m | m | s | u | 31003 | dhss230 | dhss230 | /home/gpcc/gpdata2/mirror/default/gpseg3
14 | 4 | m | m | s | u | 31000 | dhss206 | dhss206 | /home/gpcc/gpdata1/mirror/default/gpseg4
15 | 5 | m | m | s | u | 31001 | dhss206 | dhss206 | /home/gpcc/gpdata1/mirror/default/gpseg5
16 | 6 | m | m | s | u | 31002 | dhss206 | dhss206 | /home/gpcc/gpdata2/mirror/default/gpseg6
17 | 7 | m | m | s | u | 31003 | dhss206 | dhss206 | /home/gpcc/gpdata2/mirror/default/gpseg7
18 | -1 | m | m | s | u | 7890 | dhss230 | dhss230 | /home/gpcc/gpdata/master/default/gpseg-1
(18 rows)
安装gpperfmon
gpperfmon_install工具的功能大致是:
- 创建greenplum监控用数据库(gpperfmon)
- 创建greenplum监控用数据库角色(gpmon)
- 配置greenplum数据库接受来自perfmon监控的链接文件(pg_hba.conf和.pgpass)
- 设置postgresql.conf文件,增加启用监控的参数(这些参数默认会添加在文件的末尾)
1、执行如下命令进行安装gpperfmon:
[gpcc@dhss206 ~]$ gpperfmon_install --enable --password os10+ZTE --port 7890
20200320:19:04:54:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-createdb gpperfmon >& /dev/null
20200320:19:05:08:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-PGPORT=7890 psql -f /home/gpcc/greenplum-db/./lib/gpperfmon/gpperfmon.sql gpperfmon >& /dev/null
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-PGPORT=7890 psql template1 -c "DROP ROLE IF EXISTS gpmon" >& /dev/null
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-PGPORT=7890 psql template1 -c "CREATE ROLE gpmon WITH SUPERUSER CREATEDB LOGIN ENCRYPTED PASSWORD '********'" >& /dev/null
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-echo "local gpperfmon gpmon md5" >> /home/gpcc/gpdata/master/default/gpseg-1/pg_hba.conf
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-echo "host all gpmon 127.0.0.1/28 md5" >> /home/gpcc/gpdata/master/default/gpseg-1/pg_hba.conf
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-echo "host all gpmon ::1/128 md5" >> /home/gpcc/gpdata/master/default/gpseg-1/pg_hba.conf
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-touch /home/gpcc/.pgpass >& /dev/null
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-mv -f /home/gpcc/.pgpass /home/gpcc/.pgpass.1584702294 >& /dev/null
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-echo "*:7890:gpperfmon:gpmon:******** >> /home/gpcc/.pgpass
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-cat /home/gpcc/.pgpass.1584702294 >> /home/gpcc/.pgpass
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-chmod 0600 /home/gpcc/.pgpass >& /dev/null
20200320:19:05:19:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-PGPORT=7890 gpconfig -c gp_enable_gpperfmon -v on >& /dev/null
20200320:19:05:20:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-PGPORT=7890 gpconfig -c gpperfmon_port -v 8888 >& /dev/null
20200320:19:05:21:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-PGPORT=7890 gpconfig -c gp_external_enable_exec -v on --masteronly >& /dev/null
20200320:19:05:22:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-PGPORT=7890 gpconfig -c gpperfmon_log_alert_level -v warning >& /dev/null
20200320:19:05:23:032041 gpperfmon_install:dhss206:gpcc-[INFO]:-gpperfmon will be enabled after a full restart of GPDB
注:可以看到命令执行后,会创建gpmon角色,以及设置了密码,这个用户可以登录到数据库里面,也可用于登录页面。如果在执行命令失败,可以查看$MASTER_DATA_DIRECTORY/pg_log对应目录下相关的执行日志来查看具体失败原因。
2、重启集群
[gpcc@dhss206 ~]$ gpstop -aM fast
[gpcc@dhss206 ~]$ gpstart -a
3、查看gpmon进程是否启用
[gpcc@dhss206 ~]$ ps -ef | grep gpmmon| grep -v grep
gpcc 3307 3282 0 19:08 ? 00:00:00 /home/gpcc/greenplum-db-6.1.0/bin/gpmmon -D /home/gpcc/gpdata/master/default/gpseg-1/gpperfmon/conf/gpperfmon.conf -p 7890
[gpcc@dhss206 ~]$ ps -ef | grep gpsmon| grep -v grep
gpcc 3433 1 0 19:08 ? 00:00:00 /home/gpcc/greenplum-db/./bin/gpsmon -m 0 -t 150 -l /home/gpcc/gpdata2/primary/default/gpseg3/gpperfmon -v 0 8888
注:gpmon进程在gp集群的master节点运行,从master节点收集相关的查询信息。同时,默认每间隔15s会收集gpsmon进程相关信息,并保存相关的监控数据和日志成csv文件,gp通过外部表的形式引用该配置文件,方便查询。gpsmon进程则会在每个segment的服务器节点上运行,它通过收集系统相关相关数据,gpsmon进程会间隔15s通过udp端口从该进程获取监控数据,汇总到master节点,生成csv格式的日志文件。
4、配置standby master
当主备切换的时候为了保证gpmmon生效,需要同步白名单和密码文件到standby节点服务器。
[gpcc@dhss206 ~]$ cat $MASTER_DATA_DIRECTORY/pg_hba.conf | grep gpmon
local gpperfmon gpmon md5
host all gpmon 127.0.0.1/28 md5
host all gpmon ::1/128 md5
[gpcc@dhss206 ~]$ cat .pgpass
*:7890:gpperfmon:gpmon:os10+ZTE
同步pg_hba.conf和.pgpass两个配置文件到standby master节点
[gpcc@dhss206 ~]$ gpscp -h dhss230 $MASTER_DATA_DIRECTORY/pg_hba.conf =:$MASTER_DATA_DIRECTORY/pg_hba.conf
[gpcc@dhss206 ~]$ gpscp -h dhss230 ~/.pgpass =:~/.pgpass
安装成功后,gpperfmon日志默认存储的目录为
$MASTER_DATA_DIRECTORY/gpperfmon/logs
master节点日志为gpmmon.2020.03.20_110821.log,segment节点日志为gpsmon.2020.03.20_110832.log。可以通过修改配置文件$MASTER_DATA_DIRECTORY/gpperfmon/conf/gpperfmon.conf的log_location配置项log_location
[gpcc@dhss206 ~]$ cat $MASTER_DATA_DIRECTORY/gpperfmon/conf/gpperfmon.conf
log_location = /home/gpcc/gpdata/master/default/gpseg-1/gpperfmon/logs
安装GPCC
GPCC包上传到master节点上,进行解压安装,执行gpccinstall-6.0.0安装命令,会将greenplum-cc-web安装到集群的所有服务器中。安装成功GPCC会产生一个webserver进程,可以通过浏览器进行管理和访问gpcc集群,同时每台服务器还会有一个ccagent进程,该进程用于收集每台服务器实时监控指标,落地到gp数据库中:
[gpcc@dhss206 ~]$ ll
total 46604
drwxrwxr-x 2 gpcc gpcc 4096 Mar 20 19:07 gpAdminLogs
drwxrwxr-x 2 gpcc gpcc 100 Mar 20 19:00 gpconfigs
drwxr-xr-x 3 gpcc gpcc 20 Mar 20 18:58 gpdata
drwxr-xr-x 4 gpcc gpcc 35 Mar 20 18:58 gpdata1
drwxr-xr-x 4 gpcc gpcc 35 Mar 20 18:58 gpdata2
-rw-r--r-- 1 gpcc gpcc 47715631 Mar 20 19:42 greenplum-cc-web-6.0.0-rhel7_x86_64.zip
lrwxrwxrwx 1 gpcc gpcc 18 Mar 20 18:58 greenplum-db -> greenplum-db-6.1.0
drwxr-xr-x 11 gpcc gpcc 187 Mar 20 18:58 greenplum-db-6.1.0
drwxrwxr-x 2 gpcc gpcc 6 Mar 20 18:58 perl5
[gpcc@dhss206 ~]$ unzip greenplum-cc-web-6.0.0-rhel7_x86_64.zip
[gpcc@dhss206 ~]$ cd greenplum-cc-web-6.0.0-rhel7_x86_64/
[gpcc@dhss206 greenplum-cc-web-6.0.0-rhel7_x86_64]$ ./gpccinstall-6.0.0
Do you agree to the Pivotal Greenplum Command Center End User License Agreement? Yy/Nn (Default=Y)
y
Where would you like to install Greenplum Command Center? (Default=/usr/local)
/home/gpcc
What would you like to name this installation of Greenplum Command Center? (Default=gpcc)
What port would you like gpcc webserver to use? (Default=28080)
Would you like enable SSL? Yy/Nn (Default=N)
Please choose a display language (Default=English)
1. English
2. Chinese
3. Korean
4. Russian
5. Japanese
在所有的节点中创建软链接,执行如下命令:
[gpcc@dhss206 ~]$ gpssh -f gpconfigs/all_hosts -e "ln -s greenplum-cc-web-6.0.0 greenplum-cc-web"
[dhss230] ln -s greenplum-cc-web-6.0.0 greenplum-cc-web
[dhss206] ln -s greenplum-cc-web-6.0.0 greenplum-cc-web
添加环境变量
[gpcc@dhss206 ~]$ gpssh -f gpconfigs/all_hosts -e "echo 'source /home/gpcc/greenplum-cc-web/gpcc_path.sh' >> .bashrc"
[dhss206] echo 'source /home/gpcc/greenplum-cc-web/gpcc_path.sh' >> .bashrc
[dhss230] echo 'source /home/gpcc/greenplum-cc-web/gpcc_path.sh' >> .bashrc
设置访问白名单,编辑pg_hba.conf配置文件,配置内容如下,前三项在安装gpcc的时候会默认生成,最后两项需要手动添加:
#gpperfmon
local gpperfmon gpmon md5
host all gpmon 127.0.0.1/28 md5
host all gpmon ::1/128 md5
#master
host all gpmon 10.47.160.206/32 md5
#standby master
host all gpmon 10.47.160.230/32 md5
如果不添加最后两行,在执行gpcc start命令的时候会出现如下异常: 2020/03/20 14:56:53 pq: no
pg_hba.conf entry for host “10.47.160.206”, user “gpmon”, database
“gpperfmon”, SSL off
将白名单文件同步到到standby master节点
[gpcc@dhss206 ~]$ gpscp -h dhss230 $MASTER_DATA_DIRECTORY/pg_hba.conf =:$MASTER_DATA_DIRECTORY/pg_hba.conf
重启集群:
[gpcc@dhss206 ~]$ gpstop -aM fast
[gpcc@dhss206 ~]$ gpstart -a
启动gpcc
[gpcc@dhss206 ~]$ gpcc start
2020-03-20 20:04:27 Starting the gpcc agents and webserver...
2020-03-20 20:04:31 Agent successfully started on 2/2 hosts
2020-03-20 20:04:31 View Greenplum Command Center at http://dhss206:28080
通过访问http://10.47.160.206:28080即可登入GPCC,查看相关的监控数据了,默认的登入用户名:gpmon,密码:os10+ZTE
查看gpcc配置
[gpcc@dhss206 ~]$ gpcc --settings
Install path: /home/gpcc
Display Name: gpcc
GPCC port: 28080
Kerberos: disabled
SSL: disabled
gpcc相关配置文件在/home/gpcc/greenplum-cc-web/conf/app.conf,修改配置文件app.conf同步到所有节点
[gpcc@dhss206 ~]$ cat /home/gpcc/greenplum-cc-web/conf/app.conf
appname = gpccws
listentcp4 = true
runmode = prod
session = true
enablexsrf = true
xsrfexpire = 2592000
xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o
rendertype = json
printallsqls = false
master_port = 7890
path = /home/gpcc
display_name = gpcc
enable_kerberos = false
EnableHTTPS = false
EnableHTTP = true
httpport = 28080
rpc_port = 8899
language = English
log_level = INFO
master_host = dhss206
GPCC指令说明
Usage:
gpcc [OPTIONS] <command>
Application Options:
-v, --version Show Greenplum Command Center version
--settings Print the current configuration settings
Help Options:
-h, --help Show this help message
Available commands:
help Print list of commands
krbdisable Disables kerberos authentication
krbenable Enables kerberos authentication
start Starts Greenplum Command Center webserver and metrics collection agents
with [-W] option to force password prompt for GPDB user gpmon [optional]
status Print agent status
with [-W] option to force password prompt for GPDB user gpmon [optional]
stop Stops Greenplum Command Center webserver and metrics collection agents
with [-W] option to force password prompt for GPDB user gpmon [optional]