温馨提示×

WebLogic在Linux上如何管理日志

小樊
38
2025-12-16 11:22:26
栏目: 智能运维

Linux上WebLogic日志管理实操指南

一 日志位置与分类

  • 常见目录结构:WebLogic 9及以上版本的日志默认位于域目录下的 $DOMAIN_HOME/servers/$SERVER_NAME/logs。该目录通常包含:
    • SERVER_NAME.log:服务器运行日志(启动、关闭、运行信息)。
    • access.log:HTTP 访问日志(按时间、来源IP、请求路径、状态码记录)。
    • DOMAIN_NAME.log:域日志,汇聚域内各服务器的重要事件(默认转发级别为 NOTICE 及以上)。
    • 常见还有 SERVER_NAME.out(标准输出/错误输出重定向)。
  • 快速定位示例:
    • 查看目录:ls -l $DOMAIN_HOME/servers/AdminServer/logs
    • 实时查看:tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
    • 访问日志:tail -f $DOMAIN_HOME/servers/AdminServer/logs/access.log
    • 域日志:tail -f $DOMAIN_HOME/servers/AdminServer/logs/DOMAIN_NAME.log
  • 提示:路径中的 $DOMAIN_HOME 为域根目录,$SERVER_NAME 为服务器实例名(如 AdminServer)。

二 常用查看与检索命令

  • 实时跟踪:tail -f server.log
  • 查看末尾N行:tail -n 100 server.log
  • 关键字检索:grep “ERRORserver.log;grep -C 5Exceptionserver.log(显示匹配行及前后5行)
  • 行号+检索:cat -n server.log | grep “keyword
  • 分页查看:less server.log
  • 以上命令适合快速定位错误堆栈、异常、访问异常等场景。

三 日志轮转与保留策略

  • 方式一 WebLogic内置JDK日志轮转(推荐优先)
    • 配置文件:$DOMAIN_HOME/config/logging.properties
    • 关键参数示例:
      • java.util.logging.FileHandler.pattern = %h/weblogic.%g.log
      • java.util.logging.FileHandler.limit = 10485760(单文件约10MB
      • java.util.logging.FileHandler.count = 5(保留5个历史文件)
      • java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
    • 生效方式:修改后重启服务器(或使用 WLST 在线更新日志配置)。
  • 方式二 操作系统级 logrotate(与WebLogic解耦,便于统一运维)
    • 新建配置:/etc/logrotate.d/weblogic
    • 示例(按日轮转、保留30天、压缩、延迟压缩、轮转后通知应用重新打开日志):
      /u01/oracle/user_projects/domains/*/servers/*/logs/*.log {
          daily
          missingok
          rotate 30
          compress
          delaycompress
          copytruncate
          notifempty
          dateext
          dateformat -%Y%m%d
          postrotate
              # 如使用 systemd 管理的 WebLogic 服务,可按需执行:
              # systemctl reload weblogic.service >/dev/null 2>&1 || true
          endscript
      }
      
    • 测试与生效:
      • 手动测试:logrotate -d /etc/logrotate.d/weblogic(干跑)
      • 强制执行:logrotate -f /etc/logrotate.d/weblogic
      • 定时执行:已随系统 cron 每日运行(无需额外配置)。
  • 方式三 访问日志的保留策略
    • 在 WebLogic 控制台或通过 WLST 调整访问日志的保留文件数与回滚规则,控制磁盘占用。
  • 方式四 启动日志重定向
    • 使用 nohup 启动并将标准输出/错误重定向到指定日志文件,便于与系统日志策略协同管理。

四 集中化与监控告警

  • 集中收集与转发
    • 使用 rsyslog/syslog-ng 将 WebLogic 日志发送到远程日志服务器,统一存储与审计。
  • 检索分析与可视化
    • 部署 ELK Stack(Elasticsearch, Logstash, Kibana) 对 WebLogic 日志进行结构化、检索、可视化与告警。
  • 安全与审计
    • 通过控制台进行日志相关安全配置;使用 auditd 记录关键系统调用,辅助安全审计与追踪。

五 常见问题与最佳实践

  • 避免重复轮转:若已启用 WebLogic 内置轮转,建议让 logrotate 使用 copytruncate,或在应用内配合信号/接口完成日志句柄切换,防止日志写入失败。
  • 轮转后确保可读性:压缩策略建议启用 delaycompress,避免正在写入的日志被压缩导致分析困难。
  • 统一目录与权限:将域日志统一到专用目录,设置合适的 owner:group权限(如 640),便于 rsyslog/ELK 采集。
  • 保留周期与容量规划:结合磁盘容量设置合理的 rotate 天数或 count,并定期归档到对象存储/备份系统。
  • 变更生效方式:JDK 日志配置需重启或在维护窗口内通过 WLST 热更新;系统级 logrotate 可在线执行,建议先在测试环境验证。

0