8. 其他设置信息

本章中记载了其他监视设置和通知设置的相关信息。

本章中说明的项目如下。

8.1. 警报服务

8.1.1. 何谓警报服务?

EXPRESSCLUSTER 警报服务是将EXPRESSCLUSTER上的业务的异常通知异地管理者的功能。

通知方法有以下3种。根据各自的通知方法,通知的现象各不相同。

  1. E-mail通知
    在显示Cluster WebUI的警报信息的时刻,用邮件通知警报内容。
  2. 网络警报灯通知
    启动服务器和服务器宕机时,网络警报灯通知,显示服务器状态。服务器正常结束时,网络警报灯关闭。
    邮件通知和网络警报灯通知彼此独立运行。
  3. SNMP Trap发送
    在Cluster WebUI显示警报消息时,通过SNMP Trap发送警报内容。
2台服务器,服务器中的警报服务,网络警告灯,电子邮件

图 8.1 警报服务

  • 由于进行E-Mail通知,所以即使是远离管理终端也可以及早获悉故障的发生。

  • 邮件收信地址也可以设为手机。

  • 通过网络警报灯亮,可以在视觉上判断故障。

  • 通过网络警告灯的音频文件回放,可以从声音判断故障。

  • SNMP Trap可向设置的通报接收服务器发送故障内容。

通过电子邮件通报时,使用以下格式通报Alert内容。

邮件名
    EXPRESSCLUSTER
正文
    Message: Server [已宕机服务器名] has been stopped.
    Type: nm
    ID: 2
    Host: [发件人 服务器名]
    Date: [发送时间戳]

8.1.2. 警报服务的注意事项

  • 要使用本功能,需要注册EXPRESSCLUSTER X Alert Service 5.0 的认证。

  • 本功能以发生故障的第一时间通报为目的, 而不进行EXPRESSCLUSTER上的故障调查,原因分析。发生故障时的具体原因需要用EXPRESSCLUSTER的日志或syslog等其他手段进行判断。

  • 在使用网络警告灯功能时,必须设置警告灯厂商提供的等同于rsh 的命令。

8.1.3. 邮件通知的运行

8.1.4. 网络警报灯通报的运行

网络警报灯执行如下各种操作。

  1. 服务器启动时
    如果服务器正常启动,则亮绿灯。
  2. 服务器结束时
    如果服务器正常结束,则熄灯。
  3. 服务器宕机时
    服务器宕机时,红灯闪烁。由于是从正常服务器接受其他异常服务器查出的异常状态的通报,因此当所有服务器宕机时,无法对最后宕机的服务器的警报灯进行故障通知。

网络警报灯一旦灯亮或闪烁了,除非集群关闭否则不熄灭,所以想要灯灭时请执行[clplamp]命令。关于[clplamp]命令,请参考本指南的"9. EXPRESSCLUSTER命令参考"的"关闭网络警告灯命令(clplamp命令)"。

音频文件回放对应的网络警告灯(本公司指定产品)时,可以设置音频文件回放与灯亮和灯灭连动。

8.1.5. SNMP Trap发送动作

8.2. SNMP联动

8.2.1. 何谓SNMP联动?

SNMP联动基于EXPRESSCLUSTER MIB定义,可通过EXPRESSCLUSTER的SMNP Trap发送,以及来自SNMP Manager的SNMP获取信息。

2台服务器,服务器中的警报服务,SNMP Manager

图 8.2 SNMP联动

8.2.2. 何谓EXPRESSCLUSTER MIB的定义?

从SNMP联动获取的信息汇总为MIB定义文件。

在使用后面提到的SNMP Trap发送以及从SNMP获取信息的功能时,都需要MIB定义文件。

需要用SNMP Manager接收来自EXPRESSCLUSTER的SNMP Trap,或用SNMP Manager获取集群状态时,请在SNMP Manager中嵌入EXPRESSCLUSTER MIB定义文件。

关于如何在SNMP Manager中嵌入MIB定义文件,请参照各SNMP Manager的使用手册。

EXPRESSCLUSTER MIB定义文件位于EXPRESSCLUSTER X DVD-ROM下。

<EXPRESSCLUSTER X DVD-ROM>\Common\<版本编号>\mib

各MIB定义文件有以下几种含义。

No.

MIB 定义文件

描述

NEC-CLUSTER-SMI.mib

EXPRESSCLUSTER MIB树的根路径已定义。

NEC-CLUSTER-EVENT-MIB.mib

