weblogic之-使用节点管理器控制服务器

使用节点管理器控制服务器

下列部分介绍节点管理器功能、架构和配置步骤。

 


节点管理器概述

WebLogic Server 生产环境中的服务器实例通常分布在多个域、计算机和地理位置上。节点管理器是一个 WebLogic Server 实用工具,可以使用它来启动、关闭和重新启动远程位置上的管理服务器和受管服务器实例。尽管节点服务器是可选工具,但如果您的 WebLogic Server 环境所承载的应用程序具有较高的可用性要求,则建议您使用该工具。

节点管理器进程与特定 WebLogic 域无关,而与计算机有关。只要服务器实例与节点管理器进程驻留于同一台计算机上,您就可以使用同一个节点管理器进程控制任意 WebLogic Server 域中的服务器实例。节点管理器必须在承载要通过节点管理器控制的 WebLogic Server 实例(管理服务器或受管服务器)的计算机。

基于 Java 和基于脚本的节点管理器

WebLogic Server 提供两种版本的节点管理器:基于 Java 的节点管理器和基于脚本的节点管理器,两者功能类似。但是,每个版本的配置和安全注意事项不同。

基于 Java 的节点管理器

基于 Java 的节点管理器在 Java 虚拟机(Java Virtual Machine,简称 JVM)进程中运行。建议在 Windows 平台上将其作为 Windows 服务运行,而在 UNIX 平台上将其用作一种操作服务运行,以便重新引导系统时可以自动重新启动该节点管理器。

BEA 针对 Windows、Solaris、HP UX、Linux on Intel、Linux on Z-Series 以及 AIX 操作系统提供本地节点管理器库。

注意: Open VMS、OS/390、AS400、UnixWare 或 Tru64 UNIX 不支持节点管理器。

此版本的节点管理器将根据 nodemanager.properties 文件确定其配置。请参阅配置基于 Java 的节点管理器

与基于脚本的版本相比,基于 Java 的节点管理器可以提供更高的安全性。请参阅配置基于 Java 的节点管理器的安全

基于脚本的节点管理器

对于 UNIX 和 Linux 系统,WebLogic Server 提供基于脚本版的节点管理器。该脚本基于 UNIX 外壳脚本,但它使用 SSH 提供更高的安全性。SSH 使用基于用户 ID 的安全。

有关配置脚本版节点管理器的详细信息,请参阅配置基于脚本的节点管理器。有关使用此版本节点管理器的信息,请参阅运行基于脚本的节点管理器

此版本所提供的安全性低于基于 Java 的版本。但是,基于脚本的节点管理器的优势在于,它能够通过已配置为使用 SSH 的网络来远程管理服务器。不需要任何其他服务器安装。只需要将脚本复制到远程计算机上。

注意: 建议将基于脚本的节点管理器作为一种操作系统服务来运行,以使它能够在重新引导系统时自动重新启动。

决定使用哪个节点管理器版本

使用哪个节点管理器版本取决于 WebLogic Server 环境的需要。下列注意事项会有助于您决定哪个版本适合您的环境:

  • 如果在 Windows 系统上安装 WebLogic Server,必须使用 Java 版的节点管理器。Windows 不支持脚本版的节点管理器。
  • 在使用 Java 版本的节点管理器时,使用 db-less 租用(一致租用),您可能会看到更快的性能。
  • 基于脚本的节点管理器需要的安全配置要比 Java 版本需要的安全配置简单很多。RSH 和 SSH 通常比 SSL 要容易配置,SSL是 Java 版本的节点管理器使用的安全方法。脚本版的节点管理器需要的空间占用也比 Java 版本需要的空间占用少很多。
  • 在受支持的 UNIX 系统上,Java 版的节点管理器可以与 inetd 组合使用。inetd 允许节点管理器在已配置的端口上收到请求时自动重新启动。

访问节点管理器

相对于要进行通信的节点管理器,节点管理器客户端可以在本地,也可以是远程。您可以从下列客户端访问任意版本的节点管理器 - Java 版或基于脚本 (SSH) 的版本。(另外还提供了外壳命令模板形式的 SSH 客户端,以用于基于脚本的节点管理器。)

    • 管理服务器
    • 管理控制台,位于“环境”>“计算机”>“配置”>“节点管理器”页面。
    • 自己编写的 JMX 实用工具。

有关 JMX 的详细信息,请参阅“使用 JMX 开发自定义管理实用工具”。

    • WLST 命令和脚本 - 管理服务器未运行时,WLST 将脱机用作节点管理器命令行接口。使用 WLST 命令,无需连接管理服务器即可启动、停止和监视服务器实例。独立客户端的主要目的在于启动管理服务器。但您还可以使用它执行下列操作:
  • 停止由节点管理器启动的服务器实例。
  • 启动受管服务器。
  • 访问节点管理器日志文件的内容。
  • 获取服务器状态。
  • 检索服务器输出日志的内容。

节点管理器可以执行的任务

下列部分介绍节点管理器基本功能。

启动、关闭和重新启动管理服务器

通过使用 WebLogic 脚本工具(或仅适用于基于脚本的节点管理器的 SSH 客户端),可以连接承载管理服务器的计算机上的节点管理器进程,然后发出启动、关闭或重新启动管理服务器等命令。管理服务器与节点管理器的关系随场景不同而有所不同。

  • 管理服务器可以由节点管理器控制 - 您可以使用节点管理器启动、监视和重新启动管理服务器。
  • 管理服务器可以是节点管理器的客户端 – 使用管理控制台启动或停止受管服务器时,您将通过管理服务器访问节点服务器。
  • 管理服务器支持使用节点服务器启动受管服务器 - 使用节点管理器启动受管服务器时,受管服务器将联系管理服务器以获取待处理的配置更新。

启动、关闭、挂起和重新启动受管服务器

通过 WebLogic Server 脚本工具(WebLogic Server Scripting Tool,简称 WLST)命令行或脚本,可以向节点服务器发出启动、关闭、挂起和重新启动受管服务器实例和群集等命令。

如果已对受管服务器实例启用受管服务器独立(Managed Server Independence,简称 MSI)模式,则即使管理服务器不可用,节点管理器依然可以在失败后重新启动该受管服务器。默认情况下启用此特性。

注意: 节点管理器不能启动初次进入 MSI 模式的受管服务器,因为域的管理服务器必须可用,受管服务器才能获取配置设置。

注意: 节点管理器使用的命令参数与您使用脚本或从命令行启动受管服务器时所提供的参数相同。有关启动参数的信息,请参阅“WebLogic Server 命令参考”中的 weblogic.Server 命令行参考

重新启动管理服务器和受管服务器

如果使用节点管理器启动的服务器实例出现故障,则节点管理器将自动重新启动该服务器实例。

注意: 节点管理器只能重新启动通过节点管理器启动的服务器。

重新启动功能是可配置的。节点管理器的默认行为是:

  • 自动重新启动在其控制下的故障服务器实例。可以禁用此功能。
  • 故障服务器实例重新启动的次数不能超过指定次数。通过在节点管理器 startup.properties 文件中设置 RestartMax 属性,可以定义重新启动的次数。

如果节点管理器出现故障或直接关闭,则它会在重新启动时确定退出时仍在其控制下的服务器实例。节点管理器可以根据需要重新启动任意的故障服务器实例。

注意: 建议将节点管理器作为操作系统服务运行,以便它能够在主机重新启动后自动重新启动。

监视服务器和查看日志数据

