mxpacklogs

本文档介绍了日志采集及打包工具 mxpacklogs。

1 描述

  • 功能
    • mxpacklogs 工具支持一键式采集分布式集群的所有日志并打包。
    • 支持采集执行命令当下到前 3 天范围内的日志信息。
  • 限制
    • 每台服务器采集的 log 在 /tmp 下暂存,如果磁盘已满则会报错。
    • 如遇集群的所有节点全部宕机的极端情况,需通过指定 --hosts--base-data-dirs 获取日志信息。

2 命令行参数信息

以下是详细的命令行参数信息介绍:

参数名 描述
--base-data-dirs 数据库中所有基本数据目录
--hosts 收集 Segment 的主机的日志,使用逗号分隔每个主机
--config 配置文件。默认为 $HOME/.mxctl.yaml
-h / --dbhost 数据库服务器主机,默认 127.0.0.1
-p / --dbport 数据库服务器端口,默认 5432
--debug 开启调试日志输出
--help 打印帮助信息
--host 安装 supervisor/mxgate 服务的主机,默认 127.0.0.1
--mode 输出格式,支持 api / cli,默认 api
-W / --password 数据库用户密码
--path supervisor 主机上的 MatrixDB 安装路径,默认 /usr/local/matrixdb
--port supervisor 服务器端口,默认 4617
-U / --username 数据库用户名,默认 mxadmin
--validate 验证模式 - 试运行
--verbose 开启详细日志输出
-v / --version 显示工具版本

3 示例

mxpacklogs 可在主节点(Master)或非 Master 上执行。具体如下:

  • 在 Master 上执行,推荐使用 mxadmin 用户;如使用其他用户需配置 pg_hba 信任。
  • 在非 Master 上远程执行,需满足以下条件:
    • 数据库服务器和执行此命令的服务器都需安装新版本(4.8.0 及以上)的 MatrixDB;
    • 通过指定相关参数连接到 Master 即可。

根据上述描述,我们推荐如下三种使用方式。示例中 mdw 为 Master,sdw 为非 Master:

  1. 直接运行 mxpacklogs 命令表示默认当前主机为 Master,会连接数据库获取所有的 Segment 日志。
    [mxadmin@mdw ~]$ mxpacklogs
    [INFO]:-Preparing temp directory...
    [INFO]:-Starting transport server...
    [INFO]:-Gathering logs from 4 hosts...
    [INFO]:-Creating the tarball...
    [INFO]:-All logs packed to: /tmp/gather_logs_2143246856.tar.gz
  2. 在任一服务器上执行以下命令来指定访问 Master 的连接信息,从而实现所有的 Segment 日志获取(结果同 1)。
    [<用户名称>@<服务器名> ~]$ mxpacklogs --dbhost 172.31.33.128 --dbport 5432 --username mxadmin --password 123
    [INFO]:-Preparing temp directory...
    [INFO]:-Starting transport server...
    [INFO]:-Gathering logs from 4 hosts...
    [INFO]:-Creating the tarball...
    [INFO]:-All logs packed to: /tmp/gather_logs_340918649.tar.gz

注意!
1,2 均通过连接 Master 获取信息,因此集群 Master 需要处于健康状态。

  1. 在任一服务器上执行以下命令,只收集指定主机(必需)和数据目录(可选)下的日志信息。
    [<用户名称>@sdw ~]$ mxpacklogs --hosts sdw1,sdw2 --base-data-dirs /mxdata_20221229075012

    此命令表示收集 sdw1,sdw2 的日志信息,并且这两台机器的 base-data-dirs 都是 /mxdata_20221229075012

    [<用户名称>@sdw ~]$ mxpacklogs --hosts sdw1,sdw2 --base-data-dirs /mxdata_20221229075012,/data1/mxdata_20221229075012

    此命令表示表示收集 sdw1,sdw2 的日志信息,并且这两台机器的 base-data-dirs 不一样,一个是 /mxdata_20221229075012,另一个是 /data1/mxdata_20221229075012

注意!
更多日志内容相关信息请见日志