与EXPRESSCLUSTER的SNMP Trap发送功能关联的Trap 定义或MIB已定义。

NEC-CLUSTER-MANAGEMENT-MIB.mib

与EXPRESSCLUSTER的以下信息关联的MIB已定义。

  • 集群信息

  • 服务器信息

  • 组信息

SNMP Manager嵌入的文件不同,可利用的功能也不同。

接收来自的EXPRESSCLUSTER的SNMP Trap时

1. NEC-CLUSTER-SMI.mib
2. NEC-CLUSTER-EVENT-MIB.mib

利用SNMP获取信息时

1. NEC-CLUSTER-SMI.mib
3. NEC-CLUSTER-MANAGEMENT-MIB.mib

8.2.3. 何谓SNMP Trap发送?

SNMP Trap发送是指将与Cluster WebUI的警报消息相同的内容发送至SNMP Manager的功能。

使用Trap送信功能,还需要设定SNMP Trap发送地址。请参照本指南的"2. 参数的详细信息" - "集群属性" - "Alert服务标签页"的SNMP Trap的"送信地址设置"进行设定。

发送的Trap用NEC-CLUSTER-EVENT-MIB定义。

已用NEC-CLUSTER-EVENT-MIB定义的各MIB对象如下所示。

clusterEventNotifications组

已定义发送Trap的组。此处已定义的各MIB对象的含义如下。

No.

SNMP TRAP OID

描述

clusterEventInformation

表示信息级别Alert的Trap。
添加clusterEvent组的MIB对象。

clusterEventWarning

表示警报级别Alert的Trap。
添加clusterEvent组的MIB对象。

clusterEventError

表示异常级别Alert的Trap。
添加clusterEvent组的MIB对象。

clusterEvent组

已定义向Trap添加信息的组。此处已定义的各MIB对象的含义如下。

No.

SNMP OID

描述

clusterEventMessage

表示Alert信息。

clusterEventID

表示事件ID。

clusterEventDateTime

表示Alert的发送时间。

clusterEventServerName

表示Alert的发送来源服务器。

clusterEventModuleName

表示Alert的发送来源模块。

8.2.4. 何谓用SNMP获取信息?

利用SNMP协议,可获取部分EXPRESSCLUSTER的配置信息,状态信息。但是,EXPRESSCLUSTER本身并不具备SNMP代理功能。需另行安装Net-SNMP snmpd Daemon作为SNMP代理。

何谓SNMP代理?

根据SNMP Manager(网络管理软件)提出的获取信息要求(GetRequest, GetNextRequest) ,反馈(GetResponse)各种配置信息,状态信息的功能。

注解

通常,在安装EXPRESSCLUSTER时,若存在Windows SNMP Service,则将自动登录SNMP联动功能,若不存在则不会登录。

此时需要手动登录。详细步骤请参照《安装&设置指南》的"安装EXPRESSCLUSTER" - "安装EXPRESSCLUSTER Server" - "如何手动设置SNMP联动功能"。

8.2.5. 关于可通过SNMP联动获取的MIB

可通过SNMP联动功能获取的MIB用NEC-CLUSTER-MANAGEMENT-MIB定义。

已用NEC-MANAGEMENT-MIB定义的各MIB对象如下所示。

clusterGeneral组

可获取集群联动信息的组。此处已定义的各MIB对象的含义如下。

No.

SNMP OID

表示集群名。

clusterName

表示集群名。

clusterComment

表示集群的注释。

clusterStatus

表示目前集群的状态。

以下是MIB的获取值与Cluster WebUI状态的对应。

MIB值       状态
----------------------
normal      [正常]
caution     [警告]
error       [异常]
unknown     -

clusterServer组

可获取服务器整合信息的组。获取clusterServerTable时的索引按服务器优先顺序排列。此处已定义的各MIB对象的含义如下。

No.

SNMP OID

描述

clusterServerLocalServerIndex

表示目前接受SNMP信息获取要求的服务器索引(clusterServerIndex)。

clusterServerTable

表示服务器信息表。

clusterServerEntry

表示服务器的信息列表。
此列表的索引是clusterServerIndex。

clusterServerIndex

表示唯一一个能识别各服务器的索引。

clusterServerName

表示服务器名。

clusterServerComment

表示服务器的注释。

clusterServerStatus

表示目前的服务器状态。

以下是MIB的获取值与Cluster WebUI状态的对应。

