温馨提示×

Ubuntu上WebLogic的日志管理怎么做

小樊
46
2025-10-12 07:46:21
栏目: 智能运维

Ubuntu上WebLogic日志管理指南

一、日志文件定位

WebLogic在Ubuntu上的日志文件默认存储在域根目录$DOMAIN_HOME)下的logs子目录中。可通过以下命令确认域根目录路径:

echo $DOMAIN_HOME

常见日志文件及作用:

  • server.log:记录服务器运行日志(包括启动、停止、错误等信息);
  • access.log:记录HTTP访问请求日志(如URL、响应状态码);
  • domain.log:记录域级别的事件日志(如部署、配置变更)。

二、日常日志查看方法

  1. 终端命令查看

    • 进入日志目录:
      cd $DOMAIN_HOME/logs
      
    • 实时查看server.log最新内容(动态刷新):
      tail -f server.log
      
    • 筛选特定关键字(如“ERROR”)的日志:
      grep "ERROR" server.log
      
    • 使用文本编辑器查看(如vimnano):
      vim server.log
      
  2. 图形界面查看
    Ubuntu自带的gnome-system-log工具可直观查看日志文件:

    • 打开终端,输入gnome-system-log启动;
    • 在左侧目录树中找到/var/log/weblogic(或自定义日志路径),点击即可查看。

三、日志轮转配置

日志轮转用于自动分割、压缩和删除旧日志,避免日志文件过大占用磁盘空间。以下是两种常用方法:

1. 使用logrotate工具(推荐)

logrotate是Ubuntu系统自带的日志管理工具,支持按时间/大小轮转、压缩、保留指定数量日志等功能。

  • 步骤1:创建WebLogic专用配置文件
    /etc/logrotate.d/目录下新建weblogic配置文件:
    sudo nano /etc/logrotate.d/weblogic
    
  • 步骤2:添加轮转规则(以server.log为例)
    $DOMAIN_HOME/logs/server.log {
        daily                # 每天轮转一次(可改为weekly/monthly)
        rotate 7             # 保留7个旧日志文件
        compress             # 压缩旧日志(如server.log.1.gz)
        delaycompress        # 延迟压缩(避免立即压缩最新轮转文件)
        missingok            # 日志文件不存在时不报错
        notifempty           # 日志为空时不轮转
        create 640 root adm  # 创建新日志文件,权限640,属主root,属组adm
        sharedscripts        # 所有日志轮转完成后执行postrotate脚本
        postrotate
            /bin/kill -HUP `cat $DOMAIN_HOME/servers/AdminServer/tmp/.pid` 2>/dev/null || true
        endscript
    }
    
    注:postrotate脚本用于通知WebLogic重新打开日志文件(避免日志写入中断)。
  • 步骤3:测试配置
    强制立即轮转(模拟日志达到条件时的行为):
    sudo logrotate -f /etc/logrotate.d/weblogic
    
    日志轮转由系统cron任务自动执行(通常位于/etc/cron.daily/logrotate)。
2. 使用Shell脚本定时清理

若不想依赖logrotate,可通过脚本定期删除旧日志(如超过30天):

  • 创建清理脚本(如clean_weblogic_logs.sh):
    sudo nano /usr/local/bin/clean_weblogic_logs.sh
    
  • 添加以下内容
    #!/bin/bash
    LOG_DIR="$DOMAIN_HOME/logs"
    RETENTION_DAYS=30  # 保留30天内的日志
    find "$LOG_DIR" -type f -name "*.log" -mtime +$RETENTION_DAYS -exec rm -f {} \;
    find "$LOG_DIR" -type f -name "*.gz" -mtime +$RETENTION_DAYS -exec rm -f {} \;
    
  • 赋予执行权限
    sudo chmod +x /usr/local/bin/clean_weblogic_logs.sh
    
  • 添加定时任务(每天凌晨2点执行):
    sudo crontab -e
    
    添加以下行:
    0 2 * * * /usr/local/bin/clean_weblogic_logs.sh
    

四、注意事项

  • 避免直接删除正在写入的日志文件:若需清空当前日志(如server.log),可使用cat /dev/null > server.log(不会影响WebLogic服务)。
  • 调整日志级别:若日志量过大,可通过WebLogic管理控制台(http://<host>:<port>/console)调整日志级别(如将weblogic logger级别从INFO改为WARNING),减少不必要的日志输出。

0