在Ubuntu系统上监控WebLogic服务器状态,可通过自带工具、脚本、第三方监控方案三类方式实现,覆盖从基础到高级的监控需求。以下是具体方法及步骤:
WebLogic Server的管理控制台是官方提供的可视化监控工具,可直接查看服务器运行状态、性能指标及配置信息。
操作步骤:
ps -ef | grep java确认进程存在);http://<WebLogic服务器IP>:7001/console(默认端口7001,若修改过需替换);weblogic)登录;AdminServer)或MBean(如ServerRuntime、ThreadPoolRuntime),即可查看状态(State)、健康状况(Health)、线程池活跃线程数、JDBC连接池使用率**等指标。JMX(Java Management Extensions)是Java平台的标准化监控接口,可获取WebLogic的详细性能数据,适合集成到自动化监控系统中。
配置步骤:
<DOMAIN_HOME>/bin/setDomainEnv.sh,在JAVA_OPTIONS中添加JMX远程访问参数(生产环境建议开启认证和SSL):JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote.port=9000
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false"
./stopWebLogic.sh && ./startWebLogic.sh);jconsole(JDK自带工具);<WebLogic服务器IP>:9000,点击“连接”;weblogic.management.runtime节点,查看ServerRuntime、ThreadPoolRuntime等MBean的属性(如State、OpenSocketsCurrentCount)。通过Shell脚本定期检查WebLogic进程状态、端口监听情况及关键指标(如打开套接字数),并将结果输出到日志或发送报警。
示例脚本(监控进程及套接字数):
#!/bin/bash
# 配置参数
DOMAIN_NAME="base_domain"
SERVER_NAME="AdminServer"
ADMIN_URL="t3://localhost:7001"
WEBLOGIC_USER="weblogic"
WEBLOGIC_PASSWORD="your_password"
SOCKET_MAX=200 # 最大允许的打开套接字数
# 检查进程是否存在
if ! pgrep -f "weblogic.Server" > /dev/null; then
echo "$(date): WebLogic进程未运行!" >> /var/log/weblogic_monitor.log
exit 1
fi
# 获取WebLogic状态(需替换为实际的JMX调用或命令)
STATE=$(java weblogic.Admin -url $ADMIN_URL -username $WEBLOGIC_USER -password $WEBLOGIC_PASSWORD get -pretty -mbean "$DOMAIN_NAME:Location=$SERVER_NAME,Name=$SERVER_NAME,Type=ServerRuntime" | grep "State" | awk '{print $2}')
if [ "$STATE" != "RUNNING" ]; then
echo "$(date): WebLogic状态异常($STATE)!" >> /var/log/weblogic_monitor.log
exit 1
fi
# 获取打开套接字数
SOCKET_COUNT=$(java weblogic.Admin -url $ADMIN_URL -username $WEBLOGIC_USER -password $WEBLOGIC_PASSWORD get -pretty -mbean "$DOMAIN_NAME:Location=$SERVER_NAME,Name=$SERVER_NAME,Type=ServerRuntime" | grep "OpenSocketsCurrentCount" | awk '{print $2}')
if [ -z "$SOCKET_COUNT" ]; then
echo "$(date): 无法获取打开套接字数!" >> /var/log/weblogic_monitor.log
exit 1
elif [ "$SOCKET_COUNT" -gt "$SOCKET_MAX" ]; then
echo "$(date): 打开套接字数超过阈值($SOCKET_COUNT > $SOCKET_MAX)!" >> /var/log/weblogic_monitor.log
# 此处可添加报警逻辑(如发送邮件)
fi
echo "$(date): WebLogic状态正常($STATE),打开套接字数:$SOCKET_COUNT" >> /var/log/weblogic_monitor.log
设置定时任务:
通过crontab -e添加以下行,每5分钟运行一次脚本:
*/5 * * * * /path/to/weblogic_monitor.sh
第三方工具可实现自动化监控、报警、可视化,适合企业级环境,常见工具包括:
setDomainEnv.sh添加JMX Exporter参数);targets为JMX Exporter端口);check_weblogic插件;commands.cfg;services.cfg中配置监控服务(如“WebLogic AdminServer状态”),设置报警阈值。以上方法可根据实际需求选择:若需快速查看状态,使用自带管理控制台;若需集成到自动化系统,选择JMX或第三方工具;若需定制化监控,编写Shell脚本是最灵活的方式。