MIB值    状态
--------------------------------------
online    [已启动]
caution   [保留(网络分区未解决)]
isolated  [保留(宕机后重新启动)]
offline   [已停止]
unknown   [不明]

clusterServerPriority

表示服务器的优先顺序。

clusterServerProductName

表示服务器中已安装的EXPRESSCLUSTER产品名称。

clusterServerProductVersion

表示服务器中已安装的EXPRESSCLUSTER产品版本。

clusterServerProductInstallPath

表示服务器已安装的EXPRESSCLUSTER之安装路径。
*返回值是ASCII 字符以外时,可执行发生乱码。

clusterServerPlatformName

表示服务器的平台名称。

clusterGroup组

可获取组整合信息的组。此处已定义的各MIB对象的含义如下。

No.

SNMP OID

描述

clusterGroupTable

表示组信息表。

clusterGroupEntry

表示服务器的信息列表。
此列表的索引是clusterGroupIndex。

clusterGroupIndex

表示唯一一个能识别各组的索引。

clusterGroupName

表示组名。

clusterGroupComment

表示组的注释。

clusterGroupType

表示组的类型。
以下是MIB的获取值与组类型的对应。
MIB值           组的类型
--------------------------------
failover        失效切换组
cluster         管理组

clusterGroupStatus

表示目前的组状态。
以下是MIB的获取值与Cluster WebUI状态的对应。
MIB值           状态
---------------------------------
online          [已启动]
onlineFailure   [启动失败]
offlineFailure  [停止失败]
offline         [已停止]
unknown         [不明]
onlinePending   [启动中]
offlinePending  [停止中]

clusterGroupCurrentServerIndex

表示目前组正在启动的服务器索引(clusterServerIndex)。
组停止时,返回值为"-1"。

8.3. 服务器组间自动失效切换时的等待宽限时间

8.3.1. 何谓等待宽限时间?

服务器间的自动失效切换时,只在指定的时间内等待失效切换的开始。从检测到服务器宕机开始,到过了宽限时间后,开始执行失效切换。

8.3.2. 等待宽限时间条件

  • 等待下述设定的组的失效切换。

    • 选中[信息]标签页- [使用服务器组设置]

    • 在[启动服务器]标签页- [可启动的服务器组]中多个服务器组被指定

    • 选中[属性]标签页- [失效切换属性] - [自动失效切换] - [优先服务器组内的失效切换政策],且选中[在服务器组之间只有手动失效切换有效]

  • 在以下情况下,不进行宽限时间的等待。

    • 对同一个服务器组中的服务器进行失效切换时

    • 通过服务器宕机通知查出服务器宕机时

    • 选中[执行强制停止脚本],成功执行强制停止脚本时,以及当满足不执行强制停止脚本的条件时

    • 强制停止类型设置为[不使用]以外,执行强制停止成功时,以及满足不执行强制停止条件时

    • NP解决资源被设置时

8.3.3. 显示/更改宽限时间等待

在[服务器组间的失效切换时的宽限时间]中指定等待时间。

指定0时不进行等待。

8.3.4. 宽限时间等待的注意事项

在宽限时间等待中,对失效切换对象的组进行操作时,取消宽限时间等待,不执行失效切换。

在宽限时间等待中,在可以确认宕机的服务器的生存时,取消宽限时间,不执行失效切换。

在宽限时间等待中,失效切换目标服务器宕机时,失效切换开始可执行会比宽限时间等待长。

8.4. Witness 服务器服务

8.4.1. 何谓Witness 服务器服务?

从集群内的各服务器接收Witness 心跳,将各服务器的心跳接收状况作为应答发送的服务。在集群外的服务器中安装使用。

Witness服务器和2台集群服务器

图 8.3 Witness 服务器服务

8.4.2. Witness 服务器服务相关的注意事项

  • Witness 服务器服务在Node.js 环境中运行。因此在安装Witness服务器服务之前,需要先安装Node.js。

8.4.3. Witness 服务器服务运行所需的环境

已确认以下运行环境。

OS

执行环境

版本

Windows Server 2012 R2

Node.js 10.13.0

4.1.0

Windows Server 2019

Node.js 12.10.0

4.2.0

Red Hat Enterprise Linux 7.4

Node.js 8.12.0

4.1.0

Red Hat Enterprise Linux 8.0

Node.js 12.10.0

4.2.0

8.4.4. 安装Witness 服务器服务的方法

