Linux下weblogic集群的配置
集群能够保证有效稳定的对外提供服务,作为web server中的一种,weblogic自然也是支持集群配置的,weblogic的集群配置有几个概念需要了解。
1,管理服务器,也可以认为是主服务器,管理集群下的各个节点服务器
2,受管服务器,子节点服务器,可被管理的服务器,应该叫被管服务器也没错吧。
关于weblogic运行的java环境,可能需要说一下,有些jdk的版本是有bug的,表现在weblogic的控制台登陆的时候会卡住不断刷新,原因是它想调用一个随机函数,但是一直取不到,这时候需要修改jdk的安全设置,使得它能够正常的调用随机函数。具体步骤如下:
cd $JAVA_HOME
cd jre/lib/security/
vim java.security,定位到 securerandom.source这一行,将其对应值修改为 file:/dev/./urandom,保存退出。
环境介绍:
两台机器,IP分别为192.168.0.17和192.168.0.18
实验计划为:192.168.0.17作为管理服务器并将自身作为受管服务器,192.168.0.18仅作为受管服务器。操作系统版本为centos7,两台都关闭selinux和iptables,firewalls。并安装java运行环境 ,jdk版本为1.8.20版本。weblogic的版本为通用版本10.3.6,并执行前文的消除bug步骤。(特别注意,需要配置ntp时间同步服务器,所有各种类型的集群都需要的标配哦,具体配置时间服务器不会的自行查找资料,一定要有!!!!!)
实验目标:控制台可见一个管理服务器和两个受管服务器,运行状态为running,可部署工程。
搭建过程:
在192.168.0.17上的操作:
说明一下,所有种类的集群都是在单例的基础上扩展来的,我想,这么说应该没什么问题。因此,集群部署本质是通过对单例节点的扩展得出了的(常见集群mysql比较特殊,版本非常多,有些集群是专门的集群版本,但还是一个个单例组建的)。
1,解压释放文件
java -jar wls1036_generic.jar -mode=console#仍然是如果有桌面环境,将自动进入图形界面配置,没桌面环境,自动进入console控制台模式,本服务器都是最小化安装,没有桌面,因此命令简化为:java -jar wls1036_generic.jar
这一步的主要工作是指定解压释放的文件的路径,并确定jdk环境(针对多jdk的情况),特别说明一下,用户使用root,并不像别的web server如nginx,tomcat这样的使用专门的进程用户。当然,也可以使用,但权限过小部署的时候麻烦也比较多哦。
输入next,进入下一步。
确认解压路径,默认路径为/root/Oracle/Middleware,这里不选择默认路径,输入自定义路径 /usr/local/weblogic ,然后回车,输入next,进入下一环节。
这里输入3,以关闭安全问题推送功能。回车,输入no,在输入yes确认关闭该功能,回车,输入next,进入下一个环节。
这里是选择安装方式,默认常规,->1表示这个选项是已选择的意思,需要选择常规,因此,输入next,进入下一个环节。
2|/usr/local/jdk1.8.0_20[x], 这个中括号内的x代表已选择,是前面安装的jdk路径,输入next,进入下一个环节。
这一步上将上面的内容汇总,让你确认 ,next即可,进入下一个环境,两个next,一个回车结束解压文件。
看到这个表示解压完成 ,第一大步骤完成。
2,配置环节,内容比较多,需要注意单例和集群的配置不同。
经过上面那一个步骤,可以看到已经在 /usr/local/weblogic 目录下生成了很多文件:
[root@centos6 weblogic]# pwd
/usr/local/weblogic
[root@centos6 weblogic]# ll
total 152
drwxr-xr-x 6 root root 121 Nov 1 13:22 coherence_3.7
-rw-rw---- 1 root root 133 Nov 1 13:22 domain-registry.xml
drwxr-xr-x 2 root root 21 Nov 1 13:22 logs
drwxr-xr-x 7 root root 28672 Nov 1 13:22 modules
-rw-r--r-- 1 root root 621 Nov 1 13:22 ocm.rsp
-rw-r--r-- 1 root root 108877 Nov 1 13:22 registry.dat
-rw-r--r-- 1 root root 1911 Nov 1 13:22 registry.xml
drwxr-xr-x 8 root root 107 Nov 1 13:22 utils
drwxr-xr-x 8 root root 131 Nov 1 13:22 wlserver_10.3
最后一个目录就是weblogic的主目录,各种配置,启动,以及编写的启动/停止脚本,项目的部署等等都在这个目录下完成。(重要指数:五星)
进入目录/usr/local/weblogic/wlserver_10.3/common/bin,ll一下,其中的config.sh 这个脚本文件内容大略分析一下:
其中定义了比较多的变量,但需要注意一个变量:WL_HOME="/usr/local/weblogic/wlserver_10.3"
一个eval命令:eval '"/bin/java"' com.oracle.cie.wizard.WizardController ,可以看到脚本是调用了一个jar包生成了一个控制台,
执行命令 ./config.sh -mode=console #多说一句,仍然和第一步那个命令一样,有图形就进图形,没有就控制台。所以,现在必定是命令行控制台模式。
前面的内容没什么可解释的,确认域控的安装路径,确认要安装的域的种类,确认域名,一般都不需要更改,因此,四个next进入如下环节:
这个地方是weblogic管理员的账号和密码设定环节,通常管理员账号默认weblogic,不用修改,仅仅修改密码即可。密码要牢记,是登陆 web 管理控制台和启动weblogic的密码哦,要是忘了,只有重新建立域了,这是后话,不多比比了。
密码的设定为:输入2,回车,输入密码,回车,输入3,回车,输入确认密码,回车。最终如下图:
当然,在这会有密码校验,两次密码不一致会提示 ** CFGFWK-64018: The confirmed password does not match the entered one,准确的输入密码即可无报警。输入next,进入下一个环节。
输入2,选择生产模式,next,next,进入下一个环节。
这里需要将1和2都打上√,输入1,回车,输入2,回车,输入next,回车。(3是将weblogic作为一个安全存储的容器使用,当然不选它了)。
输入2,输入192.168.0.17,回车,输入3,输入17001,回车,输入next,进入下一个环节。最终如上图、
被管节点的配置。输入server1.回车,输入2,输入192.168.0.17,回车,输入3,输入17002,回车,回车。
选择1,输入server2,回车,输入2,回车,输入192.168.0.18,回车,输入3,回车,输入17002,回车,输入5,回车。
输入next,回车。进入下一个环节。
给集群起个名字,输入Cluster,回车,next,回车。
方括号内数字是几就输入几,这里是1,输入1.回车。 输入2,回车,输入accept,回车。
从这里开始,全部回车。至此,集群的192.168.0.17的域控就算搭建好了,下面开始192.168.0.18的域控配置。
二,192.168.0.18上的域控操作步骤。
同192.168.0.17上的步骤基本一致,两个地方不同,第一个是设定管理密码后只选择1.2.3三个选项的第二个,第二个是配置受管服务器的名字要与192.168.0.17设定的一致,在本案例中是server2,IP地址为192.168.0.18这个地址。(1,2,3指的是下图这三个选项,也可以1,2都选,但adminserver的配置要和17的一致,这样可以不用启动节点的时候加http://ip:端口 了。)
18这台的受管服务器配置完毕后就一路回车直至域控创建完成。
三,集群的启动。
192.168.0.17需要运行两个启动脚本,一个脚本为域控下的startWeblogic.sh,一个为域控目录下的bin目录内的 startManagedWebLogic.sh.在本案例中,我以绝对路径的形式来执行这两个脚本。
/usr/local/weblogic/user_projects/domains/base_domain/startWebLogic.sh
/usr/local/weblogic/user_projects/domains/base_domain/bin/startManagedWebLogic.sh server1
192.168.0.18需要运行一个启动脚本,这个脚本为域控目录下的bin目录的startManagedWebLogic.sh,仍然以绝对路径的形式执行。
/usr/local/weblogic/user_projects/domains/base_domain/bin/startManagedWebLogic.sh server2 http://192.168.0.17:17001
(如果在18这个服务器上配置了管理,并且和服务器配置相同的话,那么启动该节点的时候可以和主节点一样,不写http:这么一串东西。启动的命令就可以省略为 usr/local/weblogic/user_projects/domains/base_domain/bin/startManagedWebLogic.sh server2 )
此时三个命令的输出截图分别如下为成功启动服务:
此时登录weblogic的web管理控制台,输入账号密码后登录,服务器的状态应该如以下截图所示:
集群启动顺序为:管理服务器,被管服务器,192.168.0.17是双角色,因此,两个启动脚本。
四,编写脚本优雅的启动集群
mkdir /usr/local/weblogic/user_projects/domains/base_domain/servers/AdminServer/security
vim /usr/local/weblogic/user_projects/domains/base_domain/servers/AdminServer/security/boot.properties
写入内容如下:
username=weblogic
password=你设定的登录密码 #两行,=号两边没有空格。保存文件。这是免密登录的文件。
vim startAdmin.sh
#!/bin/bash
#!author zsk_john
nohup /usr/local/weblogic/user_projects/domains/base_domain/bin/startWebLogic.sh>>/var/log/weblogic/AdminServer.log&
以上内容保存后退出,建立日志保存目录。
mkdir -p /var/log/weblogic
此时运行脚本,并查看日志。
bash startAdmin.sh
tail -f /var/log/weblogic/AdminServer.log#这个日志文件的内容应该如下:
Nov 1, 2020 5:11:13 PM CST> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 192.168.0.17:17001 for protocols iiop, t3, ldap, snmp, http.>
<Nov 1, 2020 5:11:13 PM CST> <Notice> <WebLogicServer> <BEA-000329> <Started WebLogic Admin Server "AdminServer" for domain "base_domain" running in Production Mode>
<Nov 1, 2020 5:11:13 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<Nov 1, 2020 5:11:13 PM CST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
以此类推,分别编写停止admin服务器脚本,启动managedserver,停止managedserver的脚本。总共四个脚本。
例如:停止admin脚本内容为:
#!/bin/bash
#!author zsk_john
nohup /usr/local/weblogic/user_projects/domains/base_domain/bin/stopWebLogic.sh>>/var/log/weblogic/AdminServer.log&
在192.168.0.18上,分别编写启动和停止节点的脚本,同样命令为nohup加命令加后台&的形式。
特别注意,免密登录的文件每个节点都要有哦。
[root@centos7 ~]# ll /usr/local/weblogic/user_projects/domains/base_domain/servers/
total 0
drwxr----- 7 root root 70 Nov 1 17:09 AdminServer
drwxr----- 7 root root 93 Nov 1 17:58 server1
这两个文件夹下都需要建立文件夹 security,在security这个文件夹下有boot.propertie这个文件。
192.168.0.18这个机器上同样的路径,同样的文件。
附:更改服务器监听端口以及添加节点的方法
域控的配置文件为:config.xml,具体路径在本例为:/usr/local/weblogic/user_projects/domains/base_domain/config
打开config.xml这个文件,修改如下内容:
<server>
<name>AdminServer</name>
<listen-port>17001</listen-port> #这里是主节点的监听端口
<listen-address>192.168.0.17</listen-address>
</server>
<server>
<name>server1</name>
<listen-port>17011</listen-port>
<listen-address>192.168.0.17</listen-address>
</server>
<server>
<name>server2</name>
<listen-port>17011</listen-port>#这是从节点的监听端口
<listen-address>192.168.0.18</listen-address>
</server>
<server>#这个是新增加的节点,监听IP写入,在新机器192.168.0.19上安装weblogic并按从节点的方法配置好即可,重新启动weblogic,可在控制台看到并使用这个新的节点。
<name>server3</name>
<listen-port>17011</listen-port>#这是从节点的监听端口
<listen-address>192.168.0.19</listen-address>
</server>