节点管理器将创建节点管理器进程的日志文件,以及其控制的每个服务器实例的服务器输出日志文件。您可以使用管理控制台或 WLST 命令查看这些日志文件以及服务器实例的日志文件。

 


节点管理器在 WebLogic Server 环境下如何工作

下列部分提供一个“大图”,以图表方式介绍节点管理器在 WebLogic Server 环境中的角色,以及节点管理器用于与服务器进行通信的进程的图解与描述:

节点管理器和服务器的图表

图 3-1 描绘了节点管理器、其客户端及其控制的服务器实例之间的关系。

图 3-1 WebLogic Server 环境中的节点管理器

Weblogic Server 环境中的节点管理器

 

节点管理器如何启动管理服务器

图 3-2 描绘了使用节点管理器启动管理服务器的过程。

本部分假定您已经安装管理服务器,而且已经使用 Configuration Wizard 为管理服务器创建域目录。

节点管理器在承载管理服务器的计算机 A 上运行。独立节点管理器位于远程。

图 3-2 启动管理服务器

启动管理服务器

 

    1. 授权用户发出 WLST 脱机命令 nmConnect,以连接承载管理服务器的计算机上的节点管理器进程,然后发出一条命令启动该管理服务器。(如果节点管理器实例是 SSH 版本,则用户可以使用SSH 客户端进行连接)。

启动命令中会标识要启动的域和服务器实例,如果使用的是 Java 节点管理器,还要向节点管理器提供用户名和密码。

注意: 如果用户以前曾经连接该节点管理器,则已存在 boot.properties 文件,该用户不必再提供用户名和密码。
  1. 节点管理器在 nodemanager.domains 中查找域目录,并使用包含加密用户名和密码的本地文件来对用户凭据进行身份验证。
  2. 节点管理器创建管理服务器进程。
  3. 管理服务器从其 config 目录中获取域配置。

节点管理器如何启动受管服务器

图 3-3 描绘了使用节点管理器启动受管服务器的过程。

节点管理器在承载受管服务器 1 的计算机 B 上运行。域的管理服务器正在计算机 A 上运行。

图 3-3 启动受管服务器

启动受管服务器

 

    1. 用户从管理控制台中发出启动受管服务器 1 的命令。
注意: 独立客户端还会发出启动受管服务器的命令。
    1. 管理服务器向计算机 B 上的节点管理器发出启动受管服务器 1 的命令,提供为受管服务器 1 配置的远程启动属性。 有关参数以及如何指定参数的信息,请参阅配置远程启动参数
    2. 节点管理器启动受管服务器 1。

节点管理器将使用节点管理器进程运行所在的根目录启动受管服务器。要在其他目录下运行受管服务器,请在“服务器”->“配置”->“服务器启动”控制台页面中设置“根目录”特性。

  1. 受管服务器 1 联系管理服务器以检查其配置信息的更新。
  2. 如果域配置中存在待处理更改,则受管服务器 1 将更新其配置数据的本地缓存。

节点管理器如何重新启动管理服务器

图 3-4 描绘了使用节点管理器重新启动管理服务器的过程。

节点管理器在承载管理服务器的计算机上运行。最初使用节点管理器启动的管理服务器已经退出。管理服务器的 AutoRestart 特性设置为 true

注意: 如果服务器实例的 AutoRestart 特性设置为 false,则节点管理器不会重新启动该实例。
图 3-4 重新启动管理服务器

重新启动管理服务器

 

  1. 节点管理器通过管理服务器进程退出代码确定需要重新启动管理服务器。
  2. 节点管理器从 boot.properties 文件中获取启动管理服务器的用户名和密码,并从 <server_name>/data/nodemanager/startup.properties 文件中获取服务器启动属性。
  3. 节点管理器启动管理服务器。
  4. 管理服务器读取其配置数据并启动。

节点管理器如何重新启动受管服务器

图 3-5 描绘了使用节点管理器重新启动受管服务器的过程。

节点管理器在承载受管服务器 1 的计算机 B 上运行。最初使用节点管理器启动的受管服务器 1 已经退出。受管服务器 1 的 AutoRestart 特性设置为 true

注意: 如果服务器实例的 AutoRestart 特性设置为 false,则节点管理器不会重新启动该实例。
图 3-5 重新启动受管服务器

重新启动受管服务器

 

    1. 节点管理器根据受管服务器 1 的最后已知状态确定需要重新启动受管服务器。
    2. 节点管理器从 boot.properties 文件中获取启动受管服务器 1 的用户名和密码,并从 startup.properties 文件中获取服务器启动属性。这些服务器特定的文件位于受管服务器 1 的服务器目录中。
    3. 节点管理器启动受管服务器 1。
注意: 在服务器实例出现故障后,节点管理器会等待 RestartDelaySeconds 秒,然后再尝试重新启动该实例。
    1. 受管服务器 1 尝试联系管理服务器以检查其配置数据的更新。如果它联系管理服务器并获取更新后的配置数据,则它将更新其 config 目录的本地缓存。
    2. 如果受管服务器 1 无法联系到管理服务器,且如果已启用受管服务器独立模式 (MSI),则受管服务器 1 将使用其本地缓存中的配置数据。
注意: 默认启用受管服务器独立模式。

节点管理器如何关闭服务器实例

图 3-6 描绘了节点管理器控制下的受管服务器在关闭过程中进行的通信。根据受管服务器的状态及其是否可用,节点管理器可能需要尝试备用策略以成功启动关闭过程。

节点管理器在承载受管服务器 1 的计算机 B 上运行。

图 3-6 关闭节点管理器控制下的服务器实例

关闭节点管理器控制下的服务器实例

 

  1. 授权用户从管理控制台中发出关闭受管服务器 1 的命令。
  2. 管理服务器直接向受管服务器 1 发出关闭命令。如果成功地与受管服务器 1 建立联系,受管服务器 1 将执行“管理服务器启动和关闭”的 正常关闭中所述的关闭步骤。
  3. 在前一步骤中,如果管理服务器无法联系到受管服务器 1,则它将向计算机 B 上的节点服务器发出关闭受管服务器 1 的命令。
  4. 节点管理器将向操作系统发出取消受管服务器 1 的请求。
  5. 操作系统将结束受管服务器 1 进程。

节点管理器和系统崩溃恢复

要确保节点管理器在系统崩溃后正常重启,必须执行以下操作:

    • 确保 CrashRecoveryEnabled 设置为 True。

CrashRecoveryEnabled 配置属性允许节点管理器在系统崩溃后重启服务器。默认不启用该属性。

  • 应当通过节点管理器来启动管理服务器。
  • 应当通过管理服务器来启动所有的受管服务器。可以通过 WLST 或管理控制台来完成此操作。

重新启动系统后,节点管理器检查 nodemanager.domains 文件中指定的每个受管域,然后确定是否存在任何尚未完全关闭的服务器实例。这可以通过创建 WebLogic Server 进程时是否存在由节点管理器创建的锁定文件而确定。该锁定文件包含 WebLogic Server 启动脚本的进程标识符。如果存在锁定文件,但进程 ID 并未运行,则节点管理器将尝试自动重新启动该服务器。

如果该进程正在运行,节点管理器还将访问进程中运行的管理 Servlet 并进一步检查,从而验证与该进程 ID 对应的进程是一个 WebLogic Server 实例。

注意: 当节点管理器访问管理 Servlet 而执行检查时,服务器日志中可能会显示有关非正常凭据的警告。

节点管理器配置和日志文件

