温馨提示×

如何在Ubuntu上监控WebLogic的运行状态

小樊
40
2025-10-04 04:10:26
栏目: 智能运维

1. 通过WebLogic自带管理工具监控
WebLogic Server提供了图形化与管理命令行工具,可直接查看运行状态:

  • WebLogic Management Console(管理控制台):通过浏览器访问http://<WebLogic服务器IP>:7001/console(默认管理端口7001),使用管理员账号登录。导航至“Servers”→“MyServer”→“Monitoring”→“Performance”,可实时查看CPU、内存、线程池、JDBC连接池等性能指标;切换至“Health”标签页,可监控服务器健康状态(如“Running”“Warning”“Failed”)。
  • WLST(WebLogic Scripting Tool):使用Jython/Java脚本语言,通过命令行执行监控任务。例如,编写脚本连接WebLogic服务器,获取ServerRuntimeMBean的健康状态与子系统指标(如线程、JDBC连接),适用于自动化监控场景。示例脚本:
    connect('weblogic', 'welcome1', 't3://localhost:7001') serverRuntime = cmo.getServerRuntime() print("Server Health State:", serverRuntime.getHealthState()) subsystemHealth = serverRuntime.getSubsystemHealthStates() for subsystem in subsystemHealth: print(f"Subsystem: {subsystem.getName()}, Health: {subsystem.getHealthState()}") disconnect() ```。 

2. 使用JMX工具实时监控
WebLogic基于JMX(Java Management Extensions)暴露性能指标,可通过以下工具连接监控:

  • JVisualVM:Ubuntu下通过snap install visualvm安装,启动后添加远程JMX连接(输入WebLogic服务器IP、JMX端口,默认9000)。连接后,在“监控”标签页查看CPU、内存使用率;“线程”标签页查看线程状态与CPU占用;“MBeans”标签页可深入监控WebLogic特定指标(如线程池的“ExecuteThreadTotalCPUUsage”、JDBC连接的“ActiveConnectionsCurrentCount”)。
  • JConsole:JDK自带工具(jconsole命令),操作流程与JVisualVM类似,支持实时查看JVM内存(堆内存、非堆内存)、线程、类加载等信息。

3. 日志分析与故障排查
WebLogic日志记录了服务器运行详情,是监控的重要补充:

  • 日志路径:位于$DOMAIN_HOME/logs目录($DOMAIN_HOME为域主目录,可通过echo $DOMAIN_HOME确认),主要日志文件为server.log(服务器运行日志)和access.log(HTTP访问日志)。
  • 查看日志:使用tail -f server.log动态查看最新日志;grep '关键字' server.log查找特定错误(如“Exception”“ERROR”);也可使用vinano编辑器打开日志文件详细分析。

4. 第三方监控工具集成
对于企业级需求,可使用第三方工具实现自动化、可视化监控:

  • Prometheus + Grafana:通过weblogic_exporter(WebLogic专用导出器)采集性能指标(如JVM堆使用率、线程数、请求响应时间),推送至Prometheus存储。再通过Grafana创建可视化面板,展示WebLogic运行状态,支持告警规则配置(如CPU使用率超过80%触发邮件告警)。
  • Zabbix:企业级开源监控系统,支持监控WebLogic服务器的CPU、内存、磁盘、网络状态,以及WebLogic特定的服务可用性(如服务器是否启动)。通过Zabbix的WebLogic监控模板,可实现阈值告警与自动修复。
  • Application Manager:Oracle提供的商业监控工具,支持监控WebLogic的关键指标(如会话数、JMS连接数、事务处理时间),提供故障管理、性能分析功能,适用于复杂环境。

5. 自定义脚本监控
编写Shell/Bash脚本,结合WebLogic命令行工具(如status.sh)监控服务器状态:

  • 示例脚本(保存为check_weblogic.sh):
    #!/bin/bash DOMAIN_PATH=/Oracle/Middleware/user_projects/domains/base_domain SERVER_NAME=AServer ADMIN_URL="t3://localhost:7001" # 检查WebLogic进程是否存在 if pgrep -f "java.*${SERVER_NAME}" > /dev/null; then echo "WebLogic Server ${SERVER_NAME} is running." else echo "WebLogic Server ${SERVER_NAME} is not running!" # 可在此处添加重启逻辑(需谨慎) # $DOMAIN_PATH/bin/startWebLogic.sh & fi 
    赋予执行权限(chmod +x check_weblogic.sh),通过cron定时任务(如每5分钟执行一次)定期检查,确保服务器正常运行。

0