8. その他の設定情報

本章では、その他の監視設定や通報設定に関する情報について記載します。

本章で説明する項目は以下のとおりです。

8.1. アラートサービス

8.1.1. アラートサービスとは?

CLUSTERPRO アラートサービスは、CLUSTERPRO 上の業務の異常を遠隔地にいる管理者に通知する機能です。

通知方法は、以下の 3 つがあります。それぞれの通知方法によって、通知が行われる事象がことなります。

  1. E メール通報
    Cluster WebUI のアラートメッセージが表示されるタイミングで、アラートの内容をメール 通報します。
  2. ネットワーク警告灯通報
    サーバ起動時とサーバダウン時にネットワーク警告灯通報しサーバの状態を示します。サーバが正常に終了するときは、ネットワーク警告灯を消灯します。
    E メール通報とネットワーク警告灯通報は、お互いが独立して動作します。
  3. SNMP トラップ送信
    Cluster WebUI のアラートメッセージが表示されるタイミングで、アラートの内容をSNMP トラップ送信します。
2台のサーバ、サーバ内にあるアラートサービス、ネットワーク警告灯、Eメール

図 8.1 アラートサービス

  • E メール通報を行うので、管理端末から離れている場合でも、障害発生をいち早く 検知することができます。
  • メール送信先を携帯電話にすることも可能です。
  • ネットワーク警告灯の点灯により、障害を視覚的に判断することができます。
  • ネットワーク警告灯の音声ファイルの再生により、障害を音声で判断することも可能です。
  • 通報先に設定したサーバに障害の内容をSNMP トラップ送信することができます。

E メール通報では下記のフォーマットでアラートの内容をメール通報します。

件名
    CLUSTERPRO
本文
    Message: Server [ダウンしたサーバ名] has been stopped.
    Type: nm
    ID: 2
    Host: [メール送信元 サーバ名]
    Date: [送信タイムスタンプ]

8.1.2. アラートサービスに関する注意事項

  • Eメール通報とネットワーク警告灯通報機能を使用するには CLUSTERPRO X Alert Service 5.0 のライセンスを登録する必要があります。

  • 本機能は、障害発生の第一報を通報することが目的であり、CLUSTERPRO上の 障害の調査や原因究明を行うものではありません。障害が発生した場合、その詳細な原因は、CLUSTERPRO のログや、syslog など他の手段で原因を判断する必要があります。

  • ネットワーク警告灯機能を使用する場合は、警告灯のメーカーがサポートする rsh 相当のコマンドのセットアップが必要です。

8.1.3. メール通報の動作

8.1.4. ネットワーク警告灯通報の動作

ネットワーク警告灯は、以下の様な動作を行います。

  1. サーバ起動時
    サーバが正常に起動すると緑を点灯します。
  2. サーバ終了時
    サーバが正常に終了すると、消灯します。
  3. サーバダウン時
    サーバがダウンしたとき、赤を点滅します。通報は、正常なサーバがほかの異常なサーバの状態を検出して送信されるため、全てのサーバがダウンした場合、最後にダウンしたサーバのネットワーク警告灯には障害を通知することができません。

一旦点灯または点滅したネットワーク警告灯は、クラスタシャットダウン時以外は消灯しませんので、消灯させたい場合は、[clplamp] コマンドを実行してください。[clplamp] コマンドについては本ガイドの「9. CLUSTERPRO コマンドリファレンス」の「ネットワーク警告灯を消灯する (clplampコマンド)」を参照してください。

音声ファイル再生に対応したネットワーク警告灯 (当社指定品) の場合、設定により音声ファイルの再生も点灯/消灯と連動して行うことができます。

8.1.5. SNMP トラップ送信の動作

8.2. SNMP 連携

8.2.1. SNMP 連携とは?

SNMP 連携は、CLUSTERPRO MIB 定義を元に CLUSTERPRO からの SNMP トラップ送信、SNMP マネージャからの SNMP による情報取得 を可能にする機能です。

2台のサーバ、サーバ内にあるアラートサービス、SNMPマネージャ

図 8.2 SNMP連携

8.2.2. CLUSTERPRO MIB 定義とは?

SNMP連携により送信取得される情報は、MIB 定義ファイルにまとめられています。

後述する SNMP トラップ送信、および SNMP による情報取得の機能を使用する場合、MIB 定義ファイルが必要になります。

SNMP マネージャでCLUSTERPRO からの SNMP トラップを受信したい、あるいは、SNMP マネージャからクラスタの状態を取得したいといったような場合、SNMP マネージャへ CLUSTERPRO MIB 定義ファイル を組み込んでください。

SNMP マネージャへMIB 定義ファイルを組み込む方法については、各SNMP マネージャのマニュアルを参照してください。

CLUSTERPRO MIB 定義ファイルはCLUSTERPRO X DVD-ROM の以下に配置しています。

<CLUSTERPRO X DVD-ROM>\Common\<バージョン番号>\common\mib