使用Node.js 环境的npm 命令进行安装。将Witness服务器服务模块存放在任意的文件夹内,执行以下命令。

> npm install --global clpwitnessd-<version>.tgz

请从安装盘 DVD-ROM中的以下路径获取Witness服务器的服务模块。

Common\<version>\common\tools\witnessd\clpwitnessd-<version>.tgz

8.4.5. Witness 服务器的设置方法

要变更Witness服务器服务设置时,直接编辑设置文件。以下命令执行结果的第1行中打开显示的文件夹。

> npm list --global clpwitnessd

(执行结果示例)

C:\Users\Administrator\AppData\Roaming\npm

-- clpwitnessd@4.1.0

将保存在打开的文件夹下的node_modules\clpwitnessd中的clpwitnessd.conf.js用记事本等文本编辑器进行编辑。

设置项目如下。

项目

默认值

说明

http.enable

True

指定是否执行HTTP服务器。
true: 执行
false: 不执行

http.port

80

指定HTTP服务器的通信端口号。

http.keepalive

10000

指定HTTP服务器的keepalive时间。
[毫秒]

https.enable

False

指定是否执行HTTPS服务器。
true: 执行
false: 不执行

https.port

443

指定HTTPS服务器的通信端口号。

https.keepalive

10000

指定HTTPS服务器的keepalive时间。
[毫秒]

https.ssl.key

server_key.pem

指定在HTTPS服务器中使用的秘钥文件。

https.ssl.crt

server_crt.pem

指定在HTTPS服务器中使用的证书文件。

log.directory

.

指定日志输出目标文件夹。

log.level

info

指定日志输出级别。
error: 只进行错误日志输出
warn: 输出error + 警告日志
info: 输出warn + 信息日志
debug:输出 info + 详细日志

log.size

1024 * 1024 * 512

指定日志的轮循大小。
[字节]

data.available

10000

指定集群服务器的通信状况数据的默认有效期限。
[毫秒]

8.4.6. Witness 服务器服务的执行方法

执行以下命令,在前台启动Witness服务器服务。Windows服务或者作为Linux后台的执行方法请参考下面"Witness 服务器服务的OS服务化"。

> clpwitnessd

8.4.7. Witness 服务器服务的OS服务化

想要在OS启动时开始Witness 服务器服务,需要作为OS服务进行注册。

Witness 服务器服务作为OS服务的注册方法(Windows 服务控制管理器,Linux systemd 时) 如示例所示。此外,OS服务的注册方法因环境不同而不同,因此请根据使用的环境参考以下信息进行设置。

Windows 服务控制管理器的注册

以下是使用npm package winser 进行注册的步骤。

  1. 使用npm 命令,安装winser。执行以下命令, winser package从npm存储库中下载后,进行安装。

    > npm install --global winser

  2. 在任意的场所创建执行服务用的文件夹。在默认设置中,该文件夹用于保存日志文件,SSL秘钥文件,SSL证书文件。

  3. 在用于执行服务的文件夹的根目录下,创建一个使用winser的用于服务注册用的package.json 文件。路径的分隔符中请输入两个 \ 。此外,虽然会因字符数的原因被换行,但是 "start" 中指定的路径实际上是1行。

    {
      "name": "clpwitnessd-service",
      "version": "1.0.0",
      "license": "UNLICENSED",
      "private": true,
      "scripts": {
        "start": "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\clpwitnessd.cmd"
      }
    }
    
  4. 执行winser命令,注册和启动服务。

    > winser -i -a

  5. 从[控制面板]-[管理工具]-[服务]中确认在pacage.json的"name"里指定名称的服务(ex. clpwitnessd-service)已被注册。

Linux systemd 的注册

创建systemd 的Unit文件,进行注册的步骤如下。

  1. 在任意的场所创建执行服务用的目录。在默认设置中,该文件夹用于保存日志文件,SSL秘钥文件,SSL证书文件。
    (ex. /opt/clpwitnessd)
  2. /etc/systemd/system 中创建 Witness服务器服务的Unit文件。
    (ex. clpwitnessd.service)
    [Unit]
    Description=EXPRESSCLUSTER Witness Server
    After=syslog.target network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/clpwitnessd
    WorkingDirectory=/opt/clpwitnessd
    KillMode=process
    Restart= always
    
    [Install]
    WantedBy=multi-user.target
    
  3. 执行systemctl 命令注册,启动服务。

    # systemctl enable clpwitnessd
    # systemctl start clpwitnessd