Skip to content

300.obdiag‐config‐guide

jingshun.tq edited this page May 14, 2024 · 1 revision

obdiag 配置

本文将介绍 obdiag 配置文件。

注意

使用 OBD 部署的集群不能直接使用 `obdiag xxx` 命令。OBD 不部署 obdiag,而是 OBD 部署的集群可以通过 `obd obdiag` 来快速的使用诊断功能。

前提条件

请确保已经安装 obdiag,详细信息,请参见 安装 obdiag

配置说明

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

用户侧配置文件

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

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 OceanBas e集群 sys 租户的端口,默认为 2881

例子:

# 密码非空例子
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 后会出现交互形式的输入,请填写正确的信息

#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 oceanbase data_dir (default:'/home/admin/oceanbase/store'): # OceanBase 部署的数据盘目录
Enter your oceanbase redo_dir (default:'/home/admin/oceanbase/store'): # OceanBase 部署的redo数据的目录
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 目录下。

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

# 第一部分: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 下的为实际配置。

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/example 目录下的文件。

系统配置文件

位于 /usr/local/oceanbase-diagnostic-tool/conf/inner_config.yml

obdiag:
  basic:
    config_path: ~/.obdiag/config.yml # 用户侧的配置文件路径
    config_backup_dir: ~/.obdiag/backup_conf # 通过 obdiag config 命令执行时,老配置文件会进行备份,备份路径
    file_number_limit: 20 # 对单台远程主机执行一次采集命令回传的文件数量上限
    file_size_limit: 2G # 对单台远程主机执行一次采集命令回传的文件大小上限
  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 打印到屏幕上的最低日志级别
check: # 巡检所需配置,一般场景下不需要变更
  ignore_version: false # 忽略 OceanBase 的版本
  report:
    report_path: "./check_report/" # 巡检报告输出路径
    export_type: table # 巡检报告输出类型
  package_file: "~/.obdiag/check/observer_check_package.yaml" # 巡检套餐文件路径
  tasks_base_path: "~/.obdiag/check/tasks/" # 巡检任务的基础目录
gather:
  scenes_base_path: "~/.obdiag/gather/tasks" # gather 场景的目录
rca:
  result_path: "./rca/" # rca结果存储路径