# Configuration file description

The configuration file in OBD has a fixed format. The following example shows what each module in the configuration file means.

```shell
# Only need to configure when remote login is required
user:   # The SSH login configuration.
  username: your username
  password: your password if need
  key_file: your ssh-key file path if need
  port: your ssh port, default 22
  timeout: ssh connection timeout (second), default 30
oceanbase-ce:  # The name of the component that is configured as follows.
  # version: 3.1.3    # Specify the version of the component, which is usually not required. 
  # pacakge_hash: 589c4f8ed2662835148a95d5c1b46a07e36c2d346804791364a757aef4f7b60d  # Specify the hash of the component, which is usually not required. 
  # tag: dev    # Specify the tag of the component, which is usually not required. 
  servers:  # The list of nodes.
    - name: z1  # The node name,  which can be left blank. The default node name is the same as the IP address if this name is left blank. The node name is z1 in this example.
      # Please don't use hostname, only IP can be supported
      ip: 192.168.1.2
    - name: z2
      ip: 192.168.1.3
    - name: z3
      ip: 192.168.1.4
  global:  # The global configuration. The identical configuration in the same component can be written here.
           # The node configuration is used if it has the same configuration item as the global configuration.
    # Please set devname as the network adaptor's name whose ip is  in the setting of severs.
    # if set severs as "127.0.0.1", please set devname as "lo"
    # if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0"
    devname: eth0
    # if current hardware's memory capacity is smaller than 50G, please use the setting of "mini-single-example.yaml" and do a small adjustment.
    memory_limit: 64G
    datafile_disk_percentage: 20
    syslog_level: INFO
    enable_syslog_wf: false
    enable_syslog_recycle: true
    max_syslog_file_count: 4
    cluster_id: 1
    # observer cluster name, consistent with obproxy's cluster_name    
    appname: obcluster
    # root_password: # root user password, can be empty
    # proxyro_password: # proxyro user pasword, consistent with obproxy's observer_sys_password, can be empty
  # In this example, support multiple ob process in single node, so different process use different ports.
  # If deploy ob cluster in multiple nodes, the port and path setting can be same.
  z1:  # The node configuration. Here is the configuration of the z1 node, that is, the 192.168.1.2 server. The priority of node configuration is the highest.
    mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
    rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882.
    #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
    home_path: /root/observer
    zone: zone1
  z2:  # The node configuration. Here is the configuration of the z2 node, that is, the 192.168.1.3 server.
    mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
    rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882.
    #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
    home_path: /root/observer
    zone: zone2
  z3:   # The node configuration. Here is the configuration of the z3 node, that is, 192.168.1.4 server.
    mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
    rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882.
    #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
    home_path: /root/observer
    zone: zone3
obproxy-ce:  # The name of the component that is configured as follows.
  # version: 3.2.3    # Specify the version of the component, which is usually not required.
  # pacakge_hash: 73cccf4d05508de0950ad1164aec03003c4ddbe1415530e031ac8b6469815fea  # Specify the hash of the component, which is usually not required. 
  # tag: dev    # Specify the tag of the component, which is usually not required. 
  servers:
    - 192.168.1.5
  global:
    listen_port: 2883 # External port. The default value is 2883.
    prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884.
    home_path: /root/obproxy
    # oceanbase root server list
    # format: ip:mysql_port;ip:mysql_port
    rs_list: 192.168.1.2:2881;192.168.1.3:2881;192.168.1.4:2881
    enable_cluster_checkout: false
    # observer cluster name, consistent with oceanbase-ce's appname
    cluster_name: obcluster
    # obproxy_sys_password: # obproxy sys user password, can be empty
    # observer_sys_password: # proxyro user pasword, consistent with oceanbase-ce's proxyro_password, can be empty
```
