温馨提示×

Ubuntu上WebLogic的日志管理有哪些技巧

小樊
46
2025-10-31 18:03:55
栏目: 智能运维

Ubuntu上WebLogic日志管理技巧

1. 定位日志文件路径

WebLogic在Ubuntu上的日志集中存储在域目录logs子目录中,路径格式为$DOMAIN_HOME/logs$DOMAIN_HOME为域根目录,可通过echo $DOMAIN_HOME命令确认)。主要日志文件包括:

  • server.log:服务器主日志,记录启动/关闭、异常、运行状态等核心信息;
  • access.log:HTTP访问日志,记录请求URL、响应状态码、客户端IP等访问信息;
  • diagnostic.log:诊断日志,记录系统警告、错误及详细诊断数据(如线程堆栈、内存使用)。

2. 实时查看与关键字搜索

  • 实时查看最新日志:使用tail -f命令跟踪日志文件的新增内容,例如tail -f $DOMAIN_HOME/logs/server.log,可动态监控服务器运行状态;
  • 关键字过滤:通过grep命令快速定位特定信息,例如grep 'ERROR' $DOMAIN_HOME/logs/server.log可提取所有错误日志,grep '192.168.1.100' $DOMAIN_HOME/logs/access.log可查找指定IP的访问记录。

3. 日志轮转配置(避免日志膨胀)

日志轮转可自动分割、压缩旧日志,防止日志文件占用过多磁盘空间。常见方法有两种:

  • 方法一:通过WebLogic内置设置(推荐)
    修改域配置中的日志轮转参数(需进入WebLogic管理控制台):
    • 导航至“环境”→“服务器”→选择目标服务器→“日志”;
    • 调整“日志文件大小”(如设置为100MB,超过则轮转)、“轮转文件数量”(如保留5个历史日志);
    • 生产模式下建议开启“基于时间的轮转”(如每天轮转一次),确保日志按时间归档。
  • 方法二:使用系统工具logrotate(Ubuntu原生支持)
    创建/etc/logrotate.d/weblogic配置文件,添加以下内容(以/u01/domains/mydomain/logs/*.log为例):
    /u01/domains/mydomain/logs/*.log {
        daily                # 每天轮转
        rotate 7             # 保留7个轮转文件
        compress             # 压缩旧日志(如.gz格式)
        missingok            # 文件不存在时不报错
        notifempty           # 文件为空时不轮转
        create 640 root adm  # 新日志文件权限
        sharedscripts        # 所有日志处理完成后执行脚本
        postrotate
            /usr/bin/killall -HUP $(pgrep -f "weblogic.Server")  # 发送HUP信号让WebLogic重新打开日志文件
        endscript
    }
    
    测试配置是否正确:sudo logrotate -f /etc/logrotate.d/weblogic,查看/var/log/logrotate.log监控轮转结果。

4. 定时清理旧日志(释放磁盘空间)

对于长期运行的服务器,需定期清理过期日志。可通过crontab设置定时任务:

  • 每日备份并清空当前日志:编辑crontabcrontab -e),添加以下内容(备份至/bakdir目录):
    0 0 * * * cp $DOMAIN_HOME/logs/server.log /bakdir/server_$(date -d yesterday +%Y%m%d).log; cat /dev/null > $DOMAIN_HOME/logs/server.log
    
  • 每周打包压缩旧日志并删除:在crontab中添加:
    0 1 * * 0 cd /bakdir; find . -name "server_*.log" -mtime +7 -exec tar czvf server_$(date -d yesterday +%Y%U).tar.gz {} \;; find . -name "server_*.log" -mtime +60 -exec rm -f {} \;
    
    说明:-mtime +7表示7天前的文件,-mtime +60表示60天前的文件,可根据需求调整。

5. 日志级别调整(精准定位问题)

根据需求调整日志级别,减少无关日志的输出:

  • 通过管理控制台调整:导航至“环境”→“服务器”→选择目标服务器→“日志”→“日志级别”,可选择INFO(默认,记录常规信息)、DEBUG(调试信息,详细但占用空间大)、WARN(警告信息)、ERROR(错误信息)等级别;
  • 通过配置文件调整:修改$DOMAIN_HOME/config/config.xml中的<log>标签,例如将<log-level>INFO</log-level>改为<log-level>DEBUG</log-level>,重启WebLogic生效。

6. 关键日志分析与工具

  • 基础分析命令
    • tail -n 50 $DOMAIN_HOME/logs/server.log:查看日志文件最后50行;
    • grep -i 'exception' $DOMAIN_HOME/logs/server.log | wc -l:统计异常日志数量;
    • awk '/ERROR/ {print $1, $2, $3}' $DOMAIN_HOME/logs/server.log:提取错误日志的时间戳和关键信息。
  • 高级工具:对于大规模日志分析,可使用ELK Stack(Elasticsearch+Logstash+Kibana)或Splunk,实现日志可视化、趋势分析和告警功能。

0