---
title: "obdiag 配置 - 敏捷诊断工具 V3.7.0 | OceanBase 文档中心"
description: obdiag 配置 本文将介绍 obdiag 配置文件。 说明 使用 obd 部署的集群建议通过 obd obdiag 命令快速使用诊断功能，此时无需配置 obdiag 配置文件。具体命令介绍可参见官网《OceanBase 安装部署工具》文档中 obd 命令/诊断工具命令组 。 前提条件 请确保已经安装 obdiag…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*5ZXST55u540AAAAAAAAAAAAADiGDAQ/original) 敏捷诊断工具V 3.7.0

# obdiag 配置

更新时间：2025-10-22 14:51:27

[编辑](https://github.com/oceanbase/odt-doc/edit/V3.7.0/zh-CN/300.obdiag-config-guide.md)  

本文将介绍 obdiag 配置文件。

#### 说明

使用 obd 部署的集群建议通过 `obd obdiag` 命令快速使用诊断功能，此时无需配置 obdiag 配置文件。具体命令介绍可参见官网《OceanBase 安装部署工具》文档中 [obd 命令/诊断工具命令组](https://www.oceanbase.com/docs/community-obd-cn-1000000001477785)。

## 前提条件

请确保已经安装 obdiag，详细信息，请参见 [安装 obdiag](https://www.oceanbase.com/docs/common-obdiag-cn-1000000003892386)。

## 配置说明

obdiag 配置文件的路径有两个，一个是用户侧的配置文件，支持自定义路径。一个是 obdiag 自用的系统配置文件，一般情况下无需修改。下面分别介绍这两个配置文件。

### 用户侧配置文件

用户侧配置文件可通过 `obdiag config <option>` 命令快速生成或者直接编辑配置文件，文件的默认路径是 `~/.obdiag/config.yml`，其样板文件位于 `~/.obdiag/example`。

```bash
obdiag config -h <db_host> -u <sys_user> [-p password] [-P port]

```

配置项说明如下：

| 参数名称 | 是否必须 | 说明 |
| --- | --- | --- |
| db_host | 是 | OceanBase 集群 sys 租户的连接地址。 |
| sys_user | 是 | OceanBase 集群 sys 租户的连接用户，为避免权限问题建议使用 `root@sys`。当通过 OBProxy 进行连接时，需要附带加上集群名（如 `root@sys#obtest`）。 |
| -p password | 否 | OceanBase 集群 sys 租户的连接密码，默认为空。 |
| -P port | 否 | OceanBase集群 sys 租户的端口，默认为 `2881`。 |

例子：

```bash
# 密码非空例子
obdiag config -hxx.xx.xx.xx -uroot@sys -p***** -P2881

# 空密码场景
obdiag config -hxx.xx.xx.xx -uroot@sys -P2881

# 通过 obproxy 场景
obdiag config -hxx.xx.xx.xx -uroot@sys#obtest  -p***** -P2883

```

执行 obdiag config 后会出现交互形式的输入，请填写正确的信息。

```bash
#obdiag config -hxx.xx.xx.xx -uroot@sys -Pxxxx -p*****
2024-01-31 09:57:24,019 [INFO] Getting all the node information of the cluster, please wait a moment ...
Please enter the following configuration !!!
Enter your oceanbase host ssh username (default:''): test # ssh 到各主机的用户名
Enter your oceanbase host ssh password (default:''): ********* # ssh 到各主机的用户对应的密码
Enter your oceanbase host ssh_port (default:'22'): 22 # ssh 的端口号，默认是22
Enter your oceanbase install home_path (default:'/root/observer'): /home/admin/oceanbase # OceanBase 部署的安装目录
Enter your need config obproxy [y/N] (default:'N'): y # 被诊断的集群是否需要带上obproxy
Enter your obproxy server eg:'192.168.1.1;192.168.1.2;192.168.1.3' (default:''): xx.xx.xx.xx # obproxy的节点ip
Enter your obproxy host ssh username (default:''): test # obproxy的节点的ssh用户
Enter your obproxy host ssh password (default:''): ********* # obproxy的节点的ssh用户密码
Enter your obproxy host ssh port (default:'22'): 22  # obproxy的节点的ssh的端口号，默认是22
Enter your obproxy install home_path (default:'/root/obproxy'): /home/admin/obproxy # obproxy的安装目录
2024-01-31 09:59:23,109 [INFO] Node information has been rewritten to the configuration file /test/.obdiag/config.yml, and you can enjoy the journey !

```

#### 说明

使用 `config` 命令会进入交互模式按照提示填入信息。请按照实际情况填写。

执行完成后在 `~/.obdiag/config.yml` 中会生成一份新的配置，如果原来 `~/.obdiag/config.yml` 存在内容，将会将老配置备份到 ~/.obdiag/backup_conf 目录下。

一份完整的配置如下，分为三个部分，这三个部分可以按需配置。

```yaml
# 第一部分：OCP 相关的
ocp:
  login:
    url: http://xx.xx.xx.xxx:xx
    user: ****
    password: ******
# 第二部分：obcluster 相关的
obcluster:
  ob_cluster_name: test # 集群名
  db_host: xx.xx.xx.1 # 集群的连接地址
  db_port: 2881 # default 2881
  tenant_sys: # sys租户的配置信息，为避免权限问题，建议配置root@sys
    user: root@sys # 默认为 root@sys
    password: ""
  servers:
    nodes:
      - ip: xx.xx.xx.1
      - ip: xx.xx.xx.2
      - ip: xx.xx.xx.3
    global:
      ssh_username: **** # 登录信息，建议使用部署observer时所使用的用户信息
      ssh_password: **** # 若不使用密码登录或无密码，可设置为“”
      # ssh_port: 22 # ssh端口，默认为22
      # ssh_key_file: "" # ssh秘钥地址，与ssh_password二选一即可
      # ssh_type: remote # observer的部署模式目前支持remote、docker（不支持kube）默认为remote
      # container_name: xxx # 当ssh_type为docker，此项必填，为observer的容器名

      # observer的安装目录，例如observer的可执行程序为/root/observer/bin/observer
      # 则需要填写的home_path为/root/observer
      home_path: /root/observer
      data_dir: /root/observer/store # observer的数据盘路径，一般为上文提到的${home_path}/store，与obd内同名配置概念一致
      redo_dir: /root/observer/store # observer的日志盘盘路径，一般为上文提到的${home_path}/store，与obd内同名配置概念一致
# 第三部分：obproxy 相关
obproxy:
  obproxy_cluster_name: obproxy
  servers:
    nodes:
      - ip: xx.xx.xx.4
      - ip: xx.xx.xx.5
      - ip: xx.xx.xx.6
    global:
      ssh_username: **** # 登录信息，建议使用部署obproxy时所使用的用户信息
      ssh_password: **** # 若不使用密码登录或无密码，可设置为“”
      # ssh_port: 22 # ssh端口，默认为22
      # ssh_key_file: "" # ssh秘钥地址，与ssh_password二选一即可
      # ssh_type: remote # obproxy的部署模式目前支持remote、docker（不支持kube）默认为remote
      # container_name: xxx # 当ssh_type为docker，此项必填，为obproxy的容器名

      # obproxy的安装目录，例如obproxy的可执行程序为/root/obproxy/bin/obproxy
      # 则需要填写的home_path为/root/obproxy
      home_path: /root/obproxy

```

其中`global` 下的配置优先级低于特定节点下的配置，如果节点下配置了，将会走节点下的特定配置，如果节点没配置特定信息，走 `global` 下的配置。

例如下面的 `obcluster` 的配置，在每个 IP 下面都有自己的配置，则 `global` 下的和 IP 下配置相同的项将以 IP 下的为实际配置。

```yaml
obcluster:
  ob_cluster_name: test
  db_host: xx.xx.xx.1
  db_port: 2881 # default 2881
  tenant_sys:
    user: root@sys # default root@sys
    password: ""
  servers:
    nodes:
      - ip: xx.xx.xx.1
        ssh_username: ****
        ssh_password: ****1
        home_path: /root/observer1
        data_dir: /root/observer/store1
        redo_dir: /root/observer/store1
      - ip: xx.xx.xx.2
        ssh_username: ****2
        ssh_password: ****2
        home_path: /root/observer2
        data_dir: /root/observer/store2
        redo_dir: /root/observer/store2
      - ip: xx.xx.xx.3
        ssh_username: ****3
        ssh_password: ****3
        home_path: /root/observer3
        data_dir: /root/observer/store3
        redo_dir: /root/observer/store3
    global:
      ssh_port: 22

```

#### 说明

- obdiag 自 V3.2.0 起支持配置 ipv6 地址，示例 ` ip: "xxxx:xxxx:xxx:xxxx:xxxx:xxxx:xxx:xxxx" `
 - 更多的配置样例，可参考 `~/.obdiag/example` 目录下的文件。
 - 如果您的 OB 集群为 docker 方式部署，配置文件可参考 `~/.obdiag/example/docker_ob_cluster.yml`
 - 如果您的 OB 集群为通过 ob-operator(k8s) 方式部署，配置文件可参考 `~/.obdiag/example/operator.yml`

### 不使用用户侧配置文件处理方法

obdiag >= 2.4.0 版本支持通过 `--config` 参数来传递用户侧的配置文件，让使用者可以无配置文件即可开箱即用 obdiag。本小节将介绍一下如何通过 `--config` 来传递配置。

#### 说明

- `--config` 的参数传递可叠加使用，固定样式：--config key1=value1 --config key2=value2。
 - 原 ~/.obdiag/config.yml 样式的配置文件中 nodes 列表 通过在 nodes 后追加 [num] 来表名同一个节点的信息，如：obcluster.servers.nodes[0]。
 - 原 ~/.obdiag/config.yml 样式的配置文件层级关系通过 `.` 来区分。

完整的配置通过 `--config` 传递的话形式如下：

```bash
  --config ocp.login.url=http://xx.xx.xx.xxx:xx \
  --config ocp.login.user=**** \
  --config ocp.login.password=****** \
  --config obcluster.ob_cluster_name=test \
  --config obcluster.db_host=xx.xx.xx.1 \
  --config obcluster.db_port=2881 \
  --config obcluster.tenant_sys.user=root@sys \
  --config obcluster.tenant_sys.password="" \
  --config obcluster.servers.nodes[0].ip=xx.xx.xx.1 \
  --config obcluster.servers.nodes[1].ip=xx.xx.xx.2 \
  --config obcluster.servers.nodes[2].ip=xx.xx.xx.3 \
  --config obcluster.servers.global.ssh_username=**** \
  --config obcluster.servers.global.ssh_password=**** \
  --config obcluster.servers.global.ssh_port=22 \
  --config obcluster.servers.global.home_path=/root/observer \
  --config obcluster.servers.global.data_dir=/root/observer/store \
  --config obcluster.servers.global.redo_dir=/root/observer/store \
  --config obproxy.obproxy_cluster_name=obproxy \
  --config obproxy.servers.nodes[0].ip=xx.xx.xx.4 \
  --config obproxy.servers.nodes[1].ip=xx.xx.xx.5 \
  --config obproxy.servers.nodes[2].ip=xx.xx.xx.6 \
  --config obproxy.servers.global.ssh_username=**** \
  --config obproxy.servers.global.ssh_password=**** \
  --config obproxy.servers.global.ssh_port=22 \
  --config obproxy.servers.global.home_path=/root/obproxy

```

配置中若需要使用ipv6地址，示例如下：

```bash
  --config obcluster.servers.nodes[0].ip="xxxx:xxxx:xxx:xxxx:xxxx:xxxx:xxx:xxxa"

```

当然为了能够少输入一些内容，obdiag 支持部分内容简写，简写表如下

| 简写 | 完整配置 |
| --- | --- |
| `db_host` | `obcluster.db_host` |
| `db_port` | `obcluster.db_port` |
| `tenant_sys.user` | `obcluster.tenant_sys.user` |
| `tenant_sys.password` | `obcluster.tenant_sys.password` |
| `ssh_username` | `obcluster.servers.global.ssh_username` |
| `ssh_password` | `obcluster.servers.global.ssh_password` |
| `ssh_port` | `obcluster.servers.global.ssh_port` |
| `home_path` | `obcluster.servers.global.home_path` |
| `obproxy_home_path` | `obproxy.servers.global.home_path` |

### 系统配置文件（obdiag 自用的配置）

配置文件位于 `/opt/oceanbase-diagnostic-tool/conf/inner_config.yml`。

```yaml
obdiag:
  basic:
    config_path: ~/.obdiag/config.yml # 用户侧的配置文件路径
    config_backup_dir: ~/.obdiag/backup_conf # 通过 obdiag config 命令执行时，老配置文件会进行备份，备份路径
    file_number_limit: 50 # 对单台远程主机执行一次采集命令回传的文件数量上限
    file_size_limit: 5G # 对单台远程主机执行一次采集命令回传的文件大小上限
    dis_rsa_algorithms: 0 # 禁用RSA算法，主要目的是解决SSH连接兼容性问题，默认值为0
    strict_host_key_checking: 0 # 控制 SSH 连接时的主机密钥检查策略，用于验证远程服务器的身份。
  logger:
    log_dir: ~/.obdiag/log  # obdiag 自身的执行日志存储路径
    log_filename: obdiag.log # obdiag 自身的执行日志存储文件名
    file_handler_log_level: DEBUG # obdiag 自身的执行日志输出的最低级别
    log_level: INFO # obdiag 自身的执行日志级别
    mode: obdiag
    stdout_handler_log_level: INFO # obdiag 打印到屏幕上的最低日志级别
    error_stream: sys.stdout # 错误日志输出流，默认值为 sys.stdout
    silent: false # 是否静默模式
  ssh_client:
    remote_client_sudo: 0 # 是否使用 sudo 执行远程命令，默认值为 0
    cmd_exec_timeout: 180 # 远程命令执行超时时间，默认值为 180 秒
analyze:
  thread_nums: 3
check: # 巡检所需配置，一般场景下不需要变更
  ignore_version: false # 忽略 OceanBase 的版本
  work_path: "~/.obdiag/check" # 巡检报告输出路径
  report:
    report_path: "./check_report/" # 巡检报告输出路径
    export_type: table # 巡检报告输出类型
  tasks_base_path: "~/.obdiag/check/tasks/" # 巡检任务的基础目录
gather:
  scenes_base_path: "~/.obdiag/gather/tasks"  # gather 场景的目录
  redact_processing_num: 3
  thread_nums: 3
rca:
  result_path: "./obdiag_rca/" # rca结果存储路径

```

obdiag >= 2.4.0 版本支持通过 `--inner_config` 参数来传递 obdiag 的系统配置。本小节将介绍一下如何通过 `--inner_config` 来传递配置。

#### 说明

- `inner_config` 的参数传递可叠加使用，固定样式：--inner_config key1=value1 --inner_config key2=value2。
 - 原 /opt/oceanbase-diagnostic-tool/conf/inner_config.yml 样式的配置文件层级关系通过 `.` 来区分。

配置通过 `--inner_config` 传递的样例如下：

```bash
# 限制文件数量和文件大小
--inner_config obdiag.basic.file_number_limit=20
--inner_config obdiag.basic.file_size_limit=2G

# 禁用RSA算法
--inner_config obdiag.basic.dis_rsa_algorithms=1

# 控制 obdiag 在静默模式下的输出格式为 markdown
--inner_config obdiag.logger.silent=true
--inner_config obdiag.logger.silent_type=md

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