各MIB 定義ファイルには以下のような意味があります。

No.

MIB 定義ファイル

説明

NEC-CLUSTER-SMI.mib

CLUSTERPRO MIB ツリーのルートパスが定義されています。

NEC-CLUSTER-EVENT-MIB.mib

CLUSTERPRO の SNMP トラップ送信機能に関連するトラップ定義や MIB が定義されています。

NEC-CLUSTER-MANAGEMENT-MIB.mib

CLUSTERPRO の 以下の情報に関連するMIB が定義されています。

  • クラスタの情報

  • サーバの情報

  • グループの情報

SNMP マネージャに組み込むファイルの組み合わせにより、利用できる機能が変わります。

CLUSTERPRO からの SNMP トラップを受信する場合

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 トラップ送信とは?

SNMP トラップ送信は、Cluster WebUI のアラートメッセージと同じ内容を SNMP マネージャに送信する機能です。

トラップを送信するためには、別途 SNMP トラップの送信先の設定が必要です。本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「アラートサービスタブ」よりSNMP トラップの「送信先設定」を参照して設定してください。

送信されるトラップはNEC-CLUSTER-EVENT-MIB で定義されています。

NEC-CLUSTER-EVENT-MIBで定義されている各 MIB オブジェクトを以下に示します。

clusterEventNotificationsグループ

送信されるトラップを定義したグループです。ここで定義されている各 MIB オブジェクトは、以下のような意味があります。

No.

SNMP TRAP OID

説明

clusterEventInformation

情報 レベルのアラートを表すトラップです。
clusterEvent グループの MIB オブジェクトを添付しています。

clusterEventWarning

警告 レベルのアラートを表すトラップです。
clusterEvent グループの MIB オブジェクトを添付しています。

clusterEventError

異常 レベルのアラートを表すトラップです。
clusterEvent グループの MIB オブジェクトを添付しています。

clusterEventグループ

トラップに添付される情報が定義されたグループです。ここで定義されている各 MIB オブジェクトは、以下のような意味があります。

No.

SNMP OID

説明

clusterEventMessage

アラートメッセージを表します。

clusterEventID

イベントID を表します。

clusterEventDateTime

アラートの発信時刻を表します。

clusterEventServerName

アラートの発信元サーバを表します。

clusterEventModuleName

アラートの発信元モジュールを表します。

8.2.4. SNMP による情報取得とは?

SNMPプロトコルを利用して CLUSTERPRO の構成情報、ステータス情報の一部を取得することが可能です。ただし、CLUSTERPRO 自身は SNMP エージェントの機能を同梱していません。別途、SNMP エージェントとして Windows SNMP Service が必要になります。

SNMP エージェントとは?

SNMPマネージャ( ネットワーク管理ソフト) からの情報取得要求(GetRequest, GetNextRequest) に対して、各種構成情報、ステータス情報を応答(GetResponse) を返す機能です。

注釈

通常、CLUSTERPRO Server インストール時にWindows SNMP Service が存在する場合はSNMP 連携機能が自動で登録されますが、存在しない場合は登録されません。

このような場合、手動での登録が必要になります。詳しい手順については、『インストール&設定ガイド』の「CLUSTERPRO をインストールする」 - 「CLUSTERPRO Serverのインストール」 - 「SNMP 連携機能を手動で設定するには」を参照してください。

8.2.5. SNMP 連携で取得できるMIB について

SNMP 連携機能で取得できる MIB は、NEC-CLUSTER-MANAGEMENT-MIB で定義されています。

NEC-CLUSTER-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

サーバにインストールされた CLUSTERPRO の製品名を表します。

clusterServerProductVersion

サーバにインストールされた CLUSTERPRO の製品バージョンを表します。

clusterServerProductInstallPath

サーバにインストールされた CLUSTERPRO のインストールパスを表します。
※返却値が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

Witness サーバサービスモジュールは、インストール DVD-ROM の以下のパスから取得してください。

Common\<バージョン>\common\tools\witnessd\clpwitnessd-<バージョン>.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サーバのキープアライブ時間を指定します。
[ミリ秒]

https.enable

False

HTTPSサーバを実行するかどうかを指定します。
true: 実行する
false: 実行しない

https.port

443

HTTPSサーバの待ち受けポート番号を指定します。

https.keepalive

10000

HTTPSサーバのキープアライブ時間を指定します。
[ミリ秒]

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サービス化

Witness サーバサービスがOS起動時に開始したい場合、OSサービスとして登録する必要があります。

Witness サーバサービスのOSサービスへの登録方法 (Windows サービスコントロールマネージャ、Linux systemd の場合) を例示します。なお、OSサービスへの登録方法は環境によって異なるため、以下の情報を参考にご利用の環境に合わせて設定してください。

Windows サービスコントロールマネージャへの登録

npm パッケージ winser を使用して登録する手順を例示します。

  1. npm コマンドで winser をインストールします。以下のコマンドを実行すると、winser パッケージが 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=CLUSTERPRO 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