weblogic中间件软件上线标准化部署

上周介绍了《weblogic标准化部署大纲》,下面详细介绍我们在实际生产环境中如何进行weblogic中间件应用部署标准规范。


一、版本选型

1.1 基础版本

因原厂已经不提供Weblogic中间件10.3.5版本(包括)及之前版本的Premier Support,且10.3.5版本Extended Support将于2013年8月过期,为确保weblogic中间件的安全及稳定运行,所有新申请weblogic中间件软件版本必须安装10.3.6或12.2.1.2.0版本。

(a)、WLS 10.3.6是WLS 11g的Terminal Patch Set版本。 根据终身支持政策文件中规定的总支持期(2018年12月)和扩展支持期(2021年12月)的结束,将根据WLS Premier支持的客户支持合同提供错误更正或扩展支持。


(a)错误修正结束由随后的Patch Set释放来确定,以设置宽限期的开始。 没有随后的Patch Set版本,此版本根据终身支持策略文档的Premier和Extended支持日期具有错误更正支持。

1.2 补丁版本

  为了确保Weblogic版本性能稳定,必须将weblogic对应版本PSU补丁升级到一个月内的版本,就是为了屏蔽当前版本存在BUG隐患。

  1.    Weblogic10.3.6.0最新PSU补丁:


  2.  Weblogic 12.2.1.2.0 最新PSU补丁:

注:常见的SSRF漏洞和JAVA反序列化漏洞打上最新补丁就已经修复。
1.3 JDK版本

安装Weblogic软件时必须安装对应的JDK软件,才能正常运行。对于JDK版本的选择,选择官方建议的大版本号,同时尽量保证小版本最新。如下所示:

备注:Oracle提供的JDK不适用于AIX、HP-UX操作系统,需到IBM和HP官网下载对应版本的JDK。

二、安装规范

2.1 OS资源规范

操作系统资源规范要求应该注意以下几点:

    1.    Weblogic运行的操作系统版本为RedHat7.3 x86_64。

    2.    Hosts配置,要求主机的hosts文件配置主机名与IP的对应关系。

    3.    磁盘空间规范,要求单独分配一个新的文件系统给weblogic软件,同时至少预留40G空间。

    4. 内存使用规范,中间件节点内存分类区间在4G-8G,因此分配操作系统内存至少在16G以上。

2.2 用户与目录规范

    1.    Weblogic的服务必须使用非root用户来启动与管理。

    2.    weblogic软件必须安装到指定到规划文件系统路径下面(该目录归属为非root用户,权限为740)。

    3.    严禁将不同版本的WebLogic软件安装在同一目录下。

    4.    软件安装模式必须是完全模式。

2.3 运行模式选择

  Weblogic有两种运行模式:开发模式和生产模式。必须合理选择Weblogic运行模式,以提升weblogic健壮性和稳定性。 开发系统推荐使用开发模式,生产系统推荐使用生产模式。

三、weblogic域配置

    1.    域名命名规范,domain名称必须简单明了贴近应用系统名称,且名称长度不能超过16字符。格式为:应用程序名_domain。

    2.    域名应以大功能模块作为划分标准,域下面再建立不同的应用服务器部署不同的、关联性较强的应用模块。

3.1 集群配置

    1.    集群命名规范:集群名称必须简单明了贴近域名称,且名称长度不能超过16字符。格式:域名_Cluster。

    2.    配置集群时多播地址和端口,避免监听地址问题,可以使用 IP 地址或 DNS名称指定地址信息。同时多播地址的使用必须与主机侧进行核实、管理,避免重复。

    3.    标识要专用于集群的多播通信的地址和端口。多播地址是介于 224.0.0.0 和 239.255.255.255 之间的 IP 地址。WebLogic使用的默认多播值是 239.192.0.0。不应使用任何值为 x.0.0.1 的多播地址。

3.2 服务器配置

为了确保WebLogic环境中的每个可配置资源都具有唯一名称。每个域、服务器、计算机、集群、JDBC 数据源、虚拟主机或其他资源都必须具有唯一名称。

1.    管理服务器(AdminServer)配置要求 

    1)    管理服务器必须使用默认命名:AdminServer;

    2)    每一个域必须有一台AdminServer;

    3)    禁止在AdminServer上部署应用;

    4)    管理服务器必须配置在域的对外服务IP上;

    5)    严禁使用默认端口7001作为管理节点的服务端口,安装weblogic管理端口指定端口范围在 [7100-7900]之间;

    6)    管理账户密码必须具备一定强度,禁止使用weblogic这种弱口令,要求密码要有一定的复杂度。

2.    受管服务器(ManagedServer)配置要求      

    1)    受管服务器命名规范,要求字符长度在16位内,以应用名称加下划线”_”进行分隔;

    2)    每个集群节点端口做出端口范围限定,第一个集群节点服务端口指定在 [8001-9001]范围, 第二个集群节点服务端口指定在 [8101-9101]范围,其它集群节点服务端口往后类推。

  3)    同一个cluster下受管服务器,其JVM启动参数必须一致,JVM启动参数必须在启动脚本中进行设置,严禁在影响全局环境变量配置文件中进行配置。

3.3 数据源配置

为了提高JDBC数据源连接池效率问题, Oracle官方推出了GridLink数据源,增强对RAC的支持,就是为了取代原先的多数据源。以防数据库RAC节点异常,中间件数据源自动切换正常数据库节点。

