はじめに
IBM Netcool/OMNIbusのObjectServerを冗長構成とする手順を備忘録としてここに整理しておく。
本記事の内容はObjectServerを冗長構成で稼働させるために最低限必要な設定のみを記載しています。
本記事での構成
- 正Netcoolサーバー
- ObjectServer(NCOMSPRI)
- 副Netcoolサーバー
- ObjectServer(NCOMSBAK)
- Bidirectional gateway(BIGW)
カッコ内はObjectServerおよびBi-Gatewayの名前。
仮想ObjectServer名は NCOMS とする。
また、両サーバー同士で名前解決できるようhostsファイル等の設定を行っておく。
インストール
Netcool/OMNIbusのインストールの際、最低限必要なインストール・フィーチャーは以下の通り。(よくわからない場合は全フィーチャーを導入するのが無難)
- ObjectServer
- ObjectServer ゲートウェイ
- ゲートウェイ・サポート
- 拡張機能
omni.datファイルの定義
$NCHOME/etc/omni.dat
[NCOMS]
{
Primary: <正サーバーホスト名> 4100
Backup: <副サーバーホスト名> 4100
}
[NCOMSPRI]
{
Primary: <正サーバーホスト名> 4100
}
[NCOMSBAK]
{
Primary: <副サーバーホスト名> 4100
}
[BIGW]
{
Primary: <副サーバーホスト名> 4300
}
omni.datの更新後は $NCHOME/bin/nco_igen の実行を忘れずに。
ObjectServerのセットアップ
前提
- ObjectServerの各テーブルの構造は正副で合わせておくことが基本
- nco_dbinitでObjectServerを初期化した直後の状態は正副で内容が一致しているので心配いらないが、既存テーブルにカラムを追加する等した場合は注意
- 正副でテーブル構成が一致しているかどうか不明の場合は、nco_confpack/nco_osreportを使ったバックアップ&リストアにてどちらかのDBをマスターとした構成の同期を行う
前提を満たしたら以下を実施して正副ObjectServerのセットアップを行っていく。
正副ObjectServer共通の設定
基本的にはObjectServerのプロセスを起動した状態で設定を行う。
aggregation.sqlの実行
ObjectServer起動状態で以下のコマンドを実行する(正副サーバーで実行)。
$NCHOME/omnibus/bin/nco_sql -server NCOMSPRI -user root –password "<rootのパスワード>" < $OMNIHOME/extensions/multitier/objectserver/aggregation.sql
Bidirectional Gateway用ユーザーの作成(オプション)
Bidirectional Gateway(以下Bi-Gateway)が正副ObjectServerに接続するためのユーザーを作成する。(デフォルトで存在するrootで接続してもいいが専用ユーザーの作成を推奨)
$OMNIHOME/bin/nco_sqlコマンドでObjectServerに接続し、以下を実行(正副サーバーで実行)。
1> create user '<ユーザー名>' full name '<任意のフルネーム>' password;
2> go
1> alter group 'Gateway' assign members '<ユーザー名>';
2> go
※ユーザー名は任意
正ObjectServerの設定
以下のトリガーを有効化する。
- pass_deletes
CLIで有効化する場合はnco_sqlコマンドで正ObjectServerに接続して以下を実行。
1> alter trigger pass_deletes set enabled true;
2> go
副ObjectServerの設定
$OMNIHOME/etc/NCOMSBAK.props を編集し、以下のパラメータを設定する。
ActingPrimary: FALSE (デフォルト:TRUE)
BackupObjectServer: TRUE (デフォルト:FALSE)
設定後は副ObjectServerを再起動する。
再起動後、続いて以下のトリガーを有効化する。
- backup_counterpart_down
- backup_counterpart_up
- backup_startup
- pass_deletes
- resync_finished
Bi-Gatewayの設定
設定ファイルの準備
Bi-Gateway用設定ファイルのテンプレートを$OMNIHOME/etc/ 以下にコピーする。
cd $NCHOME/omnibus/gates/objserv_bi/
cp objserv_bi.props $NCHOME/omnibus/etc/BIGW.props
cp objserv_bi.map $NCHOME/omnibus/etc/BIGW.map
cp objserv_bi.objectservera.tblrep.def $NCHOME/omnibus/etc/BIGW.objectservera.tblrep.def
cp objserv_bi.objectserverb.tblrep.def $NCHOME/omnibus/etc/BIGW.objectserverb.tblrep.def
cp objserv_bi.startup.cmd $NCHOME/omnibus/etc/BIGW.startup.cmd
propsファイル以外はコピー先は任意だが、 $OMNIHOME/etc/以下にまとめておく方が管理がしやすいです。
設定ファイルの編集
- $NCHOME/omnibus/etc/BIGW.props
各パラメータはコメントアウトされているので、設定するパラメータのコメントを外した上で以下のように設定する。
MessageLog : '$OMNIHOME/log/BIGW.log'
Name : 'BIGW'
PropsFile : '$OMNIHOME/etc/BIGW.props'
Gate.MapFile : '$OMNIHOME/etc/BIGW.map'
Gate.StartupCmdFile : '$OMNIHOME/etc/BIGW.startup.cmd'
Gate.ObjectServerA.Server : 'NCOMSPRI'
Gate.ObjectServerA.Username : '<gateway用ユーザー>'
Gate.ObjectServerA.Password : '<gateway用パスワード>'
Gate.ObjectServerA.TblReplicateDefFile : '$OMNIHOME/etc/BIGW.objectservera.tblrep.def'
Gate.ObjectServerB.Server : 'NCOMSBAK'
Gate.ObjectServerB.Username : '<gateway用ユーザー>'
Gate.ObjectServerB.Password : '<gateway用パスワード>'
Gate.ObjectServerB.TblReplicateDefFile : '$OMNIHOME/etc/BIGW.objectserverb.tblrep.def'
Gate.ObjectServerA.Description : 'failover_gate'
Gate.ObjectServerB.Description : 'failover_gate'
- $OMNIHOME/etc/BIGW.objectservera.tblrep.def
- $OMNIHOME/etc/BIGW.objectserverb.tblrep.def
この2ファイルの編集はオプション。
正副ObjectServer間でユーザー&パスワード情報を同期させたい場合は35-65行目のコメントを外して以下のようにする。
REPLICATE ALL FROM TABLE 'security.users'
USING MAP 'SecurityUsersMap'
INTO 'transfer.users';
REPLICATE ALL FROM TABLE 'security.groups'
USING MAP 'SecurityGroupsMap'
INTO 'transfer.groups';
REPLICATE ALL FROM TABLE 'security.roles'
USING MAP 'SecurityRolesMap'
INTO 'transfer.roles';
REPLICATE ALL FROM TABLE 'security.role_grants'
USING MAP 'SecurityRoleGrantsMap'
INTO 'transfer.role_grants';
REPLICATE ALL FROM TABLE 'security.group_members'
USING MAP 'SecurityGroupMembersMap'
INTO 'transfer.group_members';
REPLICATE ALL FROM TABLE 'catalog.restrictions'
USING MAP 'CatalogRestrictionFiltersMap'
INTO 'transfer.restrictions';
REPLICATE ALL FROM TABLE 'security.restriction_filters'
USING MAP 'SecurityRestrictionFiltersMap'
INTO 'transfer.security_restrictions';
REPLICATE ALL FROM TABLE 'security.permissions'
USING MAP 'SecurityPermissionsMap'
INTO 'transfer.permissions';
- $OMNIHOME/etc/BIGW.map
上で <Bi-Gateway名>.objectserver*.tblrep.def を編集してユーザー情報を同期させる設定にした場合はこちらのファイルの編集も必須となる。
以下のように135-205行目のコメントを外す。
CREATE MAPPING SecurityUsersMap
(
'UserID' = '@UserID' ON INSERT ONLY,
'UserName' = '@UserName',
'SystemUser' = '@SystemUser',
'FullName' = '@FullName',
'Passwd' = '@Passwd',
'UsePAM' = '@UsePAM',
'Enabled' = '@Enabled'
);
:
(中略)
:
CREATE MAPPING SecurityPermissionsMap
(
'ApplicationID' = '@ApplicationID' ON INSERT ONLY,
'ObjectType' = '@ObjectType' ON INSERT ONLY,
'Object' = '@Object' ON INSERT ONLY,
'GranteeType' = '@GranteeType' ON INSERT ONLY,
'GranteeID' = '@GranteeID' ON INSERT ONLY,
'Allows' = '@Allows',
'Denies' = '@Denies',
'GrantOptions' = '@GrantOptions'
);
稼働確認
最後に副NetcoolサーバーにてBi-Gatewayを起動して、稼働確認を行う。