温馨提示×

WebLogic在Debian中的日志管理

小樊
37
2025-11-09 13:24:46
栏目: 智能运维

WebLogic在Debian中的日志管理指南

一、日志文件定位

WebLogic在Debian系统中的日志文件默认存储在域目录logs子目录下,路径通常为/u01/app/weblogic/domain_name/logs/(具体路径取决于域的安装位置)。主要日志文件包括:

  • server.log:记录服务器实例的常规运行信息(如启动/停止、请求处理、异常等);
  • access.log:记录客户端HTTP访问请求(如URL、响应状态码、客户端IP等);
  • diagnostic.log:记录诊断信息(如线程转储、内存使用、JDBC调用等),用于故障排查。

二、日志查看工具

1. 命令行工具

  • 实时查看日志:使用tail -f命令跟踪日志文件的最新内容(如tail -f /u01/app/weblogic/domain_name/logs/server.log);
  • 过滤关键信息:通过grep命令筛选特定关键字(如grep "ERROR" /u01/app/weblogic/domain_name/logs/server.log可提取所有错误日志);
  • 查看系统日志:若WebLogic通过systemd管理,可使用journalctl命令(如journalctl -u weblogic查看WebLogic服务的所有日志,journalctl --since "2025-11-01" --until "2025-11-09"查看指定时间范围的日志)。

2. 图形界面工具

可使用LogExpert(轻量级日志查看器)、KLog(KDE环境专用)等工具,支持日志过滤、高亮、分栏显示等功能,提升查看效率。

三、日志轮转配置

日志轮转用于防止日志文件过大占用磁盘空间,常用方法为logrotate工具(Debian自带)。

1. 安装logrotate

若未安装,可通过以下命令安装:
sudo apt-get update && sudo apt-get install logrotate

2. 创建WebLogic专用配置文件

/etc/logrotate.d/目录下创建weblogic文件(如sudo vi /etc/logrotate.d/weblogic),添加以下配置(根据实际需求调整):

/u01/app/weblogic/domain_name/logs/*.log {
    daily                # 每天轮转一次(可选:weekly/monthly)
    rotate 7             # 保留最近7个轮转文件
    compress             # 压缩旧日志(节省空间)
    missingok            # 若日志文件不存在,不报错
    notifempty           # 若日志为空,不轮转
    create 640 weblogic weblogic  # 新日志文件权限、属主、属组
    sharedscripts        # 所有日志轮转完成后执行postrotate脚本
    postrotate
        /bin/kill -HUP `cat /u01/app/weblogic/domain_name/servers/AdminServer/tmp/.pid` 2>/dev/null || true
    endscript
}

说明postrotate脚本用于向WebLogic进程发送HUP信号,使其重新打开日志文件(避免日志写入中断)。

3. 测试与手动运行

  • 测试配置是否正确:sudo logrotate -vf /etc/logrotate.d/weblogic-v显示详细过程,-f强制轮转);
  • 查看轮转日志:tail -f /var/log/logrotate.log(监控logrotate的执行情况)。

四、日志级别设置

通过调整日志级别,可控制日志输出的详细程度(级别从低到高:TRACEDEBUGINFOWARNERRORFATAL)。

1. 修改logging.properties文件

路径为$DOMAIN_HOME/config/logging.properties,调整以下参数:

.level= INFO               # 设置全局日志级别为INFO(默认)
com.example.level= FINEST  # 设置特定包(如com.example)的日志级别为FINEST(详细)

说明FINEST级别会记录最详细的调试信息,生产环境建议使用INFOWARN以减少日志量。

2. 通过WebLogic控制台修改

  1. 登录WebLogic控制台(http://<server_ip>:7001/console);
  2. 导航至环境→服务器→<服务器名称>→日志→常规
  3. 在“日志级别”下拉框中选择所需级别,点击“保存”并重启服务器使配置生效。

五、日志分析与监控

1. 集中化日志管理(ELK Stack)

使用ELK(Elasticsearch+Logstash+Kibana)实现日志的集中存储、分析与可视化:

  • 安装ELKsudo apt-get install elasticsearch logstash kibana
  • 配置Logstash:创建/etc/logstash/conf.d/weblogic.conf文件,内容如下:
    input {
      file {
        path => "/u01/app/weblogic/domain_name/logs/server.log"
        start_position => "beginning"
      }
    }
    filter {
      grok {
        match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{JAVACLASS:class} - %{GREEDYDATA:message}" }
      }
    }
    output {
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "weblogic-%{+YYYY.MM.dd}"
      }
    }
    
  • 启动服务sudo systemctl start elasticsearch logstash kibana
  • 访问Kibana:浏览器输入http://<server_ip>:5601,配置索引模式(如weblogic-*)即可查看、分析日志。

2. 日志监控与告警

通过ELK的“Alerts”功能或第三方工具(如Splunk、Prometheus+Granafa),设置日志关键词告警(如“ERROR”“Exception”),当出现关键错误时及时通知管理员。

六、日常维护技巧

  1. 定期清理旧日志:编写脚本删除超过30天的日志文件(如find /u01/app/weblogic/domain_name/logs/ -type f -name "*.log" -mtime +30 -exec rm -f {} \;),并通过crontab -e添加定时任务(如每天凌晨执行:0 0 * * * /path/to/cleanup_script.sh);
  2. 监控日志文件大小:使用du -sh /u01/app/weblogic/domain_name/logs/*.log查看日志文件大小,若超过阈值(如1GB),及时触发轮转或扩容;
  3. 备份重要日志:定期将logs目录备份至异地(如tar -czvf /backup/weblogic_logs_$(date +%Y%m%d).tar.gz /u01/app/weblogic/domain_name/logs/),防止数据丢失。

0