1、JDBC数据源类型规范选择:

    1)    数据库为单实例采用普通数据源;

    2)    Oracle11g以下版本的RAC多实例数据库采用多数据源;

    3)    Oracle11g以上版本的RAC多实例数据库采用GridLink数据源,数据源采用连接数据库的地址统一用scan ip和service_name。

2、针对JDBC数据源规范要求作出以下规范要求:

    1)    数据源名须设为应用程序名_datasource。 

    2)    数据源JNDI名称须设为应用程序名_datasource_JNDI,要为数据源指定多个 JNDI 名,请在单独的行上分别输入每个 JNDI 名。

    3)    Cluster中每个节点数据源,数据库连接池配置属性须保持一致

    4)    采用Gridlink数据源方式配置

3.4 JMS配置

对于每种资源类型(例如队列、主题和连接工厂),JMS模块内的资源名称必须是唯一的。但是,两个不同的JMS模块可以拥有共享相同名称的相同类型的资源。同样,跨JMS模块的任何可绑定的JMS资源的JNDI名称(排除配额、目标关键字和 JMS 模板)也必须是唯一的。

    1.    JMS模块名须设为 “应用程序名_JMS_Module”

    2.    JMS Server须设为“应用程序名_JMS_Server”

    3.    JMS连接工厂须设为“应用程序名_ CF”

    4.    JNDI Name须设为“应用程序名_ CF_JNDI”

    5.    JMS队列须设为“应用程序名_ Queue”

    6.    JNDI Name须设为“应用程序名_ Queue_JNDI”

    7.    JMS主题须设为“应用程序名_ Topic”

    8. JNDI Name须设为“应用程序名_ Topic _JNDI”   

3.5 登录密码加密配置

1.    新建WebLogic服务器后要做免密码启动文件,以便在后台启动脚本时能正常启动各个WebLogic节点。

2.    在每个WebLogic节点目录下新建security目录,在security目录下新建boot.properties文件,并将用户和密码写入此文件中,方便用户密码管控。

四、启动脚本规范

1.    对于不同类型的多用户操作系统,需配置Weblogic后台启动脚本,已增强使用安全性。

2.    启动脚本参数要求重定义JVM内存大小和服务端口变量,要求必须后台启动server;必须有输出的server日志。

3.    启动脚本中定义好heapdump和gc参数,方便后续系统出现故障对内存使用情况进行分析。

4.    服务启动脚本统一用定制化脚本来启动,不建议使用weblogic安装后的脚本来启动服务。

5.    因为每个节点的配置要求可能存在差异,不建议设置成全局变量,所以weblogic标准化里面不设置“计算机”功能,统一通过后台维护,控制台仅提供部署、修改部分配置功能。

五、基线参数优化

   weblogic服务运行正常的同时可以通过参数优化有助系统性能提升,所以需要针对weblogic相关的参数进行优化,以保障业务系统稳定运行。针对weblogic中间件存在几个优化点,比如:JVM内存、本地I/0开启、线程、数据源、Accept BackLog和日志文件等。

5.1 内存优化

     1)    Heap堆大小:管理节点JVM内存限制在 1G-2G左右,被管理节点服务器JVM内存限制在 4G-8G,其它情况需合理利用服务器资源,至少预留1~2G本地内存给操作系统使用;

   2)    Perm区大小:通用场景设置512MB即可,对于大内存应用场景可适当调整为约占整个heap的1/4大小。Permanent区用于加载类(class)的专门的内存区域,该参数仅针对Sun JDK和HP JDK。

注:在WebLogic中,为了获得更好的性能,ORACLE官方推荐最小堆内存等于最大堆内存

5.2 本地IO

在能使用Native I/O的平台上尽量 开启本地原生I/O,此参数优势是会使用Java线程进行网络操作会降低WLS性能。以下操作是如何去开启原生I/0参数

5.3 线程池

为了提升系统业务并发,线程池的优化直接影响到了业务系统的并发上升空间和 weblogic 处理能力,因此应该合理的去分配服务的线程池大小,这里提供两种线程调优方式。

1.    work managers线程自调优:

2.    手动线程调优

在startWeblogic.sh启动脚本中的JAVA_OPTIONS变量加入以下参数

-Dweblogic.threadpool.MinPoolSize=500 -Dweblogic.threadpool.MaxPoolSize=500

要求最小线程和最大线程大小要相等,为了降低申请线程资源的开销,有助性能提升。

5.4 线上运行模式

   生产交付的weblogic系统,要求将域启动模式设置成生产模式,有助weblogic性能提高。请修改startWebLogic.sh脚本中,将PRODUCTION_MODE变量的值更改为TRUE。

5.5 数据源

为了提升数据源的性能,保障业务能正常获取数据源中每个健康的连接,同时也能释放出非活动连接提升主机的性能,以参考以下指标进行优化。


5.6 Accept Backlog

WebLogic使用Accept Backlog (TCP queue)参数规定WebLogic向系统请求的queue的大小, Accept Backlog属性決定了在 waiting queue中最多可以有多少TCP连接等待处理,默认值为300。如果在许多client连接被拒绝,而在服务器端沒有错误显示,说明该值设得过低。可以适当增大acceptBacklog的值,每次增加25%

服务器->配置->优化->接受积压:

5.7 日志参数

由于Weblogic安装后默认的各节点日志生成是不规范的,是无法满足安全基线规范,为了适应广西电网中间件安全基线要求,强化日志输出标准,请按以下参数标准设置。

 


请使用浏览器的分享功能分享到微信等