gs_collector
集中式单节点不支持该工具。
背景信息
当GaussDB数据库发生故障时,使用此工具收集数据库的OS信息、数据库的日志信息以及数据库配置文件等信息,来定位问题。可以使用-C参数,指定收集不同的信息内容,具体支持收集的内容信息如表1所示。
|
TypeName |
Content |
描述 |
是否默认收集 |
|---|---|---|---|
|
System |
HardWareInfo RunTimeInfo |
收集现在操作系统的状态信息:
|
是 |
|
Database |
具体列表见表1。 |
收集系统视图或者系统表的内容。 |
是,默认收集pg_locks,pg_stat_activity和pg_thread_wait_status三个视图的信息。 |
|
Log |
DataNode ClusterManager Roach Perf ffic dcf gns FeatureCollect Flamegraph |
是 |
|
|
Config |
DataNode |
|
是 |
|
Gstack |
DataNode |
利用gstack命令得到DN的当前堆栈信息。 |
否 |
|
CoreDump |
gaussdb cm_server cm_agent gs_ctl gs_rewind gaussdb_stack gs_rewind_stack cm_server_stack cm_agent_stack gs_ctl_stack |
通过时间筛选gaussdb进程的core文件。 注意:
关于Core的配置和方式请按照如下要求:在/proc/sys/kernel/core_pattern文件中添加core文件的格式:core-%e-%p-%t。 |
否 |
|
XLog |
DataNode |
通过时间筛选收集xLog。 |
否 |
|
ForceFailover |
DataNode |
收集DN的强起日志,以及截断的xLog日志。 |
否 |
|
Plan |
* |
收集计划复现信息:
|
否 |
前提条件
日志收集工具依赖操作系统工具,例如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
- 接收数据库管理员密码
echo "password" | gs_collector --begin-time="BEGINTIME" --end-time="ENDTIME" [-h HOSTNAME | -f HOSTFILE] [--keyword=KEYWORD] [--speed-limit=SPEED] [-o OUTPUT] [-l LOGFILE] [-C CONFIGFILE]
云上环境中,对于未开启Peer认证方式的数据库系统,可以使用此方式传入数据库管理员用户的密码,用于连接数据库进行运维操作。
参数说明
- -h
取值范围:主机名称,只能指定一个主机名称。
如果不指定则默认收集所有主机的信息。
- -f
-f和-h参数不能同时使用。
取值范围:主机名称列表。
- -o
不指定则将检查结果以压缩包形式输出到数据库的数据库日志目录。
即检查结果以压缩包形式输出到$GAUSSLOG目录中。
- -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" : "DataNode,ClusterManager,Roach,Perf,ffic,dcf,gns", "Interval":"0", "Count":"1"}, {"TypeName": "Database", "Content": "pg_locks,pg_stat_activity,pg_thread_wait_status","Interval":"0", "Count":"1"}, {"TypeName": "Config", "Content": "DataNode", "Interval":"0", "Count":"1"} ] }TypeName和对应的Content取值范围见表1gs_collector内容收集对照表。
对于Log,CoreDump,Config,XLog四种类型,Interval和Count参数不生效。
- --keyword=KEYWORD
若关键字KEYWORD中含有空格,需要使用双引号包围。
- --begin-time
- --end-time
- --speed-limit
该参数主要是为了防止日志收集过程中产生过高的磁盘或网络I/O,导致ETCD或者DN故障(如果它们与$GAUSSLOG/$PGHOST部署在同一个磁盘上)。该值应当不超过数据库内上述磁盘I/O与网络I/O速率的最小值的1/3。
- -?, --help
- -V, --version
浙公网安备 33010602011771号