1. 使用WebLogic自带管理工具监控
WebLogic Server提供了内置的图形化与管理工具,适合快速查看基础状态:
http://<weblogic-server-ip>:7001/console,使用管理员账号登录。导航至“Servers”→“Your Server”→“Monitoring”→“Performance”,可实时查看CPU、内存、线程池(活跃线程数、等待队列长度)、JDBC连接池(活跃连接数、空闲连接数)等核心指标;若需设置报警,进入“Monitoring”→“Alerts”,点击“New”创建规则(如“活跃线程数>100时触发”),并配置通知方式(如电子邮件)。connect('weblogic', 'your-password', 't3://<weblogic-server-ip>:7001')
serverRuntime = cmo.getServerRuntime()
healthState = serverRuntime.getHealthState()
print("Server Health State:", healthState)
disconnect()
将脚本保存为check_health.py,通过wlst.sh check_health.py执行,可定期检查服务器健康状态并输出结果。2. 基于JMX的监控(灵活扩展)
JMX是Java应用的标准监控接口,WebLogic通过JMX暴露大量性能指标,可与第三方工具集成:
bin/setDomainEnv.sh文件,在JAVA_OPTIONS中添加以下配置(替换端口为实际值,如9000):JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote.port=9000"
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote.ssl=false"
重启WebLogic使配置生效。jconsole或visualvm工具,选择“远程”→“输入主机IP与JMX端口”(如<weblogic-server-ip>:9000),无需认证即可查看内存、线程、类加载等指标;也可使用weblogic-monitoring-exporter(Oracle提供的开源工具),将其部署为Web应用,通过REST API公开WebLogic指标,供Prometheus等工具采集。3. 第三方监控工具(专业全面)
第三方工具提供集中化监控、可视化及高级报警功能,适合生产环境:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz),解压后编辑prometheus.yml,添加WebLogic Exporter任务:scrape_configs:
- job_name: 'weblogic'
static_configs:
- targets: ['<weblogic-exporter-host>:9000'] # weblogic-exporter的地址与端口
启动Prometheus:./prometheus --config.file=prometheus.yml。sudo apt install grafana安装,启动后访问http://<debian-ip>:3000(默认账号admin/admin),添加Prometheus为数据源,导入WebLogic监控仪表盘(如ID为1860的官方仪表盘),即可查看CPU、内存、线程池等可视化图表;通过Grafana的“Alerting”功能设置报警(如“内存使用率>80%持续5分钟”),通知方式为邮件、Slack等。sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent),配置代理连接服务器,添加WebLogic主机,通过Zabbix的“WebLogic监控模板”(需手动导入)采集指标,设置报警规则(如“服务器宕机时触发短信通知”)。4. 脚本化监控(定制化需求)
通过Shell或Python脚本定期采集指标并发送报警,适合简单场景:
#!/bin/bash
JMX_URL="service:jmx:rmi:///jndi/rmi://<weblogic-server-ip>:9000/jmxrmi"
ACTIVE_THREADS=$(curl -s -u weblogic:your-password "http://<weblogic-server-ip>:7001/weblogic/management/weblogic/serverRuntime/threadPoolRuntime?link=threadPoolRuntime" | grep "ExecuteThreadTotalCPUUsage" | awk -F'>' '{print $2}' | awk -F'<' '{print $1}')
THRESHOLD=100
if [ "$ACTIVE_THREADS" -gt "$THRESHOLD" ]; then
echo "High active threads detected: $ACTIVE_THREADS" | mail -s "WebLogic Alert" your-email@example.com
fi
将脚本保存为monitor_threads.sh,通过chmod +x monitor_threads.sh赋予执行权限,添加到crontab(crontab -e)中设置每分钟执行一次:* * * * * /path/to/monitor_threads.sh。weblogic.management.scripting.WLST模块,编写Python脚本连接WebLogic,获取健康状态并写入日志,通过cron定期执行并分析日志发送报警。