yuan-er

导航

 

gs_collector

集中式单节点不支持该工具。

背景信息

GaussDB数据库发生故障时,使用此工具收集数据库的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

具体列表见表1

收集系统视图或者系统表的内容。

是,默认收集pg_locks,pg_stat_activity和pg_thread_wait_status三个视图的信息。

Log

DataNode

ClusterManager

Roach

Perf

ffic

dcf

gns

FeatureCollect

Flamegraph

  • Datanode收集:
    • gs_log
    • asp_data
    • pg_perf
  • ClusterManager收集:
    cm目录:
    • cm_agent
    • cm_server
    • om_monitor
    • cm_ctl
    bin目录:
    • gs_ctl
    • gs_guc
    • gs_initdb
    • gs_encrypt
    • gs_obs

    om目录

  • ffic收集

    ffic_log目录。

  • dcf收集

    dcf_log目录。

  • gns收集

    gns目录。

  • Flamegraph收集:

    gs_flamegraph目录

  • Memory收集:

    mem_log目录

  • Feature收集:

    feature_collect目录

Config

DataNode

  • 收集Datanode的配置信息:
    • gaussdb.conf
    • gaussdb.state
    • gs_hba.conf
    • pg_control
    • pg_replslot
    • gs_ident.conf
  • 当开启多租特性功能后,会额外收集配置信息:
    • pdb.conf
    • pg_pdb_control

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的日志文件。

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

  • --begin-time

    日志的开始时间。输入格式为“yyyymmdd hh:mm”。

  • --end-time

    日志的结束时间。输入格式为“yyyymmdd hh:mm”。

  • --speed-limit

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

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

  • -?, --help

    显示帮助信息。

  • -V, --version

    显示版本号信息。

 
posted on 2025-01-15 16:27  数据库笔记  阅读(11)  评论(0)    收藏  举报