温馨提示×

WebLogic在Debian上的日志管理方法是什么

小樊
39
2025-12-09 05:19:04
栏目: 智能运维

WebLogic在Debian上的日志管理方法

一 日志位置与常用查看

  • 日志默认位于域目录的 $DOMAIN_HOME/servers//logs/,常见文件包括:server.log(服务器日志)、access.log(HTTP访问日志)、diagnostic.log(诊断日志)。实际路径以你的 $DOMAIN_HOME 为准。
  • 常用查看与检索命令:
    • 实时查看:tail -f $DOMAIN_HOME/servers//logs/server.log
    • 关键字过滤:grep -i “ERROR” $DOMAIN_HOME/servers//logs/server.log
    • 分页查看:less $DOMAIN_HOME/servers//logs/server.log
    • 若通过系统服务启动,可用 journalctl 查看服务输出:journalctl -u weblogic(服务单元名以实际为准)。

二 WebLogic内置日志轮转

  • 运行模式差异:
    • 开发模式:启动时即轮转,默认单个日志达到 500 KB 触发轮转,命名如 SERVER_NAME.log00001
    • 生产模式:默认单个日志达到 5000 KB 触发轮转,启动时不会轮转。
  • 可配置项:
    • 按大小或按时间轮转(Rotation Type:By Size/By Time),可设置“Files to Retain”(保留文件数)。
    • 文件命名可加入时间格式占位符(如:myserver_%yyyy%%MM%%dd%%hh%%mm%.log)。
    • 存在强制轮转阈值:当日志文件接近 2,097,152 KB 时将强制执行硬轮转,防止过度增长。
  • 配置路径(控制台):Environment > Servers > > Logging > General

三 操作系统层 logrotate 管理

  • 作用与位置:用 logrotate 对 WebLogic 日志做按日/按周压缩归档、清理过期文件,配置文件放在 /etc/logrotate.d/weblogic
  • 示例配置(按域名目录举例,请替换为你的实际路径):
    • 创建文件:sudo vim /etc/logrotate.d/weblogic
    • 内容示例:
      /u01/app/weblogic/domain_name/logs/*.log {
          daily
          missingok
          rotate 7
          compress
          delaycompress
          notifempty
          create 640 weblogic weblogic
          copytruncate
      }
      
      • 说明:
        • daily/rotate 7/compress:按天轮转、保留 7 天、压缩旧日志。
        • copytruncate:复制后截断原文件,避免应用持有文件句柄导致轮转失败(适用于无法发送信号给 WebLogic 的场景)。
        • 如以 systemd 管理且能发送信号,可改用 postrotate 发送 USR1 触发应用级轮转(需确认应用支持)。
  • 测试与执行:
    • 调试:sudo logrotate -d /etc/logrotate.d/weblogic(干跑)
    • 强制执行:sudo logrotate -f /etc/logrotate.d/weblogic
  • 提示:Debian 上的 logrotate 通常由系统定时任务自动调用,无需额外添加 cron;仅在调试或特殊需求时手动执行。

四 集中监控与告警

  • 方案示例:搭建 ELK Stack(Elasticsearch + Logstash + Kibana) 集中采集、解析与可视化 WebLogic 日志。
  • Logstash 采集示例(按域名目录举例):
    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}"
      }
    }
    
  • 启动与访问:sudo systemctl start logstash;Kibana 访问 http://<server_ip>:5601 进行索引与可视化配置。

五 日常维护与故障排查要点

  • 快速定位:
    • 实时跟踪:tail -f $DOMAIN_HOME/servers//logs/server.log
    • 错误检索:grep -i “ERROR|Exception” $DOMAIN_HOME/servers//logs/server.log
    • 系统层面:tail -f /var/log/syslog;服务状态:systemctl status weblogic
  • 容量预警:可用 cron 定期检查日志大小,例如每天检查是否超过 1GB 并告警:
    • 0 0 * * * du -sh /u01/app/weblogic/domain_name/logs/*.log | awk ‘{if($1 ~ /G$/ && ${1%G} > 1) print “Large log:”, $0}’
  • 变更生效:调整 Logging 配置后需在控制台激活变更(Lock & Edit → 保存 → Activate Changes),必要时重启对应 Server

0