obdiag问题咨询

【测试环境】
【 obdiag 2.2.0】
1.obdiag是依赖ob的本地日志,如果本地日志刷的很快,那如何解决这个问题
修改:
/home/admin/ocp_agent/conf/module_config/ob_logcleaner_module.yaml
/home/admin/ocp_agent/conf/config_properties/ob_logcleaner.yaml
下面的文件需要重启吗?

2.目前有以下提醒,想问问这些该如何解决
disk.disk_hole | [warning] [cluster:obcluster] not warning ,the DATA_SIZE is not 0 . need check sum(REQUIRED_SIZE)/sum(DATA_SIZE)
cluster.mod_too_large | [warning] [cluster:obcluster] mod max memory over 10G,Please check on oceanbase.__all_virtual_memory_info to find some large mod

  1. 修改agent这个里边的配置即可,/home/admin/ocp_agent/conf/config_properties/ob_logcleaner.yaml,修改完成后十分钟会有定时任务来感知这个参数并生效,无需重启agent。如果想修改完成立即生效的话,就直接重启一下agent就行。

  2. 你的第二个问题是obdiag的巡检结果
    (1):disk.disk_hole | [warning] [cluster:obcluster] not warning 这个是表示磁盘有空洞了,一般合并一次就磁盘空洞就没了,这个不算什么大问题,磁盘有空洞只是会多占用一点磁盘而已,每天其实都有定时的合并。
    (2) cluster.mod_too_large | [warning] [cluster:obcluster] mod max memory over 10G 这个是表示有模块内存超过了10GB,是有风险的,得看看是什么模块占用内存这么高。
    你把top 3的内存消耗模块发出来看看

SELECT  hold/1024/1024/1024 AS hold_g, used/1024/1024/1024 AS used_g  
  FROM oceanbase.__all_virtual_memory_info  
  order by hold desc limit 3;'

日志问题的话,


我改成92%开始回收,但是目前的日志文件还是保留不下来。

看你三个节点的KvstoreCacheMb挺大的,发一下这个结果文件出来,我看看集群规格:
obdiag gather scene run --scene=observer.base

sql_result.txt (1.4 MB)

  1. 内存的事情:从你发回的obdiag sql_result.txt看了下集群的基本配置,内存这块配置挺大的。
    KvstoreCacheMb部分的内存占用,该部分内存在阈值内,按阈值可被wash,一般也可不关心。

  2. 日志清理的问题,除了ocp agent会有清理,其实observer也有清理策略:文档: OceanBase分布式数据库-海量数据 笔笔算数

你的集群中:enable_syslog_recycle=true, max_syslog_file_count =50 的

1 个赞

我是设置了这个参数的。但是日志文件并没有保留,而是很少。 :joy:我总不能定期的用obdiag来拉取日志保存吧

你的系统日志盘有多大,我再统一解释一下日志清理,日志清理有两个地方可能控制:

  1. ocp agent:
    ob.logcleaner.ob_log.disk.threshold:磁盘空间达到多少之后开始清理,默认是80%
    ob.logcleaner.ob_log.rule0.keep.percentage: 日志每次清理到对应磁盘百分比之后停止,默认是60%
    rule0对应的是observer.log,rule1对应的是observer.wf.log

  2. observer控制
    OceanBase 数据库中通过 enable_syslog_recycle 和 max_syslog_file_count 两个参数来控制系统运行日志的保留情况。
    ○ enable_syslog_recycle 配置项用于控制是否开启日志自动清理,默认为 FALSE,表示不开启日志自动清理。
    ○ max_syslog_file_count 配置项用于控制保留的日志文件个数,默认为 0,表示不限制日志文件的个数。

你可以先试试关闭ocp的日志清理看看:
在涉及的所有 observer 机器上执行:

  • /home/admin/ocp_agent/conf/config_properties/ob_logcleaner.yaml 里的 ob.logcleaner.enabled 对应的 value 调整为 false
  • /home/admin/ocp_agent/conf/module_config/ob_logcleaner_module.yaml 里的 enabled: ${ob.logcleaner.enabled} 调整为 enabled: false
  • 然后在ocp主机管理-> 点击更多-> 重启ocp_agent (重启一下吧)

好的。我先试下

disk.disk_hole这个是前置的检查报的,这边特地加了not warning,来表明让用户不用担心,需要使用后续的检查来进一步定位,若没有后续的其他报警就不用在意

好像有点不对劲,把这些参数改成false之后,好像所有日志都不清理了。总数也超过了50。


你是只改了ocp_agent的清理策略为false吧,observer上的配置你没动吧。两个策略你总是要留一个的。

observer是保留的