温馨提示×

Ubuntu中WebLogic日志管理方法

小樊
40
2025-12-20 16:08:31
栏目: 智能运维

Ubuntu中WebLogic日志管理方法

一 日志位置与类型

  • 常用目录与文件
    • 服务器日志:$DOMAIN_HOME/servers/$SERVER_NAME/logs/$SERVER_NAME.log
    • 域日志:$DOMAIN_HOME/servers/$ADMIN_SERVER_NAME/logs/$DOMAIN_NAME.log
    • 访问日志:常见为 access.log(路径依配置,可能在实例 logs 目录或 HTTP 访问日志目录)
    • 标准输出/错误:$DOMAIN_HOME/logs/stdout.logstderr.log(如使用 nohup 或后台启动脚本)
  • 快速定位
    • 确认域目录:执行 echo $DOMAIN_HOME
    • 进入日志目录:执行 cd $DOMAIN_HOME/logscd $DOMAIN_HOME/servers//logs
  • 日志类型与作用
    • 服务器日志:记录启动/关闭、运行信息与错误
    • 域日志:汇聚域内各服务器重要事件,便于统一查看
    • 访问日志:记录客户端请求与返回状态,用于访问审计与排错

二 查看与检索

  • 实时查看
    • 实时跟踪:tail -f $DOMAIN_HOME/servers/$SERVER_NAME/logs/$SERVER_NAME.log
    • 查看末尾 N 行:tail -n 200 $SERVER_NAME.log
  • 检索关键字
    • 过滤错误:grep -n “ERROR” $SERVER_NAME.log
    • 上下文查看:grep -C 10 “NullPointerException” $SERVER_NAME.log
  • 标准输出/错误
    • 跟踪启动输出:tail -f $DOMAIN_HOME/logs/stdout.log
  • 图形化工具
    • 使用系统日志查看器(如 gnome-system-log)浏览文本日志文件

三 轮转与清理

  • 推荐方式:使用 logrotate(Ubuntu 默认已集成)
    • 新建配置:sudo vim /etc/logrotate.d/weblogic
    • 示例配置(按天轮转、保留 7 天、压缩、自动创建):
      /u01/app/weblogic/domain_name/logs/*.log {
          daily
          rotate 7
          missingok
          notifempty
          compress
          create 0644 weblogic weblogic
          copytruncate
      }
      
      • 关键点:使用 copytruncate 可在不重启 WebLogic 的情况下轮转,避免应用句柄失效;如不使用 copytruncate,需配合应用支持的日志轮转信号或重启策略。
    • 测试与生效
      • 手动测试:sudo logrotate -d /etc/logrotate.d/weblogic(调试模式)
      • 强制执行:sudo logrotate -f /etc/logrotate.d/weblogic
      • 定时执行:logrotate 通常由 /etc/cron.daily/logrotate 每日自动调用,无需额外 crontab
  • 备选方式:脚本轮转与清理(适用于无 logrotate 或特殊需求)
    • 每日归档并清空当前日志(不中断服务):
      0 0 * * * cp /path/to/file.log /bak/file.$(date -d yesterday +\%Y\%m\%d).log; cat /dev/null > /path/to/file.log
      
    • 每周打包并删除 91 天前旧日志:
      0 1 * * 0 cd /bak; find . -mtime +90 -exec tar czf logs_$(date +\%Y\%U).tar {} \; ; find . -mtime +91 -delete
      
    • 安全清空运行中日志:优先使用 : > file.logcat /dev/null > file.log,避免直接删除导致句柄占用

四 日志级别与诊断

  • 调整日志级别
    • 编辑:$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 = FINE
      
    • 调整后重启受影响的服务器实例以生效(或按控制台热更新能力执行动态更新)
  • 日志格式要点
    • 服务器日志常见前缀格式:####<时间戳> <严重级别> <子系统> … <消息ID> <消息文本>
    • 标准输出/错误不含 #### 前缀,更适合简单输出观察

五 集中监控与告警

  • 集中化方案
    • 使用 ELK Stack(Elasticsearch + Logstash + Kibana)Splunk 收集与分析 WebLogic 日志
    • Logstash 示例(按实际路径与格式调整 grok 模式):
      input {
        file {
          path => "/u01/app/weblogic/domain_name/logs/*.log"
          start_position => "beginning"
          sincedb_path => "/var/lib/logstash/sincedb_weblogic"
        }
      }
      filter {
        grok {
          match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{JAVACLASS:class} - %{GREEDYDATA:message}" }
        }
      }
      output {
        elasticsearch {
          hosts => ["localhost:9200"]
          index => "weblogic-%{+YYYY.MM.dd}"
        }
      }
      
  • 告警建议
    • 在 Kibana 或 Splunk 中配置阈值与订阅告警(如 ERROR 高频、HTTP 5xx 突增、磁盘空间告警等)

0