小祥子
#1
【 使用环境 】生产环境
【 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 个赞
淇铭
#3
你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:
-
如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;
-
如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。
ob青松
#4
如果磁盘空间足够!
max_syslog_file_cou设置为0
用于设置在回收日志文件之前可以容纳的最大日志文件数量。0 表示不回收。
直接影响日志的核心参数包括:
enable_syslog_recycle(开关)
max_syslog_file_count(数量上限)
enable_syslog_wf(是否双倍日志)
syslog_disk_size(磁盘空间限制)
syslog_file_uncompressed_count(联动生效条件)
文中提到的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"