在管理多个服务器的过程中,节点管理器使用多个配置文件,并向多个目录输出日志文件,如下图所示。有关这些文件的说明,请参阅节点管理器配置和日志文件

图 3-7 节点管理器配置和日志记录环境

节点管理器配置和日志记录环境

 

下列部分介绍节点管理器配置和日志文件:

配置文件

除特别说明外,配置文件均适用于基于 Java 的节点管理器和基于脚本的节点管理器。

nodemanager.properties

这是基于 Java 版本的节点管理器使用的配置文件。请参阅检查 nodemanager.properties

此文件位于 WL_HOME/common/nodemanager

nodemanager.domains

此文件包含节点管理器管理的域的名称及其对应目录之间的映射。请参阅配置 nodemanager.domains 文件

此文件位于 WL_HOME/common/nodemanager

nm_data.properties

此文件中存储了节点管理器使用对称加密密钥加密的数据。数据以加密格式存储。

此文件位于 WL_HOME/common/nodemanager

nm_password.properties

此文件存储节点管理器的用户名和密码。请参阅指定节点管理器的用户名和密码

此文件位于 DOMAIN_HOME/config/nodemanager 下。

boot.properties

节点管理器使用此文件指定启动服务器时的引导标识。请参阅常规节点管理器配置

此文件位于 domain-name/servers/server_name/data/nodemanager 下。

startup.properties

每个受管服务器实例都有自己的 startup.properties 文件,该文件具有可以控制节点管理器如何启动和控制服务器的属性。通过使用最后一次通过管理器服务器启动服务器时向节点管理器传递的属性,节点管理器自动创建此文件。这允许节点管理器客户端或启动脚本使用管理服务器最后一次使用的属性重新启动受管服务器。

有关 startup.properties 的详细信息,请参阅设置服务器启动属性。这些属性与 ServerStartMBean 包含的服务器启动特性以及 ServerStartMBean 中的运行状况监视特性相对应。

此文件位于 domain-name/servers/server_name/data/nodemanager。

server_name.addr

server_name.addr 存储服务器启动或迁移时增加的 IP 地址。在迁移期间,此文件在服务器 IP 地址成功联机之后生成。server_name.addr 在 IP 地址脱机后删除。服务器 IP 地址用于验证删除请求,防止关闭服务器时误删地址。

此文件位于 domain-name/servers/server_name/data/nodemanager 中。

server_name.lck

每个服务器都会生成 server_name.lck,其中包含内部使用的锁定 ID。

此文件位于 domain-name/servers/server_name/data/nodemanager。

server_name.pid

每个服务器都将生成 server_name.pid,其中包含服务器的进程 ID。节点管理器检查服务器在崩溃恢复期间所生成的进程 ID。

此文件位于 domain-name/servers/server_name/data/nodemanager。

server_name.state

服务器会生成 server_name.state,其中包含服务器的当前状态。节点管理器会监视此文件的内容,以便确定服务器的当前状态。

注意: 请勿删除或更改此文件。如果没有此文件,节点管理器无法确定服务器的当前状态。

此文件位于 domain-name/servers/server_name/data/nodemanager。

日志文件

使用节点管理器和 WebLogic Server 日志文件有助于对启动或停止各个受管服务器中的问题进行故障排除。

表 3-1 节点管理器日志文件的位置
日志文件
位置
节点管理器日志文件
NodeManagerHome/nodemanager.log
节点管理器服务器实例日志文件
domain-name/servers/<server-name>/logs/<server-name>.out
WebLogic Server 日志文件
domain-name/servers/<server-name>/logs/<server_name>.log

 

nodemanager.log

节点管理器在 NodeManagerHome/nodemanager.log 中创建了一个日志文件。此日志文件存储与节点管理器管理的所有域有关的数据。

此日志文件由节点管理器生成,其中包含节点管理器在给定物理计算机上控制的所有域的数据。请参阅 nodemanager.log

此文件位于 WL_HOME/common/nodemanager

日志输出将追加到当前 nodemanager.log中。默认情况下禁用日志滚动,但是通过在 nodemanager.properties 中设置 LogCount 可以启用它。

您可以通过下列方式查看节点管理器日志文件:

  • 在管理控制台中选择“计算机”->“监视”->“节点管理器日志”页面
  • 使用 WLST nmLog 命令

server_name.out

对于它控制的每个服务器实例,节点管理器会维护一个日志文件,其中包含由服务器实例生成的 stdout和 stderr 消息。如果已经将远程启动调试属性启用作为服务器实例的远程启动属性,或如果已启用 NodeManager 调试属性,则节点管理器将在服务器输出日志信息中包括其他调试信息。

注意: 您不能限制节点管理器创建的日志文件的大小。默认情况下禁用向 stdout 中记录日志。

此文件位于 domain_name/servers/<server_name>/logs

节点管理器在服务器实例的 logs 目录中为服务器实例创建服务器输出日志,其名称为:

server-name.out

其中 server-name 是服务器实例的名称。

您可以通过下列方式查看特定服务器实例的节点管理器日志文件:

  • 选择“诊断”->“日志文件”。
  • 使用 WLST nmServerLog 命令。

对节点管理器可以创建的服务器输出日志的数量没有限制。

WebLogic Server 日志文件

除节点管理器创建的日志文件外,节点管理器控制下的服务器实例还具有自己的日志文件。

通过选择“诊断”->“日志文件”,再选择服务器日志文件,然后单击“查看”,可以查看服务器实例的定期日志文件。

 


常规节点管理器配置

本部分描述应用于 Java 版和脚本版节点管理器的常规节点管理器配置。应当确保已经执行了以下部分概述的所有项目。

执行常规节点管理器配置后,应当根据使用的节点管理器的版本执行在配置基于 Java 的节点管理器配置基于脚本的节点管理器中概述的配置过程。

配置计算机运行节点管理器

节点管理器必须运行于承载要使用节点管理器控制的 WebLogic Server 实例的每台计算机上。将每台计算机配置为 WebLogic Server 中的计算机,并将要使用节点管理器控制的每个服务器实例分配给运行该服务器实例的计算机。

理想情况是,节点管理器作为操作系统服务或守护程序运行,以便在系统出现故障或重新引导时,它可以自动重新启动。有关详细信息,请参阅“安装指南”中的将节点管理器安装为 Windows 服务

如果您在同一台计算机上运行节点管理器和管理服务器,并使用示范 SSL 配置,则在安装 WebLogic Server 后即可运行节点管理器。默认配置下列行为:

  • 您可以通过管理控制台使用节点管理器启动受管服务器。
  • 节点管理器监视由它启动的受管服务器。
  • 启用受管服务器的自动重新启动。节点管理器重新启动由它取消的服务器实例或通过其他方法取消的服务器实例。

使用 WLST 控制和配置节点管理器

WebLogic 脚本工具 (WLST) 是一种命令行脚本界面,系统管理员和操作员用它来监视和管理 WebLogic Server 实例以及域。可以将 WLST 作为节点管理器客户端,以远程或本地方式启动、停止和重新启动服务器实例。另外,WLST 可以获取服务器状态,并检索服务器输出日志的内容。

在生产环境中使用 nmConnect()

默认情况下,不能在生产环境中使用 nmConnect() 命令。必须执行下面的步骤后才能在生产环境中使用 nmConnect

    1. 启动管理服务器。
    2. 在管理控制台中,通过“domain_name”->“安全”->“常规”下的高级选项,更新节点管理器凭据。
    3. 以联机模式启动 WLST。
    4. 根据下面的示例运行 nmEnroll()

