如何使用linux日志管理工具来管理oracle osb服务器日志文件? ...

莱莱  论坛元老 | 2024-12-25 23:04:38 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1029|帖子 1029|积分 3087

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

​场景:做一个OSB项目,生产环境天天至少有几十万次接口调用,因报文量大,数据库存储容量有限,也因早期接口题目较多,所以osb上的每个接口都会把吸取到的数据打到log文件中(接口数据打印到log同一由模板实现),便于查找题目,这就导致集群上每台服务器天天的log大小都超过1g,甚至多的话一天一台服务器就有10多G的日志产生,而weblogic服务器中的日志配置不能对*.out类型的日志文件举行控制,且也不支持日志压缩,造成服务器硬盘空间浪费
     为此,我们找到了一种方法,就是使用linux自带的日志管理工具logrotate来管理osb服务器上的日志文件,实现步骤如下:
在目录/etc/logrotate.d/下创建文件osb_log
文件内容如下:
$DOMAIN/servers/*/logs/*.[o|l][u|o][t|g]  $DOMAIN/servers/*/logs/*.[o|l][u|o][t|g]?????
{
    daily
    rotate 30
   copytruncate
    compress
    delaycompress
    missingok
    dateext
    notifempty
    create 644 oracle oracle
    prerotate
        find $DOMAIN/servers/*/logs -type f  \( -iname ‘*.log*’ -o  -iname ‘*.out*’ \) -mtime +30|xargs rm -rf
        find $DOMAIN/servers/*/logs/  \( -iname ‘*.log?*’ -o  -iname ‘*.out?*’ \) -type f -size 0c  -mtime +1 | xargs  rm -rf
    endscript
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}
生存即可,剩下的事交由系统行止理。
脚本实现的功能:天天把osb domain中的所有admin服务和受管服务下的log举行截断并压缩,同时清除30天前的日志记录
脚本适用环境:linux5.4及以上版本的操作系统,5.4从前的操作系统没经过测试(测试发现脚本日志文件地点的查找在linux5.4版本中支持正则表达式,而linux6.6的版本则只支持通配符方式)
结果:日志文件压缩率达到90%,记得一下子就腾出了50多G的硬盘空间出来 



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表