温馨提示×

centos系统weblogic日志管理策略

小樊
50
2025-09-28 19:59:48
栏目: 智能运维

一、WebLogic日志位置
在CentOS系统中,WebLogic日志文件的默认路径基于域(Domain)结构,主要分为以下几类:

  • 服务器日志:记录单个服务器实例的启动、关闭及运行时错误,路径为DOMAIN_HOME/servers/SERVER_NAME/logs/SERVER_NAME.log(如/user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.log);
  • 访问日志:记录HTTP/HTTPS请求的详细信息(如URL、客户端IP、响应状态),路径为DOMAIN_HOME/servers/SERVER_NAME/logs/access.log
  • 域日志:记录整个域的全局事件(如服务器启动/停止、集群状态变更),路径为DOMAIN_HOME/servers/SERVER_NAME/logs/domain.log
  • 标准输出/错误日志:若通过setDomainEnv.sh配置,会重定向到DOMAIN_HOME/servers/SERVER_NAME/logs/stdout.logstderr.log

二、日志轮转配置
日志轮转是防止日志文件无限增长的关键策略,CentOS下可通过WebLogic内置设置logrotate工具实现:

1. WebLogic内置日志轮转(推荐优先配置)

通过WebLogic管理控制台或直接修改配置文件,可设置基于文件大小时间间隔的轮转规则:

  • 操作步骤(控制台)
    登录WebLogic控制台→展开“环境”→选择“服务器”→点击目标服务器(如AdminServer)→进入“日志”→“常规”标签→配置以下参数:
    • 轮转类型:选择“按大小”(By Size)或“按时间”(By Time);
    • 触发条件:若选“按大小”,设置“轮转文件大小”(如50MB,对应Rotation File Size);若选“按时间”,设置“开始轮转时间”(如00:00,对应Begin Rotation Time)和“轮转间隔”(如每天,对应Rotation Interval);
    • 保留数量:勾选“限制保留文件数”(Limit Number of Retained Files),设置最大保留数量(如7个,对应Files to Retain);
    • 文件命名:可在“文件名”字段添加时间戳(如myserver_%yyyy%_%MM%_%dd%.log),便于归档管理。
  • 操作步骤(配置文件)
    直接修改DOMAIN_HOME/config/config.xml中对应服务器的<log>标签,例如:
    <log>
      <rotation-type>bySize</rotation-type>
      <file-count>7</file-count>
      <file-size>50000</file-size> <!-- 单位:KB -->
      <name>myserver.log</name>
      <directory>${DOMAIN_HOME}/servers/AdminServer/logs</directory>
    </log>
    
    修改后需重启WebLogic使配置生效。

2. 使用logrotate工具(系统级轮转)

若需统一管理WebLogic与其他应用的日志,可使用CentOS自带的logrotate工具:

  • 安装logrotatesudo yum install logrotate -y(默认已安装);
  • 创建配置文件:在/etc/logrotate.d/下新建weblogic文件,内容示例如下:
    /user_projects/domains/base_domain/servers/AdminServer/logs/*.log {
      daily                # 每天轮转
      rotate 7             # 保留7个旧日志
      compress             # 压缩旧日志(gzip)
      missingok            # 日志不存在时不报错
      notifempty           # 日志为空时不轮转
      create 640 root adm  # 新日志权限与属主
      sharedscripts        # 所有日志处理完后执行脚本
      postrotate
        /bin/kill -HUP $(cat /user_projects/domains/base_domain/servers/AdminServer/tmp/AdminServer.pid 2>/dev/null) 2>/dev/null || true
      endscript
    }
    
    说明:postrotate脚本通过kill -HUP向WebLogic进程发送信号,使其重新打开日志文件;sharedscripts确保所有日志处理完成后再执行脚本,避免重复重启。

三、日志级别调整
合理设置日志级别可平衡日志详细度与存储开销,避免无关日志占用过多空间:

  • 配置方法
    • 控制台:登录WebLogic控制台→展开“域结构”→选择“环境”→“服务器”→点击目标服务器→进入“日志”→“日志文件”标签→修改“日志级别”(如INFOWARNINGERROR,生产环境建议设为WARNINGERROR);
    • 配置文件:修改DOMAIN_HOME/config/fmwconfig/servers/SERVER_NAME/logging/logging.xml,调整<logging-file-handler>level属性(如<level>WARNING</level>)。
  • 动态调整:无需重启服务器即可生效(部分级别可能需要重启),通过控制台修改后会自动同步到配置文件。

四、日志集中管理
为便于统一分析与存储,可将WebLogic日志发送至集中式日志管理系统

  • ELK Stack(Elasticsearch+Logstash+Kibana)
    • Logstash配置:编写logstash.conf,添加WebLogic日志输入插件(如file插件),指定日志路径(如/user_projects/domains/base_domain/servers/AdminServer/logs/*.log),并设置解析规则(如grok解析);
    • Elasticsearch存储:将解析后的日志存储到Elasticsearch集群,便于快速检索;
    • Kibana可视化:通过Kibana创建仪表板,展示日志趋势、错误统计等信息。
  • Splunk
    部署Splunk Agent(Universal Forwarder),配置inputs.conf收集WebLogic日志,发送至Splunk Server进行集中管理、搜索与告警。

五、日志安全与监控

  1. 访问控制
    通过Linux文件权限限制日志文件访问,例如:
    chown -R weblogic:adm /user_projects/domains/base_domain/servers/AdminServer/logs
    chmod -R 640 /user_projects/domains/base_domain/servers/AdminServer/logs/*.log
    
    仅允许weblogic用户和adm组读取日志,防止未授权访问。
  2. 完整性保护
    使用auditd监控日志文件的修改与删除操作,配置审计规则(如-w /user_projects/domains/base_domain/servers/AdminServer/logs/ -p wa -k weblogic_logs),记录所有对日志目录的写操作,便于追踪日志篡改行为。
  3. 实时监控
    通过tail -fless +F实时查看日志(如tail -f /user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.log),或结合grep过滤关键信息(如grep "ERROR" /path/to/log),快速定位异常。

六、日常维护技巧

  • 定期检查日志:通过tailgrep等命令定期查看日志,重点关注ERRORWARNING级别的日志,及时处理异常;
  • 清理旧日志:即使配置了轮转,也需定期清理超过保留期限的日志(如通过find命令:find /path/to/logs -name "*.log.*" -mtime +30 -exec rm -f {} \;);
  • 备份重要日志:将关键日志(如域日志、错误日志)备份至异地存储(如NFS、对象存储),防止数据丢失。

0