nmEnroll('C:/bea/user_projects/domains/prod_domain',
'C:/bea/wlserver_10.0/common/nodemanager')

运行 nmEnroll() 以确保向每个受管服务器提供正确的节点管理器用户和密码标记。一旦每个受管服务器都具备这些条件,就可以在生产环境下使用 nmConnect()

注意: 运行受管服务器的每台计算机上都必须运行 nmEnroll()。另外,应该在每台计算机上针对每个域目录运行 nmEnroll()

指定节点管理器的用户名和密码

nm_password.properties 文件包含节点管理器的用户名和密码。用它们来验证客户端(例如,管理服务器)与节点管理器之间的连接。

注意: 该用户名和密码只用来验证节点管理器和客户端之间的连接。它们与服务器管理 ID 和密码无关。

当创建域时,使用 nmEnroll() 将必要的配置文件从一台计算机复制到另一台计算机的时候,就创建了该文件。创建 nm_password.properties 后,可以使用管理控制台来更改节点管理器的密码和属性值。更改被传播给 mn_password.properties 文件,并被节点管理器采用。

注意: 如果手工编辑 nm_password.properties,必须重启节点管理器,才能使更改生效。

nm_password.properties 文件必须存在于运行节点管理器的每一台物理计算机上。但是,域中每台计算机上的节点管理器的用户名和密码不必相同。

配置计算机使用节点管理器

WebLogic Server 计算机资源将特定计算机与其承载的服务器实例关联起来,并在该系统上指定节点管理器进程的连接特性。

在管理控制台中,通过“环境”->“计算机”->“<machine_name>”->“节点管理器”页面,为运行节点管理器进程的每台计算机配置计算机定义。在“监听地址”框中输入节点管理器进行监听的 DNS 名称或 IP 地址。

配置 nodemanager.domains 文件

nodemanager.domains 文件指定节点管理器实例控制的域。这样,独立客户端就不需要明确指定域目录。

该文件必须包含为节点管理器实例控制的每个域指定域目录的条目,格式如下:

<domain-name>=<domain-directory>

当用户对域发出命令时,节点管理器将在 nodemanager.domains 中查找域目录。

该文件通过限制节点管理器客户端访问文件中所列出的域提供更高的安全。客户端只能对 nodemanager.domains 中列出的域执行命令。

如果使用 Configuration Wizard 创建了域,则已自动创建 nodemanager.domains 文件。如果需要,您可以手工编辑 nodemanager.domains 以添加域。

注意: 如果在 nodemanager.domains 中使用反斜杠字符 (\),则必须将其转义为 (\\)。

配置远程启动参数

在受管服务器的“服务器”->“配置”->“服务器启动”页面中,指定节点管理器用于启动受管服务器的启动参数。如果不为受管服务器指定启动参数,则节点管理器将使用自己的属性作为启动受管服务器的默认参数。有关详细信息,请参阅表 3-4 节点管理器属性。尽管这些默认值足以启动受管服务器,但为确保启动过程的一致性和可靠性,需要为每个受管服务器实例配置启动参数。

如果您按照“安装指南”中的将节点管理器安装为 Windows 服务中的说明,将节点管理器作为 Windows 服务运行,则必须为节点管理器控制下的每个受管服务器配置下列 JVM 属性:

  • -Xrs,适用于 Sun JVM,或
  • -Xnohup,适用于 Jrockit

如果您不设置此选项,由于以下一系列事件,重新引导系统后,节点管理器将无法重新启动受管服务器:

  1. 重新引导将导致正在运行的受管服务器在节点管理器和管理服务器操作系统服务关闭之前被取消。
  2. 在受管服务器被取消和节点管理器服务被关闭之间的时间间隔中,节点管理器将继续监视受管服务器,检测到受管服务器被取消后,将尝试重新启动它。
  3. 由于正在关闭计算机,因此操作系统不允许重新启动受管服务器。
  4. 节点管理器将受管服务器标记为“失败”,当计算机再次启动时,节点管理器不会重新启动该服务器。

请使用 -Xrs 或 -Xnohup 选项启动受管服务器,通过阻止受管服务器在关闭计算机过程中立即关闭,可以避免发生此系列事件。

设置服务器启动属性

可以使用节点管理器设置服务器的启动属性。可以在 startup.properties 中定义这些属性,或使用 WLST 等管理性实用工具将属性作为对象进行传递。下列部分将概述启动属性及其有效值的设置方法。

startup.properties

节点管理器使用 startup.properties 文件确定启动服务器时的启动和配置。针对每个服务器实例定义该文件,文件位于:

domain_home/servers/server_name/data/nodemanager/startup.properties

startup.properties 的内容源自服务器 Mbean,或者群集 Mbean(如果服务器属于群集的一部分)。有关详细信息,请参阅 Mbean 参考:

使用管理性实用工具设置启动属性

使用 WLST nmStart() 命令时,无法直接确定服务器配置。因此,必须将服务器启动属性作为 WLST 属性对象传递给 nmStart() 命令。

服务器启动属性

可以将下面的服务器启动属性传递给通过节点管理器启动的服务器。

表 3-2 服务器启动属性
属性
描述
JavaHome
定义启动服务器时使用的 Java 主目录。
Arguments
启动服务器使用的参数。
SSLArguments
启用域范围内的管理端口时将使用这些参数。
RestartMax
节点管理器可以尝试重新启动服务器的次数。
RestartDelaySeconds
节点管理器尝试重新启动服务器之前应该等待的时间(秒)。
ClassPath
启动服务器时使用的类路径。
BEAHome
启动服务器时使用的 BEA 主目录。
AdminURL
管理服务器的 URL。

注意: 只能在 startup.properties 文件中为受管服务器指定此值。

 

AutoRestart
指定节点管理器能否自动重新启动发生故障的服务器。
AutoKillIfFailed
指定节点管理器在服务器运行状况是 failed 时是否自动取消服务器。
SecurityPolicyFile
指定启动该服务器时使用的安全策略文件。
ServerIP
服务器的 IP 地址。

 

确保已定义管理服务器地址

确保要连接节点管理器进程的每个管理服务器均已定义“监听地址”。如果未定义管理服务器的“监听地址”,当节点管理器启动受管服务器时,它将引导受管服务器联系 localhost 以获取自己的配置信息。

使用管理控制台中的“服务器”->“配置”->“常规”页面设置监听地址。

设置节点管理器环境变量

节点管理器要求您在启动它前设置若干环境变量。

您可以在命令行上手工设置这些变量,也可以创建自动设置这些变量的启动脚本。WebLogic Server 提供的示例启动脚本(startNodeManager.cmd 和 startNodeManager.sh)可以设置必需的变量。

表 3-3 节点管理器环境变量
环境变量
描述
JAVA_HOME
节点管理器使用的 JDK 根目录。例如:
set JAVA_HOME=c:\bea\jdk131
节点管理器与 WebLogic Server 对 JDK 版本的要求相同。
WL_HOME
WebLogic Server 安装目录。例如:
set WL_HOME=c:\bea\wlserver_10.0
PATH
必须在 Java 可执行文件中包括 WebLogic Server bin 目录和路径。例如:
set PATH=%WL_HOME%\server\bin;%JAVA_HOME%\bin;%PATH%
LD_LIBRARY_
PATH
 
