1. 使用WebLogic自带管理工具
WebLogic自带的管理控制台和脚本工具是最基础的监控方式,无需额外安装软件。
http://<weblogic-server>:7001/console,使用管理员账户登录。导航至“Monitoring”部分,选择目标服务器(如“myServer”),即可查看JVM堆使用率、线程池活跃线程数、连接池等待队列长度、响应时间等核心指标。若需设置报警,可在“Alerts”选项卡中创建规则(如“当活跃线程数超过100时触发邮件通知”)。ServerRuntimeMBean的健康状态(getHealthState())和线程池指标(getExecuteThreadsCurrentThreadsHighThreshold()),并将结果写入日志或发送告警。示例脚本:connect('weblogic', 'welcome1', 't3://localhost:7001')
serverRuntime = cmo.getServerRuntime()
print("Health State:", serverRuntime.getHealthState())
print("Active Threads:", serverRuntime.getExecuteThreadsCurrentThreads())
disconnect()
2. 基于JMX的监控
JMX是Java应用的标准监控接口,WebLogic通过JMX暴露了大量性能指标,可通过以下方式利用:
setDomainEnv.sh中启用JMX(添加-Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false),然后启动JConsole,选择“远程”选项卡,输入WebLogic服务器IP和JMX端口(如localhost:9000)即可查看内存、线程、类加载等指标。weblogic-monitoring-exporter jar包,配置config.yml文件(指定WebLogic服务器地址和端口),启动exporter(java -jar weblogic-monitoring-exporter.jar config.yml)。Prometheus可通过http://<exporter-server>:9001/metrics抓取指标。3. 第三方监控工具集成
第三方工具提供更强大的可视化、报警和历史数据分析功能,适合生产环境:
sudo apt install prometheus),编辑prometheus.yml配置文件,添加WebLogic exporter任务(scrape_configs中指定exporter地址);sudo apt install grafana),添加Prometheus作为数据源,导入WebLogic监控面板(如社区提供的“WebLogic Server Monitoring”面板),即可查看JVM内存趋势、线程池使用率、请求响应时间等可视化图表,并设置报警规则(如“当JVM堆使用率超过80%时发送Slack通知”)。apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent),配置Zabbix代理连接到服务器,添加WebLogic监控模板(可通过Zabbix前端手动添加或使用自动发现功能),监控进程状态、CPU使用率、磁盘I/O、WebLogic服务可用性等指标,并设置触发器(如“当进程停止时触发邮件告警”)。4. 日志分析与自定义脚本
server.log(位于DOMAIN_HOME/servers/<server-name>/logs/)和access.log,通过grep、awk等命令提取错误信息(如“ERROR”、“Exception”)或性能相关日志(如请求处理时间),判断服务器运行状态。例如:grep "ERROR" /path/to/server.log | tail -n 50 # 查看最近50条错误日志
#!/bin/bash
if ps -ef | grep "weblogic.Server" | grep -v grep; then
echo "WebLogic is running."
else
echo "WebLogic is down!" | mail -s "WebLogic Alert" admin@example.com
fi
或Python脚本通过WLST获取JVM内存使用率并发送告警(需安装weblogic-management库)。