首页主机资讯如何在Linux上监控WebLogic

如何在Linux上监控WebLogic

时间2025-12-08 23:58:03发布访客分类主机资讯浏览1323
导读:Linux上监控WebLogic的实用方案 一 监控总览与关键指标 建议从四个层面建立监控: 操作系统层:CPU、内存、I/O、网络、文件句柄; JVM层:堆与非堆内存、GC次数/时间、类加载、线程数; WebLogic运行时:Serv...

Linux上监控WebLogic的实用方案

一 监控总览与关键指标

  • 建议从四个层面建立监控:
    1. 操作系统层:CPU、内存、I/O、网络、文件句柄;
    2. JVM层:堆与非堆内存、GC次数/时间、类加载、线程数;
    3. WebLogic运行时:ServerRuntime 的 StateHealthStateOpenSocketsCurrentCountExecuteThreadIdleCountExecuteThreadTotalCountQueueLength
    4. 应用与数据源:JDBC连接池使用率、慢查询、Servlet/JSF会话、EJB/线程泄漏迹象。
  • 在控制台查看路径:Servers -> -> Monitoring -> Performance,重点关注:IdleThreads(空闲线程,不应长期为0)、QueueLength(等待队列,长时间高位需警惕)、内存与GC趋势。

二 快速方法 控制台与日志

  • 管理控制台:通过浏览器访问 http://:7001/console,登录后在 Servers -> -> Monitoring -> Performance 观察健康与线程队列、内存、JVM等信息。
  • 实时日志:在域目录查看实例日志,例如
    tail -f $DOMAIN_HOME/servers//logs/.out
    用于快速定位启动失败、OutOfMemoryError、Stuck Thread 等。

三 命令行与脚本 WLST 与 Shell

  • WLST 示例(Python/Jython 脚本,连接 t3://localhost:7001 并输出健康状态):
    connect('weblogic','welcome1','t3://localhost:7001')
    serverRuntime = cmo.getServerRuntime()
    print("HealthState:", serverRuntime.getHealthState())
    disconnect()
    
    可将 WLST 与定时任务结合,采集 ServerRuntime 指标并输出为 JSON/文本,供外部系统采集。
  • Shell 脚本示例(通过 weblogic.Admin 查询 MBean,判断 RUNNING/HEALTH_OKOpenSocketsCurrentCount):
    #!/usr/bin/env bash
    export CLASSPATH="/opt/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar:$CLASSPATH"
    URL="192.168.222.11:7020"
    USER="weblogic"
    PASS="$WEBLOGIC_PASSWORD"   # 推荐用环境变量,避免明文
    DOMAIN="MedRecDomain"
    SERVER="MedRecAdmSvr"
    
    STATE_ALL=$(java weblogic.Admin -url $URL -username $USER -password $PASS \
                get -pretty -mbean "$DOMAIN:Location=$SERVER,Name=$SERVER,Type=ServerRuntime")
    
    echo "$STATE_ALL" | grep -q "State: RUNNING"      || echo "NOT_RUNNING"
    echo "$STATE_ALL" | grep -q "State: HEALTH_OK"    || echo "NOT_HEALTHY"
    echo "$STATE_ALL" | awk '/OpenSocketsCurrentCount/{
    print "OpenSockets="$2}
    '
    
    建议将脚本输出写入日志文件,由 Zabbix 等监控系统解析告警(如检测日志中是否出现 NO)。

四 JMX 远程监控 JConsole 与 VisualVM

  • $Domain_HOME/bin/setDomainEnv.sh 中启用 JMX(示例开放 9000 端口,生产环境请开启认证与 SSL):
    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"
    
  • 启动本地 jconsole,选择“远程”,输入 < 服务器IP> :9000 连接;可用 VisualVM 或 VisualVM 插件进行更细的线程、内存与 MBean 分析。
  • 安全建议:生产环境务必启用 鉴权SSL,并限制来源 IP 与端口访问。

五 企业级监控与告警集成

  • Zabbix:用 Shell/Python 脚本采集 State/Health/线程/套接字 等,写入日志或 Zabbix Agent 可采集项;示例触发器:
    last(/2.1.1.13/vfs.file.regmatch[/Check_WebLogic.log,NO])=1
  • Prometheus:部署 weblogic-monitoring-exporter 暴露指标,Prometheus 抓取并配合 Grafana 可视化;
  • 其他 APM/运维平台:如 Applications ManagerNagiosHertzBeat 等,可结合脚本或 JMX 插件统一监控与告警。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Linux上监控WebLogic
本文地址: https://pptw.com/jishu/766508.html
ubuntu下golang打包的依赖管理 Linux下WebLogic内存配置技巧

游客 回复需填写必要信息