温馨提示×

Debian系统中WebLogic的日志管理怎么做

小樊
39
2025-11-27 10:52:00
栏目: 智能运维

Debian系统下WebLogic日志管理实践

一 日志位置与类型

  • 常见日志与路径(WebLogic 9+):
    • 服务器日志:$DOMAIN_HOME/servers//logs/.log
    • 域日志:$DOMAIN_HOME/servers//logs/.log
    • HTTP访问日志:$DOMAIN_HOME/servers//logs/access.log
  • 快速定位示例:
    • 进入域目录:cd /u01/app/weblogic/your_domain
    • 实时查看:tail -f servers/AdminServer/logs/AdminServer.log
    • 过滤错误:grep -n “ERROR” servers/AdminServer/logs/AdminServer.log
  • 说明:不同版本与安装方式路径可能略有差异,以上为常见默认结构。

二 内置轮转与日志级别配置

  • 内置轮转(WebLogic Server自带)
    • 开发模式:默认按大小500 KB轮转,命名如 SERVER_NAME.log00001;生产模式:默认按大小5000 KB轮转,启动时不会立即轮转。
    • 可在控制台设置:Environment → Servers → 选定Server → Logging → General
      • Rotation Type:By Size / By Time
      • Rotation File Size:如 10485760(10 MB)
      • Rotation Interval:如 24 hours
      • Files to Retain:如 10
      • Log File Rotation Directory:自定义轮转文件目录
      • 文件名可加入时间格式:如 myserver_%yyyy%%MM%%dd%%hh%%mm%.log
    • 安全阈值:当文件达到约2,097,152 KB(约2 GB)会强制轮转,防止过大。
  • 日志级别与输出(示例)
    • 使用JDK日志时,可在 $DOMAIN_HOME/config 下的 logging.properties 调整:
      • 全局级别:.level= INFO
      • 包级别:com.example.level = FINE
      • 控制台输出:设置 java.util.logging.ConsoleHandler.levelformatter
    • 如使用Log4j/Log4j2,可在相应配置中设置按大小/时间滚动与保留策略。

三 使用logrotate进行系统级轮转

  • 安装与原则
    • Debian默认自带 logrotate,建议对WebLogic采用“copytruncate”方式,避免应用句柄未释放导致轮转失败。
  • 配置示例(/etc/logrotate.d/weblogic)
    • 适配常见路径(按实际替换):
      /u01/app/weblogic/*/servers/*/logs/*.log {
          daily
          missingok
          rotate 7
          compress
          delaycompress
          notifempty
          create 640 weblogic weblogic
          copytruncate
          sharedscripts
          postrotate
              # 可选:重启应用或通知外部系统
              # systemctl reload weblogic.service >/dev/null 2>&1 || true
          endscript
      }
      
    • 说明:
      • copytruncate:复制当前日志后清空原文件,适合无法发送信号给WebLogic的场景。
      • 若使用systemd管理且可安全发送信号,可改用 postrotate 执行 kill -USR1 <weblogic_pid>systemctl reload
  • 测试与执行
    • 语法检查:logrotate -d /etc/logrotate.d/weblogic
    • 强制执行:logrotate -f /etc/logrotate.d/weblogic
    • 定时:logrotate由 cron 每日自动运行(无需额外配置)。

四 集中监控与告警

  • ELK Stack示例(轻量接入)
    • Filebeat采集:/etc/filebeat/filebeat.yml
      filebeat.inputs:
      - type: log
        paths:
          - /u01/app/weblogic/*/servers/*/logs/*.log
        fields:
          log_type: weblogic
      output.logstash:
        hosts: ["localhost:5044"]
      
    • Logstash处理(/etc/logstash/conf.d/weblogic.conf)
      input { beats { port => 5044 } }
      filter {
        grok {
          match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{JAVACLASS:class} - %{GREEDYDATA:message}" }
        }
        date { match => [ "timestamp", "ISO8601" ] }
      }
      output {
        elasticsearch { hosts => ["localhost:9200"] index => "weblogic-%{+YYYY.MM.dd}" }
        stdout { codec => rubydebug }
      }
      
    • Kibana:访问 http://<server_ip>:5601 创建索引模式与可视化告警。

五 日常运维与排错清单

  • 常用命令
    • 实时查看:tail -f …/AdminServer.log
    • 关键字定位:grep -n “ERROR|Exception” …/AdminServer.log -A5 -B5
    • 按时间查看:sed -n ‘/2025-11-27 10:00:/,/2025-11-27 11:00:/p’ …/AdminServer.log
  • 容量巡检(cron示例)
    • 每天检查是否超过阈值(如1 GB):
      0 0 * * * du -sh /u01/app/weblogic/*/servers/*/logs/*.log 2>/dev/null | awk '$1 ~ /G$/ {print "WARN: " $0}'
      
  • 注意事项
    • 避免双重轮转:若已启用WebLogic内置按大小/时间轮转,建议系统级 logrotate 使用 copytruncate,或关闭内置轮转以免文件名冲突与句柄问题。
    • 权限与属主:确保 weblogic:weblogic 对日志目录与文件具备写权限,避免轮转失败。
    • 保留策略:结合磁盘容量与合规要求设置 rotate 7/30 等保留天数,并定期归档与清理。

0