为什么ob部署时给/home目录建议的磁盘空间只有100~300G,对于运行日志的存放根本不够

【 使用环境 】生产环境
【 OB or 其他组件 】OB部署搭建
【 使用版本 】V4.2.1.11企业版
【问题描述】如题,在ob文档中,observer服务器/home挂载点大小要求100~300G。


实际生产以默认保留200个(max_syslog_file_count为200,日志等级默认wdiag)observer.log日志来算,单个256MB,就到51G了

而这200个文件也就保留不到12小时,图中为生产的一个集群,14:52查看的,observer日志最早的只有3:09了,想找前一天的都没有,或者是周六周日的问题,想看日志都不够,所以这个/home目录是否应该放大一些?
除了max_syslog_file_count参数,还有其它影响observer日志保留时间的参数吗?

1 个赞

你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。

如果磁盘空间足够!
max_syslog_file_cou设置为0

用于设置在回收日志文件之前可以容纳的最大日志文件数量。0 表示不回收。

直接影响日志的核心参数包括:
enable_syslog_recycle(开关)
max_syslog_file_count(数量上限)
enable_syslog_wf(是否双倍日志)
syslog_disk_size(磁盘空间限制)
syslog_file_uncompressed_count(联动生效条件)

300G够用了。

文中提到的300G问题很常见,通过优化syslog和调整file配置,通常可以解决。

顶一下

observer的日志可以通过两方面参数控制
1、通过observer自身的参数控制,enable_syslog_recycle 和 max_syslog_file_count
2、ocp_agent控制

ocp_agent如何控制日志清理呢,通过配置文件定义清理哪些日志、清理日志的频率、什么时间开始清理

如果OBServer和 OCP的策略都开启时,哪个策略生效?

需要看 OBServer 系统运行日志的容量先达到 max_syslog_file_count 还是 ob.logcleaner.ob_log.disk.threshold

  • 如果是前者,OBServer 内核清理。
  • 如果是后者,ocp_agent 清理。

ocp_agent 日志清理相关配置参数

more /home/admin/ocp_agent/conf/module_config/ob_logcleaner_module.yaml
modules:
    -
      module: ob.logcleaner
      moduleType: ob.logcleaner
      process: ocp_mgragent
      config:
        runInterval: ${ob.logcleaner.run.internal}
        enabled: ${ob.logcleaner.enabled}
        cleanerConfig:
          logCleaners:
            - logName: ob_log
              path: ${ob.run.path}/log    --清理OBServer日志 
              diskThreshold: ${ob.logcleaner.ob_log.disk.threshold}    --OBSever日志路径
              rules:
                - fileRegex: ${ob.logcleaner.ob_log.rule0.file.regex}
                  retentionDays: ${ob.logcleaner.ob_log.rule0.retention.days}
                  keepPercentage: ${ob.logcleaner.ob_log.rule0.keep.percentage}
                - fileRegex: ${ob.logcleaner.ob_log.rule1.file.regex}
                  retentionDays: ${ob.logcleaner.ob_log.rule1.retention.days}
                  keepPercentage: ${ob.logcleaner.ob_log.rule1.keep.percentage}
                - fileRegex: ${ob.logcleaner.ob_log.rule2.file.regex}
                  retentionDays: ${ob.logcleaner.ob_log.rule2.retention.days}
                  keepPercentage: ${ob.logcleaner.ob_log.rule2.keep.percentage}
            - logName: core_log
              path: ${ob.run.path}
              diskThreshold: ${ob.logcleaner.core_log.disk.threshold}
              rules:
                - fileRegex: ${ob.logcleaner.core_log.rule0.file.regex}
                  retentionDays: ${ob.logcleaner.core_log.rule0.retention.days}
                  keepPercentage: ${ob.logcleaner.core_log.rule0.keep.percentage}
            - logName: task_store
              path: ${ocp.agent.home.path}/task_store
              diskThreshold: ${ocp.agent.task.disk.threshold}
              rules:
                - fileRegex: '^ocp_agent_task_[A-Za-z0-9-]*'
                  retentionDays: ${ocp.agent.task.retention.days}
                  keepPercentage: ${ocp.agent.task.keep.percentage}



more /home/admin/ocp_agent/conf/config_properties/ob_logcleaner.yaml
mutex: {}
configVersion: "2026-06-11T17:16:17.859+08:00"
configs:
    - key: ob.logcleaner.enabled
      value: true           --开启日志自动清理  
      valueType: bool
      encrypted: false
      configVersion: "2026-06-11T17:16:17.859+08:00"
    - key: ob.logcleaner.run.internal
      value: 5m                       --清理日志时间间隔
      valueType: string
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.disk.threshold
      value: 80                --磁盘空间使用达到多少之后开始清理,默认是 80%
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule0.file.regex
      value: '[a-z]+.[a-z]+.log.[0-9]+'
      valueType: string
      encrypted: false
      configVersion: "2026-06-11T17:16:17.859+08:00"
    - key: ob.logcleaner.ob_log.rule0.retention.days
      value: 8
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule0.keep.percentage
      value: 60                        --日志每次清理到对应日志总量的百分比之后停止,默认是 60%
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule1.file.regex             --rule1对应的是 observer.wf.log
      value: ([a-z]+.)?[a-z]+.log.wf.[0-9]+
      valueType: string
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule1.retention.days
      value: 30
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule1.keep.percentage
      value: 80
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule2.file.regex
      value: '[a-z]+.log.[0-9]+.zst'
      valueType: string
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule2.retention.days
      value: 30
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.ob_log.rule2.keep.percentage
      value: 80
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.core_log.disk.threshold
      value: 80
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.core_log.rule0.file.regex
      value: core.[0-9]+
      valueType: string
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.core_log.rule0.retention.days
      value: 8
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"
    - key: ob.logcleaner.core_log.rule0.keep.percentage
      value: 60
      valueType: int64
      encrypted: false
      configVersion: "2025-08-15T14:08:23+08:00"

666