为避免Weblogic日志增长导致服务器磁盘空间不足而引发服务异常,需要对weblogic启动和运行日志进行切割和压缩处理,同时Weblogic运行日志保留90天。
将附件cronolog-1.6.2.tar.gz包拷贝并上传到weblogic服务器中,cronolog是一个开源软件,需要手动的安装。首先解压缩文件,然后再进行软件的安装。在安装完成后,建议清理该文件;cronolog-1.6.2.tar.gz下载地址如下:
https://fossies.org/linux/www/old/cronolog-1.6.2.tar.gz/
安装命令如下(文件放在software文件夹下,以root身份运行下面命令):
tar -zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make&&make install
默认情况下cronolog软件安装在/usr/local/sbin目录下,命令属组为root用户,若其他用户可以使用该命令则需要修改属组或将该命令执行权限设置为755,本次是将命令修改属组。具体命令如下
chown weblogic:weblogic /usr/local/sbin/cronolog
chown weblogic:weblogic /usr/local/sbin/cronosplit
mkdir -p /home/weblogic/wlslogs ###目录可以根据实际情况进行配置。
编辑启动脚本$domain_home/bin/startWebLogic.sh,编辑前,首先使用操作系统命令备份启动脚本startWebLogic.sh
cp $domain_home/bin/startWebLogic.sh KaTeX parse error: Expected group after '_' at position 33: …tartWebLogic.sh_̲(date +“%Y-%m-%d”)
修改如下内容:
${JAVA_HOME}/bin/java ${JAVA_VM} -version
LOG_PATH=/home/weblogic/wlslogs
CRONOLOG_REDIRECT_LOG="$LOG_PATH/weblogic.${SERVER_NAME}.%Y-%m-%d.log"
if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
echo "Starting WLS with line:"
echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS} 2>&1 | /usr/local/sbin/cronolog ${CRONOLOG_REDIRECT_LOG}
else
echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1
fi
使用脚本重新启动weblogic,weblogic的后台日志会在LOG_PATH目录中。
示例:
nohup ./startWebLogic.sh >> /dev/null 2>&1 &
使用上述命令启动AdminServer时,不会生成nohup.out日志,启动日志请到上述配置的路径中进行查看。
AdminServer服务
#vim $domain_home/bin/startAdmin.sh
#!/bin/bash
#启动AdminServer服务
nohup ./startWebLogic.sh >> /dev/null 2>&1 &
#执行过程中休眠1秒钟
sleep 1
#打开生产的日志文件
tail -f /home/weblogic/wlslogs/weblogic.AdminServer.$(date +"%Y-%m-%d").log
Sever11服务(即被关服务节点名称,其他节点则拷贝脚本到相应的服务器中,修改被管节点名称即可)
#vim $domain_home/bin/startServer11.sh
#!/bin/bash
#启动Server11服务
nohup /home/weblogic/wls1213/Middleware/user_projects/domains/base_domain/bin/startManagedWebLogic.sh server11 http://10.87.200.11:7001 >> /dev/null 2>&1 &
#执行过程中休眠1秒钟
sleep 1
#打开生产的日志文件
tail -f /home/weblogic/wlslogs/weblogic.server11.$(date +"%Y-%m-%d").log
编辑启动脚本$domain_home/dellog.sh,脚本内容如下:
#!/bin/sh
# 日志文件夹
logfolder=/home/weblogic/wlslogs
cd $logfolder
# 查找当前时间前一天的日志,并进行压缩打包
find ./ -mtime 1 | awk -F "/" '{print $NF}' | grep -v ".tar.gz" | xargs tar -zcvf weblogic.$(date -d"1 day ago" +"%Y-%m-%d").tar.gz
#判断tar包是否执行成功,若成功打包则删除源文件
if [ $? -eq 0 ]; then
find ./ -mtime 1 | awk -F "/" '{print $NF}' | grep -v ".tar.gz" | xargs rm -rf {} \;
fi
# 删除90天以上的日志文件
find ./ -mtime +90 -name "*20*.tar.gz" -exec rm -rf {} \;
说明:该脚本作用为将当前时间weblogic生成的最新日志进行压缩并清理,同时将90天生成的压缩文件进行清理,保证该文件中保存91天的日志,其中有90个压缩文件和一个当天生成的日志文件
编辑后对该脚本赋予执行权限
chmod +x dellog.sh
每日零点三十分时,对日志进行压缩处理和清理处理。
#crontab -e #创建定时任务将下面内容拷贝到定时任务列表中,注意脚本在服务器中实际存放位置 #清理weblogic日志30 0 * * * /home/weblogic/wls1213/Middleware/user_projects/domains/base_domain/dellog.sh
使用crontab -l 查看配置详情如下(脚本路径以实际为准)
建议:crontab任务设置为root用户,或当前服务启动用户weblogic,本次将crontab任务设置在启动用户weblogic上。
ab -l 查看配置详情如下(脚本路径以实际为准)
[外链图片转存中…(img-osmX52nk-1675415149380)]
建议:crontab任务设置为root用户,或当前服务启动用户weblogic,本次将crontab任务设置在启动用户weblogic上。
该方法能够有效的对weblogic日志进行保存及清理,但是无法保证物理磁盘空间容量,但物理磁盘空间不足时,请根据实际情况对磁盘空间进行释放或增加物理磁盘容量。