(仅 UNIX)
对于 HP UX 和 Solaris 系统,您必须将该路径包含于本地节点管理器库中。
Solaris 示例:
LD_LIBRARY_PATH:$WL_HOME/server/lib/solaris:$WL_HOME/server/lib/solaris/oci816_8
HP UX 示例:
SHLIB_PATH=$SHLIB_PATH:$WL_HOME/server/lib/hpux11:$WL_HOME/server/lib/hpux11/oci816_8
CLASSPATH
您可以将节点管理器 CLASSPATH 设置为启动节点管理器的 java 命令行上的选项,也可以设置为环境变量。
Windows NT 示例:
set CLASSPATH=.;%WL_HOME%\server\lib\weblogic_sp.jar;%WL_HOME%\server\lib\weblogic.jar

 

 


配置基于 Java 的节点管理器

建议您对节点管理器进行配置,将其作为操作系统服务运行或作为 Windows 系统上的 Windows 服务运行。默认情况下,操作系统服务启动节点管理器在 localhost:5556 上进行监听。

将节点管理器配置为接受来自远程系统的命令时,必须卸载默认的节点管理器服务,然后再重新安装,以便在非 localhost 监听地址上进行监听。

根据所使用的平台,请按照重新配置 Windows 安装的启动服务配置基于 Java 的节点管理器的安全中的说明执行。

下列部分提供基于 Java 的节点管理器特定的配置信息:

重新配置 Windows 安装的启动服务

目录 WL_HOME\server\bin(其中 WL_HOME 是 WebLogic Server 安装的顶级目录)中包含用于卸载节点管理器服务的脚本 uninstallNodeMgrSvc.cmd以及将节点管理器作为服务进行安装的脚本 installNodeMgrSvc.cmd

    1. 使用 uninstallNodeMgrSvc.cmd 删除服务。
    2. 编辑 installNodeMgrSvc.cmd 以指定节点管理器的监听地址和监听端口。

编辑 installNodeMgrSvc.cmd 时,请对 uninstallNodeMgrSvc.cmd 进行同样的编辑,以便在以后需要时可以成功卸载服务。

  1. 运行 installNodeMgrSvc.cmd 以将节点管理器作为一项服务重新安装,在更新后的地址和端口上进行监听。

配置基于 Java 的节点管理器的安全

节点管理器安全依赖于客户端和服务器之间的单向 SSL 连接。

如果要使用 WebLogic Server 脚本工具 (WLST) nmConnect 命令建立与 Java 节点管理器之间的命令行连接,则需要提供该节点管理器的用户名和密码。节点管理器将根据域的 nm_password.properties 文件验证用户名和密码。有关 nm_password.properties 的详细信息,请参阅指定节点管理器的用户名和密码

节点管理器凭据位于“安全”>“常规”>“高级选项”控制台页面中。

管理控制台用户不需要明确提供连接节点管理器所需的凭据 - 节点管理器用户名和密码在域配置中,因此可以自动提供。

基于 Java 的节点管理器的远程服务器启动安全

需要提供远程启动用户名和密码才能使用节点管理器启动服务器实例。向管理服务器提供的凭据与向受管服务器提供的凭据不同。

  • 用于受管服务器的凭据 - 调用节点管理器启动受管服务器时,它将从管理服务器中获取其远程启动名称和密码。
  • 用于管理服务器的凭据 – 调用节点管理器启动管理服务器时,可以在命令行上提供远程启动用户名,也可以从管理服务器的 boot.properties 文件中获取该用户名。创建域时,Configuration Wizard 将为管理服务器初始化 boot.properties 文件和 startup.properties 文件。

由节点管理器启动的所有服务器实例都对其启动所使用的凭据进行加密并保存于服务器特定的 boot.properties 文件中,以便用于自动重新启动。

检查 nodemanager.properties

节点管理器属性可以为基于 Java 的节点管理器进程定义各种配置设置。您可以在命令行上指定节点管理器属性,或在 nodemanager.properties 文件中进行定义,该文件创建于安装 WebLogic Server 后初次启动节点管理器时所使用的目录中。在命令行上提供的值可以替代 nodemanager.properties 中的值。

nodemanager.properties 创建于 NodeManagerHome 中指定的目录中。如果未定义 NodeManagerHome,则在当前目录中创建 nodemanager.properties。

每次启动节点管理器时,它都在当前目录中查找 nodemanager.properties,如果在该目录中找不到文件,则将创建该文件。如果节点管理器从未启动过,则无法访问该文件。

表 3-4 描述节点管理器属性。

