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