この付録では、SNMP を使用して Sun Cluster 構成の動作を監視する方法について説明します。
この付録で説明する手順は次のとおりです。
次の SNMP Management を使用して、Sun Cluster 構成を監視できます。
Sun Cluster SNMP Agent
Domain Manager
Enterprise Manager
Sun Net Manager
SNMP 互換の HP OpenView
Sun Cluster には、クラスタ用として、Management Information Base (MIB) のほかに Simple Network Management Protocol (SNMP) が付属しています。エージェントファイルの名前は snmpd (SNMP デーモン)、MIB の名前は sun.mib です。
クラスタ SNMP エージェントは、複数のクラスタ (最大 32) を同時に監視できるプロキシエージェントです。通常の Sun Cluster は、管理ワークステーションまたはシステムサービスプロセッサ (SSP) から管理できます。管理ワークステーションまたは SSP にクラスタ SNMP エージェントをインストールすると、ネットワークトラフィックが調整される上、SNMP パケットの転送でノードの CPU パワーが浪費されることがありません。
snmpd デーモンの内容を次に示します。
RFC 1157 互換の SNMP エージェントである
Sun Microsystems, Inc. のエンタプライズグループに含まれる Sun Cluster (SC) MIB の拡張機能をサポートすることを目的とする
クラスタ sun.mib を ASCII 形式で提供する
GET-REQUEST、 GETNEXT-REQUEST、TRAP などの SNMP プロトコルオペレーションをサポートする
データ収集用のスーパーモニターエージェント、smond を提供する
スーパーモニターデーモンである smond は、クラスタの各メンバーノードから in.mond デーモンに接続することにより、ハードウェア構成情報と重要なクラスタイベントを収集します。smond デーモンは、続いてこの情報を SNMP デーモン (snmpd) に報告します。
1 つの smond デーモンを構成することで、複数のクラスタ情報を収集することができます。
SUNWcsnmp パッケージには、次のものが含まれます。
/opt/SUNWcluster/bin/snmpd と /opt/SUNWcluster/bin/smond のバイナリ
ASCII 形式の /opt/SUNWcluster/etc/sun.mib ファイル
/opt/SUNWcluster/bin/init.snmpd スクリプト (snmpd 制御)
/var/opt/SUNWcluster/snmpd.conf ファイル (SNMP 構成)
/opt/SUNWcluster/etc/snmp.traps ファイル (SNMP トラップ)
/opt/SUNWcluster/etc/sun-snmp.schema ファイル (SunNet Manager スキーマ)
/opt/SUNWcluster/bin/smond_conf スクリプト (smond 構成)
/opt/SUNWcluster/bin/smond_ctl スクリプト (smond 制御)
該当するマニュアルページ
snmpd と smond デーモンの詳細は、付録 B 「Sun Cluster マニュアルページのクイックリファレンス」を参照してください。
Management Information Base (MIB) は、ネットワーク管理プロトコルを介してアクセスできるオブジェクトのコレクションです。オブジェクトの定義は、さまざまな管理プラットフォームがその定義を読み込んで解析できるように、一般的で、一貫したものでなければなりません。
snmpd デーモンは、クラスタ管理ワークステーションである管理サーバー、または任意のクライアントで実行してください。このエージェントは、クラスタ MIB に定義されているすべての SNMP 属性に、smond から収集された情報を提供します。この MIB ファイルは、一般に SunNet Manager Console のような「SNMP 対応の」ネットワークマネージャにコンパイルされます。「snmpd.conf ファイルの変更」を参照してください。
sun.mib ファイルは、クラスタ情報を次に示すテーブルの形で提供します。
clustersTable
clusterNodesTable
switchesTable
portsTable
lhostTable
dsTable
dsinstTable
上記のテーブルにおける、時刻はテーブルが管理される SNMP サーバー上のローカル時刻を指します。したがって、時刻はサーバー上で属性変更が報告される時刻を示します。
clustersTable (クラスタテーブル) は、監視対象のすべてのクラスタのエントリから構成されます。テーブル内の各エントリには、クラスタ情報を提供する特定の属性が含まれています。clustersTable の属性については、表 D-1を参照してください。
表 D-1 clustersTable の属性
属性名 |
説明 |
---|---|
clusterName |
クラスタ名 |
clusterDescr |
クラスタの説明 |
clusterVersion |
クラスタのリリースバージョン |
numNodes |
クラスタ内のノード数 |
nodeNames |
コンマで区切られた、クラスタ内のすべてのノードの名前 |
quorumDevices |
コンマで区切られた、クラスタ内のすべての定足数デバイスの名前 |
clusterLastUpdate |
このエントリの属性のどれかが最後に変更された時刻 |
clusterNodesTable (クラスタノードテーブル) は、監視対象のすべてのクラスタの既知のノードから構成されます。各エントリには、そのノードについての具体的な情報が含まれています。clusterNodesTable の属性については、表 D-2を参照してください。
相互参照を使用する場合、belongsToCluster の属性はこのテーブルと clustersTable 間のキー参照として動作します。
属性名 |
説明 |
---|---|
nodeName |
ノードのホスト名 |
belongsToCluster |
このノードが属しているクラスタの名前 |
scState |
このノード上の Sun Cluster ソフトウェアコンポーネントの状態 (Stopped、Aborted、In Transition、Included、Excluded、Unkonwn)。エンタプライズ固有のトラップが、状態の変化を知らせる |
vmState |
このノード上のボリュームマネージャソフトウェアコンポーネントの状態。エンタプライズ固有のトラップが、状態の変化を知らせる |
dbState |
このノード上のデータベースソフトウェアコンポーネントの状態 (Down、Up、Unknown)。エンタプライズ固有のトラップが、状態の変化を知らせる |
vmType |
このノードで現在使用されているボリュームマネージャの種類 |
vmOnNode |
このノード上の SSVM ソフトウェアコンポーネントのモード (Master、Slave、Unkown)。エンタプライズ固有のトラップが、状態の変化を知らせる。この属性は、ほかのボリュームマネージャを使用しているクラスタには無効 |
nodeLastUpdate |
このエントリの属性のどれかが最後に変更された時刻 |
switchesTable (スイッチテーブル) は、すべてのスイッチのエントリから構成されます。このテーブルの各エントリには、クラスタ内のスイッチについての具体的な情報が含まれています。switchesTable の属性については、表 D-3を参照してください。
表 D-3 switchesTable の属性
属性名 |
説明 |
---|---|
switchName |
スイッチ名 |
numPorts |
スイッチのポートの数 |
connectedNodes |
スイッチのポートに現在接続されているすべてのノードの名前 |
switchLastUpdate |
このエントリのスイッチ属性のどれかが最後に変更された時刻 |
portsTable (ポートテーブル) は、すべてのスイッチポートのエントリから構成されます。このテーブルの各エントリには、スイッチ内のポートについての具体的な情報が含まれています。portsTable の属性については、表 D-4を参照してください。
相互参照を使用する場合、belongsToSwitch の属性はこのテーブルと switchesTable 間のキー参照として動作します。
属性名 |
説明 |
---|---|
portId |
ポート ID または番号 |
belongsToSwitch |
このポートが属しているスイッチの名前 |
connectedNode |
このポートが現在接続されているノードの名前 |
nodeAdapterId |
このポートが接続されているノード上の SCI カードのアダプタ ID |
portStatus |
ポートの状態 (Active、Inactive など) |
portLastUpdate |
このエントリのポート属性のどれかが最後に変更された時刻 |
lhostTable (論理ホストテーブル) は、クラスタに構成されている各論理ホストのエントリから構成されます。lhostTable の属性については、表 D-5を参照してください。
表 D-5 lhostTable の属性
属性名 |
説明 |
---|---|
lhostName |
論理ホストの名前 |
lhostMasters |
論理ホストを構成しているノードの名前リスト |
lhostCurrMaster |
論理ホストの現在のマスターであるノードの名前 |
lhostDS |
この論理ホスト上で実行されるように構成されているデータサービスのリスト |
lhostDG |
この論理ホスト上に構成されているディスクグループ |
lhostLogicalIP |
この論理ホストに対応する論理 IP アドレス |
lhostStatus |
論理ホストの現在の状態 (UP または DOWN) |
lhostLastUpdate |
このエントリの属性のどれかが最後に変更された時刻 |
dsTable (データサービステーブル) は、監視対象クラスタ内のすべての論理ホストに構成されているすべてのデータサービスのエントリから構成されます。このテーブル内の各エントリには、論理ホストに構成されているデータサービスについての具体的な情報が含まれています。dsTable の属性については、表 D-6 を参照してください。
相互参照を使用する場合、dsonLhost の属性はこのテーブルと lhostTable 間のキー参照として動作します。
属性名 |
説明 |
---|---|
dsName |
データサービスの名前 |
dsOnLhost |
データサービスが構成されている論理ホストの名前 |
dsReg |
値は、データサービスが動作するように設定されている (1) か、動作しないように設定されている (0) |
dsStatus |
データサービスの現在の状態 (ON、OFF、INST DOWN) |
dsDep |
このデータサービスが依存しているほかのデータサービスのリスト |
dsPkg |
データサービスのパッケージ名 |
dsLastUpdate |
このエントリの属性のどれかが最後に変更された時刻 |
dsinstTable (データサービスインスタンステーブル) は、すべてのデータサービスインスタンスのエントリから構成されます。dsinstTable の属性については、表 D-7を参照してください。
相互参照を使用する場合、dsinstOfDS の属性はこのテーブルと dsTable 間のキー参照として使用できます。同様に、dsinstOnLhost 属性は、このテーブルと lhostTable 間のキー参照として使用できます。
属性名 |
説明 |
---|---|
dsinstName |
データサービスインスタンスの名前 |
dsinstOfDS |
このデータサービスインスタンスのデータサービスの名前 |
dsinstOnLhost |
このデータサービスインスタンスが動作している論理ホストの名前 |
dsinstStatus |
データサービスインスタンスの状態 |
dsinstLastUpdate |
このエントリの属性のどれかが最後に変更された時刻 |
smond デーモンは、要求されたすべてのクラスタノードで in.mond に接続する。
smond デーモンは、収集された config と syslog の情報を snmpd デーモンに渡す。
snmpd デーモンは、クラスタ MIB テーブルに書き込みを行う (クライアントは SNMP GET オペレーションを介してこのテーブルを使用する)。
snmpd デーモンは、smond syslog データによる通知を受ける場合、重要なクラスタイベントのエンタプライズ固有のトラップを送信する。
SNMP トラップは、監視対象オブジェクトの状態に対する意図的でない変更を示す、SNMP エージェントによって生成される非同期通知です。
このソフトウェアは、重要なクラスタイベントの Sun Cluster 固有のトラップを生成します。これらのイベントを、以下の表に示します。
表 D-8 は、ノード上のクラスタソフトウェアの状態を反映した Sun Cluster トラップを示しています。
表 D-8 ノード上のソフトウェアを反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
0 |
sc:stopped |
1 |
sc:aborted |
2 |
sc:in_transition |
3 |
sc:included |
4 |
sc:excluded |
5 |
sc:unknown |
表 D-9 は、ノード上のボリュームマネージャの状態を反映した Sun Cluster トラップを示しています。
表 D-9 ノード上のボリュームマネージャを反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
10 |
vm:down |
11 |
vm:up |
12 |
vm:unknown |
表 D-10 は、ノード上のデータベースの状態を反映した Sun Cluster トラップを示しています。
表 D-10 ノード上のデータベースを反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
20 |
db:down |
21 |
db:up |
22 |
db:unknown |
表 D-11 は、ノード上の Cluster Volume Manager (マスターまたはスレーブ) の特性を反映した Sun Cluster トラップを示しています。
表 D-11 ノード上の Cluster Volume Manager を反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
30 |
vm_on_node:master |
31 |
vm_on_node:slave |
32 |
vm_on_node:unknown |
表 D-12 は、論理ホストの状態を反映した Sun Cluster トラップを示しています。
表 D-12 論理ホストの状態を反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
40 |
lhost:givingup |
41 |
lhost:given |
42 |
lhost:takingover |
43 |
lhost:taken |
46 |
lhost:unknown |
表 D-13 は、データサービスインスタンスの状態を反映した Sun Cluster トラップを示しています。
表 D-13 データサービスインスタンスの状態を反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
50 |
ds:started |
51 |
ds:stopped |
52 |
ds:in-transition |
53 |
ds:failed-locally |
54 |
ds:failed-remotely |
57 |
ds:unknown |
表 D-14 は、HA-NFS データサービスの状態を反映した Sun Cluster トラップを示しています。
表 D-14 HA-NFS データサービスインスタンスの状態を反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
60 |
hanfs:start |
61 |
hanfs:stop |
70 |
hanfs:unknown |
表 D-15 は、SNMP エラーを反映した Sun Cluster トラップを示しています。
表 D-15 SNMP エラーを反映した Sun Cluster トラップ
トラップ番号 |
トラップ名 |
---|---|
100 |
SOCKET_ERROR:node_out_of_system_resources |
101 |
CONNECT_ERROR:node_out_of_system_resources |
102 |
BADMOND_ERROR:node_running_bad/old_mond_version |
103 |
NOMOND_ERROR:mond_not_installed_on_node |
104 |
NOMONDYET_ERROR:mond_on_node_not_responding:node_may_be_rebooting |
105 |
TIMEOUT_ERROR:timed_out_upon_trying_to_connect_to_nodes_mond |
106 |
UNREACHABLE_ERROR:node's_mond_unreachable:network_problems?? |
107 |
READFAILED_ERROR:node_out_of_system_resources |
108 |
NORESPONSE_ERROR:node_out_of_system_resources |
109 |
BADRESPONSE_ERROR:unexpected_welcome_message_from_node's_mond |
110 |
SHUTDOWN_ERROR:node's_mond_shutdown |
200 |
Fatal:super_monitor_daemon(smond)_exited! |
トラップ番号 100 〜 110 については、障害のあるノードを検査し、問題を修復してください。トラップ番号 200 については、「SNMP の障害追跡」を参照してください。
snmpd.conf ファイルは、構成情報に使用されます。このファイルの各エントリは、キーワードと、それに続くパラメータ文字列から構成されます。通常は、ファイル内のデフォルト値で十分です。
snmpd.conf ファイルを編集します。
キーワードの詳細は、snmpd(7) のマニュアルページを参照してください。
snmpd.conf ファイルを変更した後、次のコマンドを入力して smond と snmpd プログラムを停止し、続いてこれらのスクリプトを再起動します。
# /opt/SUNWcluster/bin/smond_ctl stop # /opt/SUNWcluster/bin/init.snmpd stop # /opt/SUNWcluster/bin/init.snmpd start # /opt/SUNWcluster/bin/smond_ctl start |
次に、snmpd.conf ファイルの例を示します。
sysdescr Sun SNMP Agent, SPARCstation 10, Company Property Number 123456 syscontact Coby Phelps sysLocation Room 123 # system-group-read-community public system-group-write-community private # read-community all_public write-community all_private # trap localhost trap-community SNMP-trap # #kernel-file /vmunix # managers lvs golden |
デフォルトでは、クラスタ SNMP エージェントは、SNMP マネージャ (SunNet Manager Console など) の要求を、ユーザーデータグラムプロトコル (UDP) ポート 161 でリスン (listen) します。このポートは、snmpd と smond デーモンに -p オプションを使用して変更できます。
snmpd と smond デーモンを正常に機能させるには、これらのデーモンを同じポートに構成する必要があります。
Solaris 2.6 オペレーティング環境または互換バージョンで稼動する SSP または管理ワークステーションにクラスタ SNMP エージェントをインストールする場合は、必ずデフォルトの UDP ポート 161 以外のポートに snmpd と smond プログラムを構成してください。
たとえば SSP では、クラスタ SNMP エージェントは、同じく UDP ポート 161 を使用する SSP SNMP エージェントを妨害します。この妨害によって、Sun Enterprise 10000 サーバーの RAS 機能が失われることがあります。
デフォルトの UDP ポート 161 以外のポートにクラスタ SNMP エージェントを構成するには、次の手順を実行します。
/opt/SUNWcluster/bin/init.snmpd ファイルを編集し、CSNMP_PORT 変数の値を 161 以外の任意の値に変更します。
/opt/SUNWcluster/bin/smond_ctl ファイルを編集し、CSNMP_PORT 変数の値を 手順 1で選択したものと同じ値に変更します。
変更を反映させるため、snmpd と smond デーモンの両方を停止し、続いて再起動します。
# /opt/SUNWcluster/bin/smond_ctl stop # /opt/SUNWcluster/bin/init.snmpd stop # /opt/SUNWcluster/bin/smond_ctl start # /opt/SUNWcluster/bin/init.snmpd start |
SNMP マネージャに新しいポート番号を認識させるには、SNMP マネージャ固有の構成ファイルを編集しなければならない場合があります。詳細は、SNMP マネージャのマニュアルを参照してください。また、管理ワークステーションでマスター SNMP エージェントを構成し、クラスタ SNMP プロキシエージェントを 161 以外のポートでサブエージェントとして起動することもできます。マスター SNMP エージェントの構成方法の詳細は、『Solstice Enterprise Agents User's Guide』または snmpdx(1M) のマニュアルページを参照してください。
クラスタ SNMP エージェントは、SunNet Manager で使用できます。SunNet Manager を使用してクラスタを監視する前に、次の作業を行なってください。
これらの作業は、SNMP に UDP ポート 161 が使用されていることを想定しています。「クラスタ SNMP エージェントポートの構成」で説明しているようにポート番号を変更した場合は、そのポートを使用するために SunNet Manager SNMP プロキシエージェント na.snmp を実行する必要があります。
SunNet Manager コンソールで、クラスタ MIB /opt/SUNWcluster/etc/sun.mib を /opt/SUNWconn/snm/agents/cluster.mib にコピーします。
SunNet Manager コンソールで、コピーされた cluster.mib ファイルに対して mib2schema を実行します。
# /opt/SUNWconn/snm/bin/mib2schema cluster.mib |
Sun Cluster 管理ワークステーションで、snmpd.conf ファイルを編集し、trap キーワード内のパラメータ文字列を SunNet Manager コンソールの名前に設定します。
snmpd.conf ファイルの編集の詳細は、「snmpd.conf ファイルの変更」を参照してください。
Sun Cluster 管理ワークステーションで、監視するクラスタごとに smond_conf コマンドを実行します。次に例を示します。
# /opt/SUNWcluster/bin/smond_conf -h [clustername ...] |
cluster-snmp のプロキシを、SunNet Manager コンソールの名前になるように設定します。
クラスタを監視するには、SunNet Manager を使用して管理ワークステーションの監視も行う必要があります。
smond デーモンを再構成して別のクラスタを監視できます。
次のコマンドを使用して、snmpd デーモンを停止します。
# /opt/SUNWcluster/bin/init.snmpd stop |
次のコマンドを使用して、smond デーモンを再構成します。
# /opt/SUNWcluster/bin/smond_conf -h [clustername ...] |
次のコマンドを使用して、snmpd デーモンを起動します。
# /opt/SUNWcluster/bin/init.snmpd start |
次のコマンドを使用して、smond デーモンを起動します。
# /opt/SUNWcluster/bin/smond_ctl start |
アプリケーションにクラスタ MIB テーブルが書き込まれていないか、トラップ番号 200 を受ける場合は、次のコマンドを実行して snmpd と smond デーモンが動作していることを確認してください。
# ps -ef | grep snmpd # ps -ef | grep smond |
これらのデーモンが動作していない場合、出力は行われません。
デーモンが動作していない場合、次のコマンドを入力してください。
# /opt/SUNWcluster/bin/init.snmpd start # /opt/SUNWcluster/bin/smond_ctl start |