在很多环境下,nodemanager.properties 中与 SSL 相关的属性可能是唯一需要您明确定义的节点管理器属性。但是,nodemanager.properties 还包含可能需要您指定的非 SSL 属性,具体取决于您的环境和首选项。例如:

  • 对于非 Windows 安装,适合指定 StartScriptEnabled 和 NativeVersionEnabled 属性。
  • 如果节点管理器在多主系统上运行,而您又希望控制它使用的地址和端口,请定义 ListenAddress 和 ListenPort
    表 3-4 节点管理器属性
    节点管理器属性
    描述
    默认
    LogFile(新增)
    节点管理器日志文件的位置。
    NodeManagerHome/
    nodemanager.log
    LogLimit(新增)
    节点管理器日志的最大大小(指定为整数)。达到此限制时,将创建一个新的日志文件。
    unlimited
    LogCount(新增)
    超过 LogLimit 时可创建的日志文件的最大数量。
    1
    LogAppend(新增)
    如果设置为 true,则当重新启动节点管理器时,不创建新日志文件;而是追加到现有日志。
    true
    LogToStderr(新增)
    如果设置为 true,则也将日志输出发送至标准错误输出。
    false
    LogLevel(新增)
    节点管理器日志的日志记录严重程度级别。节点管理器与 WebLogic 服务器使用相同的日志记录级别。
    INFO
    LogFormatter(新增)
    用于 NM 日志消息的格式设置程序类的名称。
    weblogic.
    nodemanager.
    server.
    LogFormatter
    CrashRecoveryEnabled(新增)
    启用系统崩溃恢复。
    false
    SecureListener(新增)
    如果设置为 true,则使用 SSL 监听器,否则使用普通的套接口
    true
    CipherSuite(新增)
    与 SSL 监听器一起使用的密码组的名称。
    TLS_RSA_EXPORT_WITH_RC4_40_MD5
    StartScriptEnabled(新增)
    如果为 true,请使用 StartScriptName 指定的启动脚本来启动服务器。有关详细信息,请参阅配置节点管理器使用启动脚本和停止脚本
    false
    StartScriptName(新增)
    位于域目录下的启动脚本的名称。
    startWebLogic.sh (UNIX)
    startWebLogic.cmd (Windows)
    StopScriptEnabled(新增)
    如果为 true,请在服务器关闭后执行 StopScriptName指定的停止脚本。有关详细信息,请参阅配置节点管理器使用启动脚本和停止脚本
    false
    StopScriptName(新增)
    服务器关闭后要执行的脚本的名称。
    DomainsFile(新增)
    nodemanager.domains 文件的名称
    NodeManagerHome/
    nodemanager.
    domains
    DomainsFileEnabled(新增)
    如果设置为 true,请使用 DomainsFile 中指定的文件。如果为 false,则使用当前目录或 WL_HOME 的域。
    true
    StateCheckInterval
    指定节点管理器执行服务器状态检查要等待的时间间隔。
    500 毫秒
    CustomIdentityAlias
    指定将私钥加载到密钥库中时的别名。将Keystores 属性设置为 CustomIdentityandCustomTrust 或 CustomIdentityAndJavaStandardTrust 时,需要使用此属性。
    CustomIdentityKey
    StoreFileName
    指定标识密钥库(即包含节点管理器的私钥的密钥库)的文件名称。将 Keystores 属性设置为 CustomIdentity 和 CustomTrust 或 CustomIdentityAndJavaStandardTrust 时,需要使用此属性。
    CustomIdentity
    KeyStorePassPhrase
    指定创建标识密钥库时定义的密码。此字段为可选还是必需取决于密钥库的类型。写入密钥库时,所有密钥库都要求密码。但读取密钥库时,某些密钥库不要求密码。WebLogic Server 只从密钥库中进行读取,因此,是否定义此属性取决于密钥库的要求。
    CustomIdentity
    KeyStoreType
    指定标识密钥库的类型。一般情况下为 JKS。此属性可选。
    java.security 中的默认密钥库类型
    CustomIdentity
    PrivateKeyPassPhrase
    指定从标识密钥库中检索 WebLogic Server 私钥所使用的密钥。将Keystores 属性设置为 CustomIdentityandCustomTrust 或 CustomIdentityAndJavaStandardTrust 时,需要使用此属性。
    JavaHome
    Java 主目录,如果受管服务器未在其“远程启动”选项卡中配置 Java 主目录,节点管理器将使用该目录启动该计算机上的受管服务器。如果在这两个位置上都未指定,节点管理器将使用节点管理器进程定义的 Java 主目录。
    JavaStandardTrustKey
    StorePassPhrase
    指定创建信任密钥库时定义的密码。此字段为可选还是必需取决于密钥库的类型。写入密钥库时,所有密钥库都要求密码。但读取密钥库时,某些密钥库不要求密码。WebLogic Server 仅从密钥库中进行读取,因此,是否定义此属性取决于密钥库的要求。将 Keystores 属性设置为 CustomIdentityandJavaStandard 信任或 DemoIdentityAndDemoTrust 时,需要使用此属性。
    KeyStores
    指明节点管理器查找其标识(私钥和数字证书)和信任(可信 CA 证书)时使用的密钥库配置。可能的值有:
      • DemoIdentityAndDemoTrust

    使用 BEA_HOME\server\lib 目录中默认配置的示范标识和信任密钥库。示范信任密钥库信任 Java 标准信任密钥库 (JAVA_HOME\jre\lib\security\cacerts) 中的所有证书颁发机构。

    \security\cacerts)

      • CustomIdentityAndJava
        StandardTrust

    使用您创建的密钥库和在 JAVA_HOME\jre\lib\
    security\cacerts
     目录下 cacerts 文件中定义的可信 CA。

      • CustomIdentityAndCustomTrust

    使用您创建的标识和信任密钥库。

    DemoIdentity
    AndDemoTrust
    ListenAddress
    运行节点管理器的计算机可在其上监听连接请求的所有地址。赞成使用此参数,而不要使用 weblogic.nodemanager.
    listenAddress
    null
    使用此设置后,节点管理器将在计算机中的所有 IP 地址上进行监听。
    ListenPort
    节点管理器监听连接请求的 TCP 端口号。赞成使用此参数,而不要使用 weblogic.nodemanager.listenPort。
    5556
    NativeVersionEnabled
    如果值为 true,则将使用操作系统的本地库。
    对于 UNIX 系统(而非 Solaris、HP-UX 或 Linux),请将此属性设置为 false,以便以非本地模式运行节点管理器。这将导致节点管理器使用由 StartScriptEnabled 属性指定的启动脚本来启动受管服务器。
    true
    NodeManagerHome
    包含下列配置和日志文件的节点管理器根目录:
    • nm_data.properties
    • nodemanager.domains
    • nodemanager.log
    • nodemanager.properties
    有关这些文件的详细信息,请参阅节点管理器配置和日志文件

    注意: 默认情况下,NodeManagerHome 是 WL_HOME/common/nodemanager。在生产环境下,您可能希望自定义节点管理器根目录的位置。

     

    NodeManagerHome
    WeblogicHome
    WebLogic Server 安装的根目录。对于未在其“远程启动”选项卡中配置根目录的受管服务器,此属性将用作 -Dweblogic.RootDirectory 的默认值。如果在这两个位置上均未指定,则节点管理器将在运行节点管理器的目录下启动受管服务器。
    keyFile
    与管理服务器进行 SSL 通信所使用的私钥文件的路径。

    注意: 仅在 WebLogic Server 从版本 7.x 升级到版本 9.x 的过程中才使用此属性。

     

    keyPassword
    访问密钥文件中的加密密钥时所使用的密码。

    注意: 仅在 WebLogic Server 从版本 7.x 升级到版本 9.x 的过程中才使用此属性。

     

    certificateFile
    指定用于 SSL 身份验证的证书文件的路径。

    注意: 仅在 WebLogic Server 从版本 7.x 升级到版本 9.x 的过程中才使用此属性。

     

不赞成使用的节点管理器属性

本部分列出了 WebLogic Server 9.x 中不赞成使用的节点管理器属性。

注意: 发布这些属性的目的在于向后兼容,不应再使用这些属性。在迁移到 WebLogic Server 9.x 时,SSL 配置将继续生效。但是,在运行节点管理器时,不使用可信密钥库。
表 3-5 不赞成使用的节点管理器属性
节点管理器属性
描述
不赞成使用的原因
CustomTrustKeyPass
Phrase(不赞成使用)
访问密钥文件中的加密密钥时所使用的密码。
通过使用单向 SSL,节点管理器不需要访问信任密钥库。
CustomTrustKeyStore
FileName(不赞成使用)
指定信任密钥库(即包含用于节点管理器的受信 CA 证书的密钥库)的文件名称。Keystores 属性设置为 CustomIdentityandCustomTrust 时,需要使用此属性。
通过使用单向 SSL,节点管理器不需要访问信任密钥库。
CustomTrustKeyStore
PassPhrase
(不赞成使用)
指定创建信任密钥库时定义的密码。此字段为可选还是必需取决于密钥库的类型。写入密钥库时,所有密钥库都要求密码。但读取密钥库时,某些密钥库不要求密码。WebLogic Server 只从密钥库中进行读取,因此,是否定义此属性取决于密钥库的要求。
通过使用单向 SSL,节点管理器不需要访问信任密钥库。
CustomTrustKeyStore
Type(不赞成使用)
指定信任密钥库的类型。一般情况下为 JKS。此属性可选。
通过使用单向 SSL,节点管理器不需要访问信任密钥库。
JavaStandardTrustKey
StorePassPhrase
(不赞成使用)
指定创建信任密钥库时定义的密码。此字段为可选还是必需取决于密钥库的类型。写入密钥库时,所有密钥库都要求密码。但读取密钥库时,某些密钥库不要求密码。WebLogic Server 仅从密钥库中进行读取,因此,是否定义此属性取决于密钥库的要求。当 Keystores 属性设置为 CustomIdentityandJavaStandardTrust 或 DemoIdentityAndDemoTrust 时,需要使用此属性。
通过使用单向 SSL,节点管理器不需要访问信任密钥库。

配置节点管理器使用启动脚本和停止脚本

您可以将节点管理器配置为使用脚本启动受管服务器或在服务器完成关闭后执行脚本。可以使用这些脚本在服务器启动前或关闭后执行需要执行的任务。安装和卸载远程磁盘是一个可以使用脚本执行的任务示例。

注意: 节点管理器使用启动脚本执行任何所需要的配置,然后再启动服务器。相反,停止脚本将在服务器关闭后执行。

使用启动脚本

