日志

查看系统操作日志是诊断集群故障的基本手段。

1 YMatrix 日志

YMatrix 有两类日志:

  • 集群管理日志
  • 查询操作日志

1.1 集群管理日志

集群管理日志默认目录为 $HOME/gpAdminLogs,不同工具在目录内有不同日志文件,譬如:gpstart_20210701.log, gpstop_20210701.log 等。

日志文件命名规则为:{管理工具名}_{日期}.log,如下所示:

gpconfig_20210723.log
gpstart_20210701.log
gpstart_20210708.log
gpstop_20210701.log
gpstop_20210723.log
......

日志格式为:日期 + 时间 + 工具名 + 主机名 + 用户名 + 日志等级 + 日志内容。如:

20210708:17:29:32:001644 gpstart:mdw:mxadmin-[INFO]:-Greenplum Catalog Version: '302012031'
20210708:17:29:32:001644 gpstart:mdw:mxadmin-[WARNING]:-postmaster.pid file exists on Master, checking if recovery startup required
......

日志等级分为 INFO、WARNING、FATAL 等。

  • INFO 为正常的输出
  • WARNING 是在执行过程中遇到了异常情况,但仍然可以继续执行
  • FATAL 则是遇到了严重错误,整个流程无法进行,不得不停止

所以,当工具执行失败的时候,可用通过查看对应日志的 WARNING 和 FATAL 记录来诊断。

1.2 查询操作日志

查询操作日志位于主节点(Master)和数据节点(Segment)节点数据目录下的 log 目录中,文件名格式为,gpdb-{日期}_{时间}.csv,如:

gpdb-2021-07-01_164653.csv
gpdb-2021-07-01_164655.csv
gpdb-2021-07-02_000000.csv
......

该日志为 PostgreSQL 日志,可以用来定位如下问题:

  • 查询执行错误
  • 节点故障

文件内容包括日志生成的日期、时间、用户名、进程号、连接 ID、日志级别和具体错误信息。

如下日志内容为用户尝试连接一个不存在的数据库的错误日志:

2021-07-26 10:21:34.692106 CST,"mxadmin","postgggg",p10188,th-1455884160,"[local]",,2021-07-26 10:21:34 CST,0,con14,,seg-1,,,,sx1,"FATAL","3D000","database ""postgggg"" does not exist",,,,,,,0,,"postinit.c",1024,

日志各个字段含义如下:

日志内容 含义
2021-07-26 10:21:34.692106 CST 日志时间
mxadmin 连接的用户名
postgggg 连接的数据库名
p10188 连接的进程号
th-1455884160 线程号
[local] 连接方式为本地连接
con14 连接编号
seg-1 节点编号
FATAL 日志级别
database "postgggg" does not exist 错误信息

2. MatrixGate 日志

MatrixGate 的日志同样在 gpAdminLogs 目录下,文件名为 matrixgate.{日期}_{时间}.log,如下所示:

matrixgate.2021-07-26_134717.log

日志格式和其他管理工具类似:

20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-Connected to MatrixDB, version PostgreSQL 12 (MatrixDB 4.1.0-community) (Greenplum Database 7.0.0+dev.16905.gc6dbf4f14d build commit:c6dbf4f14d4452a414198fd45d507819803fffb2) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), 64-bit compiled on Jul 14 2021 08:56:13
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Writer.Stream] Initialized with 100ms load interval and 10 prepared insert
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Writer.Stream] Started, listening on :12120
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Trans.Plain] Started, parallel level 8
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Source.HTTP] http listening on :8086

MatrixGate 日志同样可以使用 mxgate log 命令来查看:

[mxadmin@mdw gpAdminLogs]$ mxgate log
******************************************************
 __  __       _        _       ____       _
|  \/  | __ _| |_ _ __(_)_  __/ ___| __ _| |_ ___
| |\/| |/ _` | __| '__| \ \/ / |  _ / _` | __/ _ \
| |  | | (_| | |_| |  | |>  <| |_| | (_| | ||  __/
|_|  |_|\__,_|\__|_|  |_/_/\_\\____|\__,_|\__\___|
  Version: 4.0.3
  Your Copy is Licensed to: yMatrix.cn; 2022-01-14; any
******************************************************
==> [pid:10889] matrixgate.2021-07-26_134717.log <==
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-Connected to MatrixDB, version PostgreSQL 12 (MatrixDB 4.1.0-community) (Greenplum Database 7.0.0+dev.16905.gc6dbf4f14d build commit:c6dbf4f14d4452a414198fd45d507819803fffb2) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), 64-bit compiled on Jul 14 2021 08:56:13
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Writer.Stream] Initialized with 100ms load interval and 10 prepared insert
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Writer.Stream] Started, listening on :12120
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Trans.Plain] Started, parallel level 8
20210726:13:47:17 matrixgate:mxadmin:mdw:010889-[INFO]:-[Source.HTTP] http listening on :8086

注意!
使用 mxgate log 命令查看日志的前提是mxgate进程必须正在运行,看到的日志内容也是运行进程产生的。