使用ps或top命令查看WebLogic相关进程是否存在,是最基础的运行状态检查方式。
ps -ef | grep weblogic:列出所有包含“weblogic”的进程,若输出中包含WebLogic主进程(如weblogic.Server),则说明服务正在运行;若无输出,则可能未启动或已崩溃。top/htop:实时查看系统进程的资源占用情况(CPU、内存),可筛选“weblogic”进程,确认其资源使用是否异常(如CPU占用100%、内存泄漏)。WebLogic的日志文件记录了详细的运行信息(启动/停止状态、错误堆栈、访问请求),是排查问题的关键依据。
$DOMAIN_HOME/logs目录($DOMAIN_HOME为WebLogic域的根目录,可通过echo $DOMAIN_HOME命令确认),主要日志文件包括:
server.log:记录服务器运行日志(如部署应用、启动组件);access.log:记录HTTP访问请求(如URL、响应状态码、响应时间)。tail -f $DOMAIN_HOME/logs/server.log:动态实时查看server.log的最新内容(适用于监控实时运行状态);grep 'ERROR' $DOMAIN_HOME/logs/server.log:筛选日志中的错误信息(快速定位故障原因)。WebLogic管理控制台是官方提供的图形化管理工具,可直观监控服务器的健康状态、性能指标、配置信息。
http://<WebLogic服务器IP>:<管理端口>/console(默认管理端口为7001,若修改过需替换为实际端口),输入管理员账号(如weblogic)和密码登录。AdminServer),查看“状态”是否为“运行中”(Running);编写Shell脚本,利用WebLogic的weblogic.Admin命令获取运行状态(如运行状态、健康状态、打开套接字数),并将结果输出到日志文件,便于后续分析。
Check_WebLogic.sh):#!/bin/bash
# 设置环境变量(需根据实际路径调整)
JAVA_HOME=/usr/java/jdk1.8.0_291
CLASSPATH=$JAVA_HOME/lib/tools.jar:$WEBLOGIC_HOME/server/lib/weblogic.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
# WebLogic连接信息
URL="t3://localhost:7001" # 替换为实际IP和端口
USER="weblogic" # 替换为实际管理员账号
PASSWORD="your_password" # 替换为实际密码(建议使用环境变量存储)
DOMAIN_NAME="mydomain" # 替换为实际域名
SERVER_NAME="AdminServer" # 替换为目标服务器名称
# 获取运行状态
STATE_ALL=$(java weblogic.Admin -url $URL -username $USER -password $PASSWORD get -pretty -mbean "$DOMAIN_NAME:Location=$SERVER_NAME,Name=$SERVER_NAME,Type=ServerRuntime")
RUNNING_STATUS=$(echo "$STATE_ALL" | grep -q "State: RUNNING"; echo $?)
HEALTH_STATUS=$(echo "$STATE_ALL" | grep -q "State: HEALTH_OK"; echo $?)
SOCKET_COUNT=$(echo "$STATE_ALL" | awk '/OpenSocketsCurrentCount/{print $2}')
# 判断状态并输出结果
if [ $RUNNING_STATUS -eq 0 ]; then
echo "$(date): WebLogic is RUNNING" >> /var/log/weblogic_check.log
else
echo "$(date): WebLogic is NOT RUNNING" >> /var/log/weblogic_check.log
fi
if [ $HEALTH_STATUS -eq 0 ]; then
echo "$(date): WebLogic health is OK" >> /var/log/weblogic_check.log
else
echo "$(date): WebLogic health is NOT OK" >> /var/log/weblogic_check.log
fi
if [ -n "$SOCKET_COUNT" ]; then
echo "$(date): Open sockets count: $SOCKET_COUNT" >> /var/log/weblogic_check.log
else
echo "$(date): Failed to get open sockets count" >> /var/log/weblogic_check.log
fi
crontab -e添加定时任务(如每小时检查一次):0 * * * * /bin/bash /home/weblogic/Check_WebLogic.sh
/var/log/weblogic_check.log)有读取权限(chown zabbix:zabbix /var/log/weblogic_check.log,若使用Zabbix监控)。第三方工具可实现自动化监控、告警、可视化,适用于生产环境的大规模监控需求。
Template App WebLogic),监控服务器状态、JVM内存、线程池、数据库连接池等指标;weblogic-exporter(WebLogic JMX导出器)采集WebLogic的性能指标(如CPU、内存、线程数);weblogic-exporter的指标数据(如http://<Ubuntu_IP>:9000/metrics);plugins目录;commands.cfg(如check_weblogic_process命令),添加服务监控(如“WebLogic进程是否存在”);以上方法覆盖了从基础到高级的WebLogic运行状态监控需求,可根据实际场景选择合适的方式(如小型环境可使用脚本+日志,大型环境建议使用Zabbix/Prometheus等第三方工具)。