您可以使用启动脚本指定所需的各个启动属性,然后执行启动时需要执行的任何其他任务。要定义启动脚本,请执行下列步骤:

  1. 在 nodemanager.properties 文件中,将 StartScriptEnabled 属性设置为 true。默认值为 false。如果启动脚本名为 startWebLogic.sh 或 startWebLogic.cmd,节点管理器将其中一个脚本用作默认值。
  2. 如果您要指定自定义启动脚本,请将 StartScriptName 属性设置为 nodemanager.properties 文件中的脚本的名称。

使用停止脚本

您可以使用停止脚本执行服务器关闭后需要执行的任务。要定义停止脚本,请执行下列步骤:

  1. 在 nodemanager.properties 文件中,将 StopScriptEnabled 属性设置为 true
  2. 请将 StopScriptName 属性设置为 nodemanager.properties 文件中的脚本的名称。

下例显示了可以用于卸载 UNIX 系统上的磁盘的一个停止脚本:

#!#!/bin/sh
FS=/cluster/d2
if grep $FS /etc/mnttab > /dev/null 2>&1 ; then
sync
PIDS=`/usr/local/bin/lsof $FS | awk
'{if ($2 ~/[0-9]+/) { print $2} }' | sort -u`
kill -9 $PIDS
sleep 1
sync
/usr/sbin/umount -f $FS
fi

在基于 Java 的节点管理器中使用 SSL

管理服务器和受管服务器通过单向 SSL 与基于 Java 的节点管理器进行通信。

默认的 WebLogic Server 安装中包括示范标识和信任密钥库,方便您直接使用 SSL。密钥库(DemoIdentity.jks 和 DemoTrust.jks)安装在 WL_HOME/server/lib 中。对于测试和开发来说,密钥库配置是完全的。

为生产环境配置 SSL 包括获取节点管理器以及与节点管理器通信的每个管理服务器和受管服务器的标识和信任,然后使用适当的标识和信任配置节点管理器、管理服务器和所有受管服务器。另外,还必须考虑使用主机名验证和管理端口。要配置生产 SSL 组件,请参阅确保 WebLogic Server 安全中的配置 SSL

在多台计算机上配置节点管理器

如果您的域的受管服务器位于多台物理计算机上,则必须确保每台计算机上都已经安装并配置节点管理器。您可以使用 WLST 命令 nmEnroll 将全部所需的域和配置信息从一台计算机复制到另外一台计算机。有关详细信息,请参阅“WebLogic 脚本工具”中的使用 WLST 控制和配置节点管理器和 nmEnroll()

将节点管理器配置为 xinetd 服务

配置节点管理器作为 inetd 或 xinetd 服务运行时,下面的注意事项适用:

  • 确保已定义 NodeManagerHome 和其他系统属性。
  • 如果用 libwrap 配置了 xinetd,则应该添加 NOLIBWRAP 标志。
  • 确保 hosts.deny 和 hosts.allow 文件配置正确。
  • 可能还需要其他配置,具体取决于您的网络环境。

下例说明如何在 xinetd 内配置节点管理器:

# 默认值:off
# 描述:将节点管理器作为服务
service nodemgrsvc
{
   type = UNLISTED
   disable = no
   socket_type = stream
   protocol = tcp
   wait = yes
   user = <username>
   port = 5556
   flags = NOLIBWRAP
   log_on_success += DURATION HOST USERID
   server = <path-to-jave>/java
   env = CLASSPATH=<cp> LD_LIBRARY_PATH=<ldpath>
   server_args = -client -DNodeManagerHome=<NMHome> <java options>
   <nodemanager options> weblogic.NodeManager -v
}

 


配置基于脚本的节点管理器

SSH 节点管理器是一个外壳脚本 wlscontrol.sh,位于 {WL_HOME}/common/bin/ 中。wlscontrol.sh 必须在每台承载要使用节点管理器控制的服务器实例的计算机上存在。可以对该脚本进行自定义以满足站点特定需求。

运行节点管理器或节点管理器客户端的每台计算机上都必须具有 SSH 客户端可执行文件。该脚本还必须位于其运行用户 ID 的路径中。通常,SSH 客户端是 Unix 或 Linux 安装的标准部分。

下列部分介绍如何配置基于脚本的节点管理器:

创建节点管理器用户

运行节点管理器之前,应该创建 UNIX 专用用户帐户来执行节点管理器功能。此用户应添加到将承载 SSH 节点管理器的所有计算机以及将承载节点管理器客户端(包括管理服务器)的所有计算机。

替代默认 SSH 端口

节点管理器使用的默认 SSH 端口为 22。可以通过下列方式替代该设置:

    • 设置 ~/.ssh/config文件中的 Port= 参数以设置单个用户的默认端口。
    • 设置 /etc/ssh_config 文件中的 Port= 参数以设置整个系统的默认端口。
    • 使用下列系统属性启动管理服务器:
-Dweblogic.nodemanager.ShellCommand="ssh -o PasswordAuthentication=no -p %P %H wlscontrol.sh -d %D -r %R -s %S %C"

启动服务器后,可以在管理服务器的配置文件中编辑 SSH 端口。

配置基于脚本的节点管理器安全

节点管理器 SSH 外壳脚本依赖于基于 SSH 用户的安全,以便提供不同计算机上用户之间的安全信任关系。不需要身份验证。您可以创建用于运行节点管理器命令和脚本的 UNIX 用户帐户(通常是每个域一个)。以该用户身份登录的用户无需提供用户名和密码,即可以发出节点管理器命令。

注意: 还必须确保节点管理器和 WebLogic Server 命令位于运行它们的 UNIX 用户 ID 的路径中。

WebLogic Server 脚本的安全

要执行服务器迁移和其他任务,执行 wlscontrol.sh 等脚本的用户 ID 必须具有足够的安全权限。这包括能够通过网络接口启动或停止 IP 地址。

当群集主管理器检测到服务器已经出现故障时,它将执行服务器迁移。然后它将使用 SSH 启动目标计算机上的脚本开始迁移。目标计算机上的脚本将以在群集主管理器上运行服务器的用户 ID 运行。

执行服务器迁移所需要的命令是 ifconfig 和 arping。由于这些脚本需要提升的 OS 权限,注意到这样可以防止潜在的安全漏洞是很重要的。

通过使用 sudo,可以配置自己的 SSH 以仅允许使用提升权限运行 ifconfig 和 arping。

基于脚本的节点管理器的远程服务器启动安全

需要提供远程启动用户名和密码才能使用节点管理器启动服务器实例。向管理服务器提供的凭据与向受管服务器提供的凭据不同。

  • 用于受管服务器的凭据 - 调用节点管理器启动受管服务器时,它将从管理服务器中获取其远程启动名称和密码。
  • 用于管理服务器的凭据 – 调用节点管理器启动管理服务器时,可以在命令行上提供远程启动用户名,也可以从管理服务器的 boot.properties 文件中获取该用户名。创建域时,Configuration Wizard 将为管理服务器初始化 boot.properties 文件和 startup.properties 文件。

由节点管理器启动的所有服务器实例都对其启动所使用的凭据进行加密并保存于服务器特定的 boot.properties 文件中,以便用于自动重新启动。

生成和分发键值对

基于脚本的节点管理器使用两种类型的键值对。本部分包含向将承载节点管理器客户端或服务器的计算机分发键值对的说明。

共享键值对

此选项向将承载节点管理器客户端或服务器的所有计算机分发相同的键值对。

最简单的实现方式是设置 LAN,以在每台计算机上都安装节点管理器用户主目录。这样,计算机就能够使用键值对。否则

    1. 使用 SSH 安装提供的 ssh-keygen 命令为用户生成 RSA 键值对。

