背景信息
当openGauss发生故障时,使用此工具收集OS信息、日志信息以及配置文件等信息,来定位问题。可以使用-C参数,指定收集不同的信息内容,具体支持收集的内容信息如表1所示。
表 1 gs_collector内容收集对照表
具体列表见表1。 |
是,默认收集pg_locks,pg_stat_activity和 pg_thread_wait_status三个视图的信息。 |
||
前提条件
日志收集工具依赖操作系统工具,例如gstack为其中一种,如果未安装该工具,则提示错误后,跳过该收集项。
语法
-
日志收集(非root用户)
gs_collector --begin-time="BEGINTIME" --end-time="ENDTIME" [-h HOSTNAME | -f HOSTFILE] [--keyword=KEYWORD] [--speed-limit=SPEED] [-o OUTPUT] [-l LOGFILE] [-C CONFIGFILE]
-
显示帮助信息
gs_collector -? | --help
-
显示版本号信息
gs_collector -V | --version
参数说明
-
-h
收集信息的主机名称。
取值范围:主机名称,只能指定一个主机名称。
如果不指定则默认收集所有主机的信息。
-
-f
主机名称列表文件。该文件为纯文本格式。
说明:
-f和-h参数不能同时使用。取值范围:主机名称列表。
-
-o
将收集日志以压缩包形式输出到指定的文件夹。
不指定则将检查结果以压缩包形式输出到配置文件中tmpMppdbPath选项所指定的目录中。
若配置文件中未配置tmpMppdbPath选项,则默认将检查结果以压缩包形式输出到“/tmp/用户名_mppdb/”目录中。
-
-l
指定的日志文件以及存放路径。
-
-C
指定待收集内容的配置文件,利用TypeName指定需要收集的信息类型,利用Content指定每一类信息的具体内容,利用Count指定此类信息收集的次数,利用Interval指定收集间隔,单位为秒。
TypeName和Content不允许缺失或者内容为空。
Interval和Count可以不指定,如果没有指定Count,则默认收集一次。如果没有指定Interval则表示间隔为0秒,Interval和Count的值不能小于0。
如果不指定则使用默认的配置文件。
配置文件格式采用json格式,模板如下:
{ "Collect": [ {"TypeName": "name", "Content":"value","Interval":"seconds", "Count":"count"} ] }
说明:
默认配置文件内容如下:
{
"Collect":
[
{"TypeName": "System", "Content":"RunTimeInfo, HardWareInfo","Interval":"0", "Count":"1"},
{"TypeName": "Log", "Content" : "DBnode,Gtm,ClusterManager", "Interval":"0", "Count":"1"},
{"TypeName": "Database", "Content": "pg_locks,pg_stat_activity,pg_thread_wait_status","Interval":"0", "Count":"1"},
{"TypeName": "Config", "Content": "DBnode,Gtm", "Interval":"0", "Count":"1"}
]
}
TypeName和对应的Content取值范围见表1gs_collector内容收集对照表。
对于Log,CoreDump,Config,XLog三种类型,Interval和Count参数不生效。 -
--keyword=KEYWORD
包含关键字KEYWORD的日志文件。
若关键字KEYWORD中含有空格,需要使用双引号包围。
说明:
性能日志为二进制日志,关键字搜集功能不支持该日志的搜集。 -
--begin-time
日志的开始时间。输入格式为“yyyymmdd hh:mm”。
-
--end-time
日志的结束时间。输入格式为“yyyymmdd hh:mm”。
-
--speed-limit
日志收集时的收集速率,输入格式为非负整数,单位为MB/s。
该参数主要是为了防止日志收集过程中产生过高的磁盘或网络IO,导致数据库节点故障(如果它们与$GAUSSLOG/$PGHOST部署在同一个磁盘上)。该值应当不超过openGauss内上述磁盘IO与网络IO速率的最小值的1/3。
-
-?, --help
显示帮助信息。
-
-V, --version
显示版本号信息。
示例
执行如下命令收集OS信息和日志信息。
gs_collector --begin-time="20180131 23:00" --end-time="20180201 20:00" -h plat1
Successfully parsed the configuration file.
Collecting OS information.
Successfully collected OS information.
Collecting catalog statistics.
Successfully collected catalog statistics.
Collecting log files.
Successfully collected log files.
Collecting configuration files and process stack information.
Successfully collected configuration files and processed stack information.
Collecting files.
Successfully collected files.
All results are stored in $PGHOST/collector_20180201_144951.tar.gz.
查看收集到的统计信息。
tar -zxvf $PGHOST/collector_20180201_144951.tar.gz
collector_20180201_144951/
collector_20180201_144951/plat1.tar.gz
cd collector_20180201_144951
tar -zxvf plat1.tar.gz
plat1/
plat1/OS_information.txt
plat1/conffiles/
plat1/conffiles/dn_6006/
plat1/conffiles/dn_6006/pg_hba.conf
plat1/conffiles/dn_6006/postgresql.conf
plat1/conffiles/dn_6001/
plat1/conffiles/dn_6001/pg_hba.conf
plat1/conffiles/dn_6001/postgresql.conf
plat1/conffiles/dn_3003/
plat1/conffiles/dn_3003/pg_hba.conf
plat1/conffiles/dn_3003/postgresql.conf
plat1/Catalog_statistics.txt
plat1/logfiles/
plat1/logfiles/log_20180201_144957.tar
cd plat1/logfiles/
tar -xvf log_20180201_144957.tar
./
./om/
./om/gs_local-2018-01-30_165832.log
./om/gs_collector-2018-02-01_144951.log
./bin/
./bin/gs_clean/
./bin/gs_clean/gs_clean-2018-01-30_170147-current.log
./pg_log/
./pg_log/dn_6006/
./pg_log/dn_6006/postgresql-2018-01-31_000000.log
./pg_log/dn_6006/postgresql-2018-02-01_000000.log
./pg_log/cn_5001/
./pg_log/cn_5001/postgresql-2018-01-31_000000.log
./pg_log/cn_5001/postgresql-2018-02-01_000000.log
./pg_log/dn_6001/
./pg_log/dn_6001/postgresql-2018-01-31_000000.log
./pg_log/dn_6001/postgresql-2018-02-01_000000.log
./pg_log/dn_3003/
./pg_log/dn_3003/postgresql-2018-01-31_000000.log
./pg_log/dn_3003/postgresql-2018-02-01_000000.log
./gs_profile/
./gs_profile/dn_6001_6002/
./gs_profile/dn_6001_6002/postgresql-2018-02-01_000000.prf
./gs_profile/postgresql-2018-01-31_000000.prf
./gs_profile/dn_6003_3003/
./gs_profile/dn_6003_3003/postgresql-2018-02-01_000000.prf
./gs_profile/dn_6005_6006/
./gs_profile/dn_6005_6006/postgresql-2018-02-01_000000.prf
./gs_profile/postgresql-2018-02-01_000000.prf