5.2.5collect logs命令

collect logs [cluster_name]

此命令从所有主机收集日志文件和其他相关文件。当集群的名称 ( cluster_name) 与命令一起提供时,它会收集所有日志文件 ( .log) 以及配置文件 ( .ini, .cnf)、错误文件 ( .err) 和跟踪文件 (.trace.log.*)属于集群的所有进程,以及所有代理日志文件。如果 cluster_name省略,则仅收集代理日志文件。

当一个mcmd代理从它所连接的mcm代理接收到 collect logs命令 时,它默认使用端口 0 设置一个 TCP 服务器套接字,并让操作系统分配实际的端口号。然后指示站点中的所有代理执行复制,并且每个代理都生成一个 TCP 客户端,该客户端连接到先前设置的 TCP 服务器套接字以复制文件。

要手动为文件复制分配特定端口,请 --copy-port在启动 mcmd时使用该选项。该选项的默认值为 0。 collect logs如果在 30 秒内任何客户端无法建立连接或 TCP 服务器未检测到传入连接,则命令超时。

警告

如果防火墙或其他网络问题禁止 TCP 客户端连接到 TCP 服务器套接字,该 collect logs命令将永远无法完成。

收集到的文件默认放在MySQL Cluster Manager数据仓库下(MySQL mcm_dataCluster Manager安装目录的父目录下),或者选项指定--data-folder)里面一个名为collected_files像下面这样:

/mcm_data_repository/collected-files/
|── timestamp/
|  ├── mcmd/
|  |   ├── mcmd#/
|  |       ├── mcmd.log
|  |       └── mcmd_timestamp.log
|  |       └── ...
|  ├── cluster_name/
|      ├── node#_nodetype/
|      |   ├── log files (.log) 
|      |   ├── configuration files (.ini, .cnf)
|      |   ├── error files (.err)
|      |   └── trace files (.trace.log.*)
|      ├── node#_nodetype/
|      |   ├── log files (.log) 
|      |   ├── configuration files (.ini, .cnf)
|      |   ├── error files (.err)
|      |   └── trace files (.trace.log.*)
|      ├── node#_nodetype/
|      |   └── ...
|      └── other/
|          ├── utilities files (.err, .out)
|          └── ...
|                    
├── timestamp/
|  ├── mcmd/
|  |   ├── mcmd#/
|  |       ├── mcmd.log
|  |       ├── mcmd_timestamp.log
|  |       └── ...
|  ├── cluster_name/
|  |   ├── node#_nodetype/
...

例如,节点号为 146 的mysqld 节点的错误日志位于:

 /opt/mcm_data/collected-files/2021-07-31T07:44:05Z/51_mysqld/mysqld_146_out.err