私钥和公钥的默认位置分别是 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub

如果这些密钥存储于其他位置,请修改 ShellCommand 模板,在 ssh 命令中添加一个指定密钥位置的选项。

    1. 将公钥追加到节点管理器计算机上的 ~/.ssh/authorized_keys file 中。例如:

command="/home/bea/server90/common/nodemanager/nodemanager.sh" 1024 33 23...2323

其中,您可以将示例中的以下字符串替换为 id_rsa.pub 中存储的自己生成的公钥

1024 33 23...2323

注意: 前缀 command=<command> 可以确保使用公钥与计算机建立会话的用户只能运行指定的命令 nodemanager.sh。这可以确保用户只能执行节点管理器功能,防止未经授权的用户访问数据、系统实用工具以及计算机上的其他资源。
    1. 手工向将承载节点管理器服务器实例或客户端的每台计算机分发键值对。
    2. 在客户端计算机上执行下面的命令,以检查节点管理器客户端是否可以访问节点管理器:

/home/bea$ ssh montgomery VERSION

这个响应表明客户端访问节点管理器成功:

+OK NodeManager v9.1.0

各个键值对

在将承载节点管理器客户端的每台计算机上:

  1. 为前一部分中步骤 1 介绍的节点管理器用户生成独立的 RSA 键值对。
  2. 将公钥追加到前一部分中步骤 2 介绍的计算机的 ~/.ssh/authorized_keys 文件中。

 


启动节点管理器和服务器

下列部分提供有关如何启动和运行基于 Java 的节点管理器和基于脚本的节点管理器的信息。也提供有关使用节点管理器启动服务器的建议步骤的信息。

将节点管理器作为启动服务运行

建议您安装节点管理器以作为启动服务运行。这允许节点管理器在每次重新启动系统时自动启动。

默认情况下,节点管理器仅监听本地主机。如果希望节点管理器接受来自远程系统的命令时,您必须卸载默认节点管理器服务,然后再重新安装,以便在非 localhost 监听地址上进行监听。

使用脚本启动基于 Java 的节点管理器

虽然建议将节点管理器作为操作系统服务来运行,但也可以在命令提示符处或通过脚本手工启动节点管理器。设置节点管理器环境变量中描述了节点管理器需要的环境变量。

节点管理器的示例启动脚本安装于 WL_HOME\server\bin 目录中,其中 WL_HOME 是 WebLogic Server 的顶级安装目录。在 Windows 系统上使用 startNodeManager.cmd,而在 UNIX 系统上使用 startNodeManager.sh

该脚本设置了必需的环境变量,并在 WL_HOME/common/nodemanager 中启动节点管理器。节点管理器使用该目录作为输出和日志文件的工作目录。要指定其他工作目录,请使用文本编辑器编辑启动脚本,并将 NODEMGR_HOME 变量的值设置为所需要的目录。

编辑示例启动脚本,以确保命令限定符可以为节点管理器进程设置正确的监听地址和端口号。

启动基于 Java 的节点管理器的命令语法

启动基于 Java 的节点管理器的语法是:

java [java_option=value ...] -D[nodemanager_property=value] -D[server_property=value] weblogic.NodeManager

其中:

    • java_option 是 java 可执行文件的直接参数,例如 -ms 或 -mx
注意: 如果您没有设置 CLASSPATH 环境变量,请使用 -classpath 选项标识所需要的节点管理器类。
    • nodemanager_property 是节点管理器属性。不要在命令行上提供节点管理器属性值,而应编辑 nodemanager.properties 文件,该文件安装在启动节点管理器的目录下。有关详细信息,请参阅表 3-4 节点管理器属性

您在命令行上提供的节点管理器属性值将替代 nodemanager.properties 中的值。

    • server_property 是节点管理在命令行上接受的服务器级属性,其中包括:
  • bea.home - 当前计算机上的服务器实例所使用的 BEA 主目录。
  • java.security.policy - 当前计算机上的服务器实例所使用的安全策略文件的路径。

注意: 对于 UNIX 系统:

注意: 如果您在UNIX 操作系统(而不是 Solaris 或 HP UX)上运行节点管理器,不能在启动节点管理器时向 java 命令行传递的任何参数中包含任何空格字符。例如,由于名称“big iron”中存在空格字符,此命令会失败。

-Dweblogic.Name="big iron"

注意: 对于 UNIX 系统(而不是 Solaris、HP-UX 和 Linux 操作系统),启动节点管理器时,您必须在命令行上禁用 weblogic.nodemanager.nativeVersionEnabled 选项(或在 nodemanager.properties 中设置属性),才能使用纯 Java 版本。有关详细信息,请参阅检查 nodemanager.properties

运行基于脚本的节点管理器

要使用 SSH 节点管理器命令外壳,请使用下面的命令行选项启动管理服务器:

-Dweblogic.nodemanager.ShellCommand='ssh -o PasswordAuthentication=no %H wlscontrol.sh -d %D -r %R -s %S %C'

weblogic.nodemanager.ShellCommand 特性指定用于与远程 SSH 节点管理器进行通信以及针对节点管理器控制的服务器实例执行节点管理器功能的命令模板。

模板假定 wlscontrol.sh 位于承载节点管理器的远程计算机的默认路径下。

ShellCommand 语法为:

ssh -o PasswordAuthentication=no %H wlscontrol.sh -d %D -r %R -s %S %C'

表 3-5 中列出了可能的命令行选项。表 3-5 中列出了可能的参数值。

例如,如果键入以下命令,

ssh -o PasswordAuthentication=no wlscontrol.sh myserver start

SSH 服务器的监听地址和端口默认为远程计算机上节点管理器所使用的监听地址和端口。域名和域目录假定为目标服务器实例 myserver 所指定的根目录。

此命令:

ssh -o PasswordAuthentication=no 172.11.111.11 wlscontrol.sh -d ProductionDomain -r ProductionDomain -s ServerA'

向 domains/ProductionDomain 目录下名为 ProductionDomain 的域中名为 ServerA 的服务器实例发出 START 命令。

ssh 命令必须包括字符串:

-o PasswordAuthentication=no

该字符串传递 ssh PasswordAuthentication 选项。如果值为 yes,则会导致客户端在尝试从控制台进行读取时被挂起。

表 3-6 wlscontrol.sh 命令行选项
参数
描述
-n
指定节点管理器根目录
-s
指定服务器名称
-r
指定域目录
-x
设置节点管理器调试标志。
-c
启用服务器启动脚本。
-f
服务器启动脚本的名称。
-p
服务器停止脚本的名称。
-h
打印 wlscontrol.sh 的用法。

 

表 3-7 外壳命令模板
参数
描述
默认
%H
SSH 服务器的主机名
NodeManagerMBean.ListenAddress
%P
SSH 服务器的端口号
NodeManagerMBean.ListenAddress
22
%S
WebLogic 服务器名称
none
%D
WebLogic 域名
ServerStartMBean.RootDirectory
%R
域目录(服务器根目录)
ServerStartMBean.RootDirectory
%C
节点管理器脚本命令
  • START - 启动服务器
  • KILL - 取消服务器
  • STAT - 获取服务器状态
  • GETLOG - 检索服务器输出日志。
  • VERSION - 返回节点管理器版本。
none

 

停止节点管理器

要停止节点管理器,请关闭运行它的命令外壳。

 

posted on 2016-12-28 10:40  Caleb_man  阅读(1770)  评论(0)    收藏  举报

导航