centos系统中weblogic如何进行日志分析
导读:CentOS下WebLogic日志分析实操指南 一 日志类型与存放路径 服务器日志 server.log:记录启动/关闭、运行异常、部署与子系统事件等,路径通常为:$DOMAIN_HOME/servers//logs/.log。 域日志...
CentOS下WebLogic日志分析实操指南
一 日志类型与存放路径
- 服务器日志 server.log:记录启动/关闭、运行异常、部署与子系统事件等,路径通常为:$DOMAIN_HOME/servers//logs/.log。
- 域日志 domain.log:记录域内各受管服务器的重要事件,路径通常为:$DOMAIN_HOME/servers//logs/.log。
- HTTP访问日志 access.log:记录客户端请求行、状态码、字节数等,路径通常为:$DOMAIN_HOME/servers//logs/access.log。
- 说明:WebLogic 9.x 及以后版本采用上述目录结构;8.x 版本路径有所不同。以上路径与用途为官方与业界通用约定,可直接用于定位与排查。
二 快速定位与常用查看命令
- 定位域目录:先确认**$DOMAIN_HOME**(如:/u01/app/weblogic/user_projects/domains/base_domain)。
- 查看服务器日志尾部:
- tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
- less +F $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
- 关键字筛选与统计:
- grep -i “error|exception” $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log | tail -50
- grep “BEA-” $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log | awk ‘{ print $1,$2,$3,$5} ’ | sort | uniq -c | sort -nr
- 访问日志分析(Top 10 客户端IP):
- awk ‘{ ips[$1]++} END { for(i in ips) print ips[i],i} ’ $DOMAIN_HOME/servers/AdminServer/logs/access.log | sort -nr | head
- 按时间窗口检索(示例:2025-11-14 10点):
- sed -n ‘/2025-11-14 10:/,/2025-11-14 11:/p’ $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
- 控制台与WLST辅助:
- 控制台路径:环境 → 服务器 → 日志记录,可在线查看/下载日志,并调整日志级别与输出路径。
- WLST示例:connect(‘weblogic’,‘密码’,‘t3://localhost:7001’);cd(‘/Servers/AdminServer/Log/AdminServer’);ls() 查看日志相关MBean。
三 日志格式与关键字段解读
- 服务器/域日志典型格式(单行示例):
####< Mar 4, 2019 9:42:07 AM CST> < Warning> < RMI> < localhost.localdomain> < AdminServer> < [ACTIVE] ExecuteThread: ‘4’ for queue: ‘weblogic.kernel.Default (self-tuning)’> … < BEA-080003>
关键字段:时间戳、严重级别(Error/Warning/Notice/Info/Debug)、子系统、主机名、服务器名、线程、消息ID、消息体。 - HTTP访问日志典型格式(Common Log Format):
172.16.112.1 - - [04/Mar/2019:14:44:43 +0800] “GET /untitled_war/ HTTP/1.1” 200 98
关键字段:客户端IP、时间、请求行、状态码、响应字节数。 - 域日志特性:不保证严格按时间戳顺序写入,消息可能由受管服务器暂存后批量送达管理服务器,做跨服务器时序分析时需留意。
四 高效分析与排障流程
- 启动失败/异常退出:
- tail -n 200 server.log 观察SEVERE/ERROR与堆栈;
- 若端口占用,ss -tulpen | grep 7001;必要时 kill 旧进程后重启;
- 检查磁盘空间 df -h 与内存 free -m,避免因资源不足导致异常。
- 运行期错误定位:
- grep -n “ERROR|Exception” server.log 定位行号与上下文;
- 结合线程名(如 [ACTIVE] ExecuteThread)与模块(JMS/JDBC/EJB)缩小范围;
- 必要时临时提升日志级别至DEBUG(WLST/控制台),复现后回落,避免日志洪泛。
- HTTP 5xx/4xx 激增:
- 统计 access.log 中状态码分布:awk ‘{ s[$9]++} END { for(i in s) print i,s[i]} ’ access.log | sort -nr;
- 关联 server.log 同一时间窗的错误堆栈,定位后端故障(数据源、线程池、应用代码)。
- 安全事件排查:
- 检索可疑路径与命令注入特征:grep -Ei “../|.jsp|.sh|.cmd|.bat” access.log;
- 关注反序列化相关异常线索(如 RMI/IIOP 异常堆栈),结合 Domain/Server 日志与网络抓包进一步确认。
- 性能瓶颈初筛:
- 观察 server.log 中长时间执行/慢查询日志;
- 结合系统层面 top、free、iostat、netstat/ss 检查CPU/内存/IO/连接数。
五 日志轮转 集中化与审计
- 日志轮转与保留:
- 使用 logrotate 管理 server.log/access.log/domain.log,控制单文件大小与保留天数,示例配置:
/u01/app/weblogic/user_projects/domains/base_domain/servers//logs/.log {
daily; rotate 7; missingok; notifempty; compress; delaycompress;
postrotate
systemctl kill -s USR1 weblogic.service > /dev/null 2> & 1 || true
endscript
} - 在 WebLogic 控制台设置访问日志缓冲为 0可实现实时落盘,便于即时分析。
- 使用 logrotate 管理 server.log/access.log/domain.log,控制单文件大小与保留天数,示例配置:
- 集中化与可视化:
- 使用 rsyslog/syslog-ng 将日志转发至远程日志服务器;
- 部署 ELK Stack(Elasticsearch/Logstash/Kibana) 或 Splunk,对 server.log/access.log/domain.log 进行解析、索引、仪表盘与告警。
- 系统审计:
- 启用 auditd 记录关键文件与进程的访问与变更,与 WebLogic 日志进行交叉验证。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos系统中weblogic如何进行日志分析
本文地址: https://pptw.com/jishu/747727.html
