VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

gs_collector

背景信息

当Vastbase发生故障时,使用此工具收集OS信息、日志信息以及配置文件等信息,来定位问题。可以使用-C参数,指定收集不同的信息内容,具体支持收集的内容信息如表1所示。

表 1 gs_collector内容收集对照表

TypeName Content 描述 是否默认收集
System HardWareInfo
RunTimeInfo
收集现在操作系统的状态信息:
  • HardWareInfo
  • Cpu(cat /proc/cpuinfo)
  • 内存(cat /proc/meminfo)
  • 磁盘(df -h)
  • RunTimeInfo
  • topStatus(ps ux)
  • ioStat(iostat -xm 2 3)
  • 网络状态(cat /proc/net/dev)
  • 内存使用情况(free -m)
  • Database 具体列表见表2 收集系统视图或者系统表的内容。 是,默认收集pg_locks、pg_stat_activity和 pg_thread_wait_status三个视图的信息。
    Log DataNode
    ClusterManager
    DSS
  • 收集DataNode的pg_log和gs_profile
  • 收集ClusterManager的日志信息包括:om、vb_ctl、vb_guc、vb_initdb。
  • 收集资源池化日志信息包括:$DSS_HOME/log、pg_log/DMS、pg_log/DSS。
  • 说明:对于每个数据库日志文件,其开始时间是文件里面第一条记录的时间,结束时间是文件最新修改时间(可通过操作系统的ls命令获取)。gs_collector会收集和指定时间有交集的文件。
    Config DataNode 收集DataNode的配置信息:
  • postgresql.conf
  • gaussdb.state
  • pg_hba.conf
  • pg_control
  • pg_replslot
  • pg_ident.conf
  • Gstack DataNode 利用gstack命令得到DataNode的当前堆栈信息。
    CoreDump vb_ctl、Vastbase、GaussMaster、AioWorker、AlarmChecker、Archiver、Auditor、AutoVacLauncher、AutoVacWorker、AuxMain、BackendMode、BgWriter、BootStrap、Catchup、CBMWriter、Checkpointer、CommAuxStream、CommPoolCleaner、CommRcvStream、CommRcvWorker、CommSendStream、CpMonitor、DataRcvWriter、DataReceiver、DataSender、ExtremeRTO、FencedUDFMaster、Heartbeater、JobExecutor、JobScheduler、LWLockMonitor、PageWriter、ParallelRecov、PercentileJob、Reaper、RemoteSrv、StartupProcess、StatCollector、Stream、SysLogger、ThdPoolListener、TwoPhaseCleaner、WalRcvWriter、WalReceiver、WalSender、WalWriter、WDRSnapshot、WlmArbiter、WlmCollector、WlmMonitor 通过时间筛选Vastbase进程的core文件。
    注意:关于Core的配置和方式请按照如下要求:在/proc/sys/vastbase/core_pattern文件中添加core文件的格式:core-%e-%p-%t。
    XLog DataNode 通过时间筛选收集Xlog:
    非资源池化模式下支持通过时间筛选收集XLog;资源池化模式下仅支持收集全部XLog。
    说明:Xlog日志文件的创建时间在gs_collector工具指定时间范围中的Xlog就会被收集。
    Plan * 收集计划复现信息:
  • 用户输入*表示收集所有数据库上的计划复现信息。
  • 用户输入具体的数据库名称表示收集指定数据库上的计划复现信息。
  • DssConfig * 收集dss配置文件:
  • dss_cm_conf.ini
  • dss_inst.ini
  • dss_vg_conf.ini
  • DssDiskInfo vgname
    pri_vgname
    收集vgname、pri_vgname信息包括:
  • 卷组和磁盘使用信息。
  • 磁盘信息。
  • LUN及注册信息。
  • 表2 gs_collector工具支持收集的系统表和视图列表

    Class

    View Name

    OS

    gs_os_run_info

    pg_os_threads

    Session

    /Thread

    gs_session_stat

    gs_session_time

    gs_session_cpu_statistics

    gs_session_memory_statistics

    gs_session_memory_context

    gs_session_memory

    gs_session_memory_detail

    pg_stat_activity

    gs_thread_memory_context

    WLM

    gs_cluster_resource_info

    pg_total_user_resource_info

    pg_total_user_resource_info_oid

    gs_wlm_rebuild_user_resource_pool

    gs_wlm_resource_pool

    gs_wlm_workload_records

    pg_wlm_statistics

    pg_app_workloadgroup_mapping

    Query-AP

    Operator

    gs_wlm_operator_info

    gs_wlm_operator_history

    gs_wlm_operator_statistics

    Query-AP

    gs_wlm_session_info_all

    gs_wlm_session_history

    gs_wlm_session_info

    gs_wlm_user_session_info

    gs_wlm_session_statistics

    pg_session_iostat

    pg_session_wlmstat

    Cache I/O

    pg_statio_all_indexes

    pg_statio_all_sequences

    pg_statio_all_tables

    pg_statio_sys_indexes

    pg_statio_sys_sequences

    pg_statio_sys_tables

    pg_statio_user_indexes

    pg_statio_user_sequences

    pg_statio_user_tables

    gs_stat_db_cu

    gs_stat_session_cu

    Memory

    pg_total_memory_detail

    pg_shared_memory_detail

    gs_total_memory_detail

    File

    gs_file_stat

    gs_redo_stat

    pg_stat_bad_block

    Object

    pg_stat_user_tables

    pg_stat_user_indexes

    pg_stat_sys_tables

    pg_stat_sys_indexes

    pg_stat_all_tables

    pg_stat_all_indexes

    pg_stat_database

    pg_stat_database_conflicts

    pg_stat_xact_all_tables

    pg_stat_xact_sys_tables

    pg_stat_xact_user_tables

    pg_stat_xact_user_functions

    Lock

    pg_locks

    Utility

    pg_stat_replication

    pg_replication_slots

    pg_stat_bgwriter

    Transaction

    pg_running_xacts

    pg_prepared_xacts

    Waits

    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] [--timeout=TIMEOUT]
      
    • 显示帮助信息

      gs_collector -? | --help
      
    • 显示版本号信息

      gs_collector -V | --version
      

    参数说明

    • -h

      收集信息的主机名称。

      取值范围:主机名称,如果不指定则默认收集所有主机的信息。

    • -f

      主机名称列表文件。该文件为纯文本格式。

      • -f和-h参数不能同时使用。

      • 取值范围:主机名称列表。

    • -o

      将收集日志以压缩包形式输出到指定的文件夹。

      不指定则将检查结果以压缩包形式输出到配置文件中tmpMppdbPath选项所指定的目录中。

      若配置文件中未配置tmpMppdbPath选项且未指定-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"}
          ]
      }
      
      • TypeName和对应的Content取值范围见表1
      • 对于Log、CoreDump、Config和XLog四种类型,Interval和Count参数不生效。

      默认配置文件内容如下:

      {
      "Collect":
      [
      {"TypeName": "System", "Content":"RunTimeInfo, HardWareInfo","Interval":"0", "Count":"1"},
      {"TypeName": "Log", "Content" : "DataNode,ClusterManager", "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"}
      ]
      }
      
    • --keyword=KEYWORD

      包含关键字KEYWORD的日志文件。

      若关键字KEYWORD中含有空格,需要使用双引号包围。

      性能日志为二进制日志,关键字搜集功能不支持该日志的搜集。

    • --begin-time

      日志的开始时间。输入格式为“yyyymmdd hh:mm”。该值需要比日志的最后修改时间小。

    • --end-time

      日志的结束时间。输入格式为“yyyymmdd hh:mm”。该值需要比日志的创建时间大,且需大于--begin-time设置的时间。

    • --speed-limit

      日志收集时的收集速率,输入格式为非负整数,单位为MB/s。

      该参数主要是为了防止日志收集过程中产生过高的磁盘或网络IO,导致数据库节点故障(如果它们与$GAUSSLOG/$PGHOST部署在同一个磁盘上)。该值应当不超过Vastbase内上述磁盘IO与网络IO速率的最小值的1/3。

      资源池化下允许指定该参数,但是不生效。

    • --timeout

      日志与xlog收集时最长收集时间,输入格式为非负整数,单位为s。

    • -?, --help

      显示帮助信息。

    • -V, --version

      显示版本号信息。

    示例

    执行如下命令收集OS信息和日志信息。

    gs_collector --begin-time="20180131 23:00" --end-time="20180201 20:00" -h plat1 
    Successfully parsed the configuration file.
    create Dir.
    Successfully create dir.
    do system check interval 0 : count 1
    Collecting OS information.
    Successfully collected OS information.
    do database check interval 0 : count 1
    Collecting catalog statistics.
    Successfully collected catalog statistics.
    do log check interval 0 : count 1
    Collecting Log files.
    Successfully collected Log files.
    do Config check 0:1
    Collecting Config files.
    Successfully collected Config files.
    Collecting files.
    Successfully collected files.
    All results are stored in $PGHOST/collector_20200624_134541.tar.gz.
    

    查看收集到的统计信息。

    tar -zxvf $PGHOST/collector_20200624_134541.tar.gz
    collector_20200624_134541/
    collector_20200624_134541/plat1.tar.gz
    collector_20200624_134541/Detail.log
    collector_20200624_134541/Summary.log
    cd collector_20200624_134541
    tar -zxvf plat1.tar.gz
    plat1/
    plat1/catalogfiles/
    plat1/catalogfiles/gs_clean_20200624_134548283647.txt
    plat1/catalogfiles/dn_6001_pg_locks_20200624_134547746215.csv
    plat1/catalogfiles/dn_6001_pg_thread_wait_status_20200624_134548068716.csv
    plat1/catalogfiles/dn_6001_pg_stat_activity_20200624_134547851117.csv
    plat1/configfiles/
    plat1/logfiles/
    plat1/logfiles/log_20200624_134548540916.tar.gz
    plat1/coreDumpfiles/
    plat1/gstackfiles/
    plat1/systemfiles/
    plat1/systemfiles/OS_information_20200624_134542218134.txt
    plat1/systemfiles/database_system_info_20200624_134546282006.txt
    plat1/planSimulatorfiles/
    plat1/xlogfiles/
    cd plat1/logfiles/
    tar -zxvf log_20200624_134548540916.tar.gz
    ./
    ./om/
    ./om/gs_preinstall-2020-06-24_113654.log
    ./om/gs_local-2020-06-24_113710.log
    ./om/gs_install-2020-06-24_113911.log
    ./om/gs_checkperf-2020-06-24_114311.log
    ./om/gs_collector-2020-06-24_114240.log
    ./om/gs_backup-2020-06-24_114101.log
    ./om/gs_om-2020-06-24_114052.log
    ./bin/
    ./bin/gs_initdb/
    ./bin/gs_initdb/gs_initdb-2020-06-24_114010-current.log
    ./bin/gs_guc/
    ./bin/gs_guc/gs_guc-2020-06-24_114033-current.log
    ./bin/gs_ctl/
    ./bin/gs_ctl/gs_ctl-2020-06-24_114041-current.log
    ./pg_log/
    ./pg_log/dn_6001/
    ./pg_log/dn_6001/postgresql-2020-06-24_114043.log
    ./pg_log/dn_6001/postgresql-2020-06-24_114330.log
    ./pg_log/dn_6001/postgresql-2020-06-24_114316.log
    ./gs_profile/
    ./gs_profile/dn_6001_6002/
    ./gs_profile/dn_6001_6002/postgresql-2020-06-24_114330.prf
    ./gs_profile/dn_6001_6002/postgresql-2020-06-24_114316.prf
    ./gs_profile/dn_6001_6002/postgresql-2020-06-24_114043.prf
    

    资源池化模式查看收集到的统计信息。

    tar -zxvf $GAUSSLOG/collector_20231128_175344.tar.gz
    collector_20231128_175344/
    collector_20231128_175344/plat1.tar.gz
    collector_20231128_175344/Detail.log
    collector_20231128_175344/Summary.log
    cd collector_20231128_175344/
    tar -zxvf plat1.tar.gz
    plat1/
    plat1/planSimulatorfiles/
    plat1/gstackfiles/
    plat1/catalogfiles/
    plat1/catalogfiles/dn_6001_pg_thread_wait_status_20231128_175353339795.csv
    plat1/catalogfiles/gs_clean_20231128_175353466332.txt
    plat1/catalogfiles/dn_6001_pg_stat_activity_20231128_175353203128.csv
    plat1/catalogfiles/dn_6001_pg_locks_20231128_175353066230.csv
    plat1/logfiles/
    plat1/logfiles/log_20231128_175354071864.tar.gz
    plat1/configfiles/
    plat1/configfiles/pg_cotrol
    plat1/configfiles/config_20231128_175355276285/
    plat1/configfiles/config_20231128_175355276285/dn_6001/
    plat1/configfiles/config_20231128_175355276285/dn_6001/pg_ident.conf
    plat1/configfiles/config_20231128_175355276285/dn_6001/postgresql.conf
    plat1/configfiles/config_20231128_175355276285/dn_6001/pg_hba.conf
    plat1/configfiles/config_20231128_175355276285/dn_6001/gaussdb.state
    plat1/systemfiles/
    plat1/systemfiles/database_system_info_20231128_175349300695.txt
    plat1/systemfiles/OS_information_20231128_175345132506.txt
    plat1/xlogfiles/
    plat1/coreDumpfiles/
    plat1/dssdiskinfo/
    plat1/dssdiskinfo/disk/
    plat1/dssdiskinfo/disk/p0/
    plat1/dssdiskinfo/disk/p0/root_ft_block
    plat1/dssdiskinfo/disk/p0/vg_header
    plat1/dssdiskinfo/disk/p0/volume_ctrl
    plat1/dssdiskinfo/disk/p0/core_ctrl
    plat1/dssdiskinfo/disk/data/
    plat1/dssdiskinfo/disk/data/root_ft_block
    plat1/dssdiskinfo/disk/data/vg_header
    plat1/dssdiskinfo/disk/data/volume_ctrl
    plat1/dssdiskinfo/disk/data/core_ctrl
    plat1/dssdiskinfo/inq/
    plat1/dssdiskinfo/inq/lun
    plat1/dssdiskinfo/inq/reg
    plat1/dssdiskinfo/vg_info
    plat1/dssconfigfiles/
    plat1/dssconfigfiles/dss_vg_conf.ini
    plat1/dssconfigfiles/dss_inst.ini
    cd plat1/logfiles/
    tar -zxvf log_20231128_175354071864.tar.gz
    ./
    ./cm/
    ./cm/cm_client/
    ./cm/cm_client/dss-2023-11-28_153931-current.log
    ./cm/cm_client/dms_res-2023-11-28_153936-current.log
    ./cm/cm_agent/
    ./cm/cm_agent/pg_log/
    ./cm/cm_agent/pg_log/postgresql-2023-11-28_073928.log
    ./cm/cm_agent/system_alarm-2023-11-28_153928-current.log
    ./cm/cm_agent/cm_agent-2023-11-28_153928-current.log
    ./cm/cm_ctl/
    ./cm/cm_ctl/cm_ctl-2023-11-28_153742-current.log
    ./cm/cm_server/
    ./cm/cm_server/system_alarm-2023-11-28_153928-current.log
    ./cm/cm_server/key_event-2023-11-28_153928-current.log
    ./cm/cm_server/cm_server-2023-11-28_153928-current.log
    ./cm/om_monitor/
    ./cm/om_monitor/om_monitor-2023-11-28_153800-current.log
    ./cm/om_monitor/system_alarm-2023-11-28_153800-current.log
    ./pg_log/
    ./pg_log/DMS/
    ./pg_log/DMS/dms.rlog
    ./pg_log/dn_6001/
    ./pg_log/dn_6001/postgresql-2023-11-28_153934.log
    ./pg_log/DSS/
    ./pg_log/DSS/dss.rlog
    ./bin/
    ./bin/gs_guc/
    ./bin/gs_guc/gs_guc-2023-11-28_153911-current.log
    ./bin/gs_cgroup/
    ./bin/gs_cgroup/gs_cgroup-2023-11-28_153446.log
    ./bin/gs_initdb/
    ./bin/gs_initdb/gs_initdb-2023-11-28_153804-current.log
    ./gs_profile/
    ./gs_profile/dn_6001_6002/
    ./gs_profile/dn_6001_6002/postgresql-2023-11-28_153934.prf
    ./om/
    ./om/gs_local-2023-11-28_153139.log
    ./om/gs_preinstall-2023-11-28_153108.log
    ./om/gs_install-2023-11-28_153658.log
    ./DSSLog/
    ./DSSLog/dsscmd.rlog
    ./DSSLog/dssinstance.rlog