温馨提示×

centos中weblogic的日志管理技巧

小樊
42
2025-10-05 06:56:52
栏目: 智能运维

CentOS中WebLogic日志管理技巧

1. 日志文件定位

WebLogic的日志文件默认存储在域根目录的servers/SERVER_NAME/logs子目录下(DOMAIN_HOME为域根目录,SERVER_NAME为服务器实例名称),主要包含以下类型:

  • server.log:服务器运行日志(记录启动/关闭、错误、警告等信息);
  • access.log:HTTP/HTTPS访问日志(记录客户端请求详情);
  • domain.log:域级别日志(记录域内所有服务器的运行状态)。
    通过上述路径可快速定位所需日志文件。

2. 日志级别配置

日志级别决定了日志的详细程度(从低到高:TRACEDEBUGINFOWARNINGERRORSEVERECRITICAL)。可通过以下两种方式调整:

  • 图形界面:登录WebLogic控制台→展开“环境”→选择“服务器”→点击目标服务器→“日志”→“通用”,修改“日志级别”下拉菜单并保存;
  • 配置文件:直接编辑DOMAIN_HOME/config/fmwconfig/servers/SERVER_NAME/logging.xml文件,调整<log-level>标签的值(如<log-level>INFO</log-level>)。

3. 日志轮转设置

日志轮转可防止日志文件过大占用磁盘空间,支持按大小按时间触发,且可限制保留文件数量。

  • 通过WebLogic控制台配置
    登录控制台→展开“环境”→选择“服务器”→点击目标服务器→“日志”→“通用”,设置:
    • “旋转类型”:选择“按大小”(By Size)或“按时间”(By Time);
    • “旋转文件大小”(按大小时):如5000KB(生产模式默认值);
    • “开始旋转时间”(按时间时):如00:00(每天凌晨);
    • “旋转间隔”(按时间时):如24小时;
    • “限制保留文件数”:勾选并设置数量(如7,保留最近7个日志文件);
    • “文件名”:可添加时间戳(如myserver_%yyyy%_%MM%_%dd%.log),便于归档。
  • 通过logrotate工具配置(系统级轮转):
    安装logrotate(yum install logrotate),在/etc/logrotate.d/下创建weblogic配置文件,内容示例如下:
    /path/to/weblogic/domain/logs/*.log { daily # 每天轮转 rotate 7 # 保留7个旧日志 compress # 压缩旧日志(gzip) missingok # 日志不存在时不报错 notifempty # 日志为空时不轮转 create 640 root adm # 新日志权限及属主 sharedscripts # 所有日志处理完后执行脚本 postrotate /usr/bin/killall -HUP weblogic.Server # 发送HUP信号让WebLogic重新打开日志文件 endscript } 
    测试配置是否正确:sudo logrotate -f /etc/logrotate.d/weblogic

4. 日志查看与过滤

常用命令快速查看和分析日志:

  • 实时查看tail -f /path/to/weblogic/logs/server.log(动态显示最新日志);
  • 查看最后N行tail -n 100 /path/to/weblogic/logs/server.log(显示最后100行);
  • 过滤关键字grep "ERROR" /path/to/weblogic/logs/server.log(查找包含“ERROR”的行);
  • 分页查看less /path/to/weblogic/logs/server.log(按上下键滚动,q退出);
  • 系统日志关联:若WebLogic通过systemd管理,可使用journalctl -u weblogic查看服务日志。

5. 日志清理策略

定期清理旧日志可释放磁盘空间,常见方法:

  • 通过WebLogic控制台:登录控制台→展开“诊断”→选择“日志”→“日志文件”,选中目标日志→点击“编辑”,设置“最大日志文件大小”(如100MB)、“最大日志文件数量”(如10)、“日志保留时间”(如30天),启用“自动删除旧日志”;
  • 通过WLST脚本(自动化清理):
    连接到WebLogic服务器,执行以下脚本(示例:设置日志大小为10MB,保留5个文件):
    connect('weblogic', 'password', 't3://localhost:7001') edit() startEdit() cd('/Servers/AdminServer/Logging/AdminServer') cmo.setMaxFileSize(10000000) # 10MB cmo.setMaxBackupIndex(5) # 保留5个文件 save() activate() disconnect() 
  • 通过cron定时任务:编辑cron(crontab -e),添加每日凌晨1点清理7天前日志的任务:
    0 1 * * * find /path/to/weblogic/logs -type f -name "*.log" -mtime +7 -exec rm -f {} \; ```。 

6. 日志集中管理

对于分布式环境或多台服务器,建议将日志集中收集到远程服务器进行分析,常用工具:

  • ELK Stack(Elasticsearch+Logstash+Kibana)
    • Logstash作为日志收集器,通过file插件读取WebLogic日志;
    • Elasticsearch存储和索引日志;
    • Kibana提供可视化界面(如日志趋势、错误统计、关键字搜索);
  • rsyslog/syslog-ng
    配置WebLogic将日志发送到远程rsyslog服务器(修改logging.xml中的<log-handler>,设置remote属性),实现日志集中存储。

7. 日志安全配置

保护日志不被篡改或泄露,提升安全性:

  • 限制敏感信息:通过WebLogic控制台→“诊断”→“日志”→“日志文件”,禁用“发送服务器标头”“发送版本信息”等选项;
  • 审计日志:使用auditd工具监控WebLogic日志文件的访问(如/var/log/audit/audit.log),记录谁、何时访问了日志文件;
  • 权限控制:确保日志文件属主为rootweblogic用户,权限设置为640(如chown root:adm /path/to/weblogic/logs/*.log; chmod 640 /path/to/weblogic/logs/*.log)。

0