nebula-graph的log日志打印导致磁盘空间不足

提问参考模版:

  • nebula 版本:V2.6.2
  • 部署方式:分布式
  • 安装方式:tar包安装

问题描述:
nebula-graph经常会遇到一些错误后,疯狂打印日志,导致磁盘被占满。经常把磁盘打印到90%

我查看了文档,要么完全关闭日志打印,要么就只能自己写脚本物理删除了。

需求:
贵团队有没有提供清理日志的脚本?或者清理规则思路?应该怎么删除合适?

你的日志级别是什么呢?调整下 log 级别? 参考文档 Graph 服务配置 - Nebula Graph Database 手册

我的日志级别已经调整了,是warning日志了。warning或者error都会打印日志,疯狂打印,知道磁盘满

minloglevel 这个配置,我现在设置的是1

可以大概给几行看看 warning 都是什么日志吗?


这次是选举的报错,上次还有space不存在这类的报错

如果写删除shell脚本的话,以什么规则删除呢?比如删除昨天及以前的日志?还是删除大于多少G的文件?

我们日志组件用的时 glog,可以首先在各个 conf 文件中设置单个文件的最大大小,参数是: https://github.com/google/glog/blob/master/src/glog/logging.h.in#L494 ;然后写个监听 shell 脚本定期删老日志文件就可以。网上有很多相关脚本,比如说随便搜了一个,改改路径和配置应该就可以(注意测试):glog配置与持久化记录_时暑的博客-CSDN博客


#glog日志路径
log_path="/mnt/hgfs/test/log"
 
#监听频率 3秒扫描一次
monitor_time=3  
 
#是否开启监听
working_flag=true
 
#当日志文件超过该值则删除旧文件
file_number_threshould=10
 
 
cd $log_path
while $working_flag
        do
            #判断日志文件个数是否超过阀值
            file_number=$(ls -l | grep "a.wang-virtual-machine.wang.log.INFO*" | wc -l )
            if [ $file_number -gt $file_number_threshould ]
            then
                #把文件按从旧到新的顺序排列,删除旧日志,保留最新的10个日志文件
                declare -i delete_number=$(expr $file_number - $file_number_threshould )
                rm -r $(ls -rt | head -n$delete_number)
            fi
            sleep $monitor_time #休眠

1 个赞

非常感谢你提供的思路和方案,还有最后一个问题,对日志的删除会影响新日志文件的生成和打印吗?例如下图中红色框框中的文件被删除了:

1 个赞

只要不删除最新的那个就可以,那个软连接一般都是指向最新的;所以你在删除的时候可以对于 metad/graphd/storaged 的日志分别按日期进行排序,然后保留最新的一两个,其他都删除。

2 个赞