温馨提示×

Debian上WebLogic日志管理技巧

小樊
43
2025-12-07 05:49:59
栏目: 智能运维

Debian上WebLogic日志管理技巧

一 日志位置与快速查看

  • 常见日志路径为域目录下的 $DOMAIN_HOME/logs,典型文件包括:server.log(服务器日志)、access.log(访问日志)、diagnostic.log(诊断日志)。实时排查可用:tail -f $DOMAIN_HOME/logs/server.log;关键字过滤可用:grep “ERROR$DOMAIN_HOME/logs/server.log。系统层面可结合 /var/log/journalctl 查看与 WebLogic 相关的系统日志(如启动、停止、OOM 等),例如:journalctl -u weblogic 或查看时间范围:journalctl --since “2025-12-01” --until “2025-12-07”。

二 内置轮转与保留策略

  • WebLogic 支持按大小或按时间轮转,并限制保留文件数。默认阈值:开发模式在启动时轮转,单个文件约 500 KB;生产模式在启动时不会轮转,单个文件约 5000 KB(约 5 MB)。可设置按大小或按时间触发、保留文件数、轮转目录,以及在文件名中加入 java.text.SimpleDateFormat 变量(如:myserver_%yyyy%%MM%%dd%%hh%%mm%.log)。此外,WebLogic 会设置 500 MB 的强制硬轮转阈值,防止日志无限增长。

三 使用 logrotate 管理历史日志

  • 建议用 logrotate 对历史日志做压缩、归档与清理,避免磁盘被占满。示例配置 /etc/logrotate.d/weblogic(路径按实际调整):
/u01/app/weblogic/domain_name/logs/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 640 weblogic weblogic
    sharedscripts
    postrotate
        # 可选:通知 WebLogic 重新打开日志文件(若通过脚本启动)
        # systemctl kill -s USR1 weblogic || true
    endscript
}
  • 常用操作:手动测试 sudo logrotate -d /etc/logrotate.d/weblogic(调试);强制执行 sudo logrotate -f /etc/logrotate.d/weblogic;Debian 上 logrotate 通常已由系统定时任务每日运行,无需额外添加 cron。

四 日志级别与输出控制

  • 通过 $DOMAIN_HOME/config/logging.properties 调整日志级别与输出格式,例如:
handlers= java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

.level= INFO
com.example.level = FINEST
  • 修改后需重启 WebLogic 使配置生效(如 $DOMAIN_HOME/bin/stopWebLogic.shstartWebLogic.sh)。如使用 log4j/log4j2,可在相应配置中设置 RollingFileAppender 的 maxFileSizemaxBackupIndex 实现按大小滚动与保留数量控制。

五 集中监控与告警

  • 小规模可用 ELK Stack(Elasticsearch + Logstash + Kibana)Splunk 做集中化采集、检索与可视化告警。示例 Logstash 片段(按实际日志格式调整 grok 模式):
input {
  file {
    path => "/u01/app/weblogic/domain_name/logs/*.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}"
  }
}
  • 结合 Kibana 建立仪表盘与阈值告警规则,实现 ERROR/WARN 等关键事件的即时通知。

0