温馨提示×

如何确保Debian上WebLogic的持续运行

小樊
39
2025-12-13 04:59:22
栏目: 智能运维

在 Debian 上保障 WebLogic 持续运行的实践方案

一 架构与前提

  • 采用 WebLogic 集群 提供可扩展性与高可用:集群内多个 受管服务器 共同对外服务,出现节点故障时,其他节点可继续处理请求;集群对外呈现为单一服务。一个 域(Domain) 仅有一个 管理服务器(AdminServer),集群不能跨域,且集群内所有服务器必须位于同一域并运行相同版本的 WebLogic。为获得负载均衡与故障转移能力,需按集群规范进行配置与部署。
  • 前置检查清单:
    • 操作系统与资源:确认 Debian 版本与补丁满足要求,分配充足的 CPU/内存/磁盘;规划好 域目录日志目录 的磁盘空间与权限。
    • Java 环境:安装受支持的 JDK(如 Java 8/11),正确设置 JAVA_HOME 与 PATH,建议使用 非 root 用户运行 WebLogic。
    • 网络与端口:开放 7001(AdminServer)、受管服务器端口、节点管理器端口及管理通道端口;确保节点间 互通NTP 时间同步

二 进程守护与自动拉起

  • 使用 systemd 托管 AdminServer 与受管服务器,确保崩溃或系统重启后自动拉起,并具备日志轮转与依赖管理。
  • 示例单元文件(/etc/systemd/system/wls-admin.service):
    [Unit]
    Description=WebLogic AdminServer
    After=network.target
    
    [Service]
    Type=simple
    User=weblogic
    Group=weblogic
    WorkingDirectory=/opt/weblogic/user_projects/domains/base_domain
    ExecStart=/opt/weblogic/user_projects/domains/base_domain/bin/startWebLogic.sh
    ExecStop=/opt/weblogic/user_projects/domains/base_domain/bin/stopWebLogic.sh
    Restart=on-failure
    RestartSec=30
    StandardOutput=journal
    StandardError=journal
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
    
    • 受管服务器可按同样方式创建(如 wls-ms1.service),注意设置不同的监听端口与工作目录。
  • 启用与验证:
    • systemctl daemon-reload
    • systemctl enable --now wls-admin.service
    • systemctl status wls-admin.service
    • journalctl -u wls-admin.service -f
  • 建议将 Node Manager 也作为系统服务运行,便于远程启停受管服务器与自动恢复(Node Manager 需与管理服务器网络可达,并配置正确的监听地址与端口)。

三 集群、负载均衡与会话保持

  • AdminServer 控制台 或 WLST 中创建 集群(Cluster),将多个 受管服务器(Managed Server) 加入同一集群;集群内所有服务器必须在同一 ,且版本一致。
  • 对外入口建议使用 HAProxy/NginxOracle HTTP Server(OHS)+ WebLogic Proxy Plugin(mod_wl_ohs) 做负载均衡与健康检查;对应用启用 粘性会话(Sticky Session) 或配置 会话复制(如数据库/内存复制),避免用户会话在故障切换时丢失。
  • 前端负载均衡器健康检查示例(HAProxy):
    backend weblogic_cluster
      balance roundrobin
      option httpchk GET /console
      http-check expect status 200
      server ms1 10.0.1.11:7002 check inter 5s fall 3 rise 2
      server ms2 10.0.1.12:7002 check inter 5s fall 3 rise 2
    
  • 关键要点:
    • 集群对外提供 负载均衡与故障转移;会话状态在节点间可用,保障业务连续性。
    • 若使用 OHS,通过 mod_wl_ohs 连接 WebLogic 集群,由 OHS 负责连接转发与健康探测。

四 监控告警与日志管理

  • 指标与日志采集:
    • 使用 Prometheus 采集 JVM/线程池/请求耗时 等指标,配合 Grafana 可视化与阈值告警;应用与服务器日志统一接入 ELK(Elasticsearch/Logstash/Kibana) 或 rsyslog,便于检索与审计。
  • 健康检查与自恢复:
    • 在负载均衡器配置 主动健康检查(HTTP/管理通道),异常节点自动摘除;结合 systemd 的 Restart=on-failure 实现进程级自愈。
    • 对关键业务部署 主动探针(如每分钟请求健康检查接口),异常时联动告警并执行预设修复脚本(如重启受管服务器)。

五 备份恢复与安全维护

  • 备份策略:
    • 定期备份 域目录($DOMAIN_HOME)应用包数据源配置密钥库;将备份复制到 异地 存储,保留 多版本恢复演练记录
  • 恢复要点:
    • 按标准流程恢复 域与部署,校验 数据源连通性集群成员状态会话复制 是否正常;回滚策略与变更记录需纳入变更管理。
  • 安全与维护:
    • 仅开放必要端口,启用 防火墙(UFW/iptables);为管理通道与对外接口配置 SSL/TLS;定期应用 安全补丁JDK 更新,并在 维护窗口 执行。

0