4.3. SNMPを使用したストレージクラスターオブジェクトの監視

簡易ネットワーク管理プロトコル(SNMP)を使用してクラスターオブジェクトを監視できます。実装では、標準SNMPコンテキストのデータと同じStructure of Management Information(SMI)ルールに準拠しています。つまり、すべてのオブジェクトがツリー状で構成されます。各オブジェクト識別子(OID)は、ツリーノードに対応する一連の整数で、ドットで区切られます。

一般情報

  • 監視できるすべてのオブジェクトを含んでいるルートサブツリーのOIDは、1.3.6.1.4.1.8072.161.1です。
  • オブジェクトを監視するにはVSTORAGE-MIB.txt情報ベースファイルが必要です。ファイルはhttps://<admin_panel_IP>:8888/api/v2/snmp/mibs/でダウンロードできます。

以降のサブセクションでは、SNMPを有効にし、SNMPを使用してクラスターオブジェクトを監視する方法について説明します。

4.3.1. SNMPアクセスの有効化

クラスターオブジェクトを監視するには、ノードでSNMPアクセスを有効にします。管理者パネルで以下の手順を実行します。

  1. 次の手順を実行して、管理ノードのUDPポート161を開きます。

    1. [インフラストラクチャ] > [ネットワーク] 画面で、[編集] をクリックします。
    2. 該当するチェックボックスをオンにして、[SNMP] トラフィックタイプをパブリックネットワークに追加します。
    3. [保存] をクリックして、変更を適用します。
  2. [設定] > [システム設定] > [SNMP] に移動し、[管理ノードでSNMPを有効にする] チェックボックスをオンにします。ネットワーク管理システム(SNMPモニター)が有効になり、SNMPプロトコルを使用してクラスターにアクセスできるようになります。

    ../_images/snmp1_ac.png
  3. 表示されたリンクをクリックしてMIBファイルをダウンロードし、SNMPモニターでファイルをセットアップします。

  4. (オプション)次のようにSNMPトラップがSNMPモニターに送信されるようにします。

    1. [SNMPトラップをこのネットワーク管理システムへ送信] を選択します。

    2. ネットワーク管理システムのIPアドレスポート、およびコミュニティを指定します。

      デフォルトでは、snmptrapdデーモンではポート162を使用します。デフォルトのコミュニティはpublicです。

    3. 必要に応じて、[テストトラップを送信] をクリックしてサービスをテストします。

  5. [保存] をクリックして、変更を適用します。

4.3.2. SNMPを使用したストレージクラスター情報オブジェクトへのアクセス

Linux向けの無料のNet-SNMPスイートなど、任意のSNMPツールを使用してストレージクラスター情報オブジェクトにアクセスできます。

管理者パネルのあるノードのストレージクラスター情報を取得するには、MIBファイルを/usr/share/snmp/mibsに配置し、snmpwalkコマンドを実行します。例:

# snmpwalk  -M /usr/share/snmp/mibs -m VSTORAGE-MIB -v 2c -c public localhost:161 VSTORAGE-MIB:cluster

一般に出力は次のようになります。

VSTORAGE-MIB::clusterName.0 = STRING: "cluster1"
VSTORAGE-MIB::healthStatus.0 = STRING: "healthy"
VSTORAGE-MIB::usedLogicalSpace.0 = Counter64: 173732322
VSTORAGE-MIB::totalLogicalSpace.0 = Counter64: 1337665179648
VSTORAGE-MIB::freeLogicalSpace.0 = Counter64: 1318963253248
VSTORAGE-MIB::licenseStatus.0 = STRING: "unknown"
VSTORAGE-MIB::licenseCapacity.0 = Counter64: 1099511627776
VSTORAGE-MIB::licenseExpirationStatus.0 = STRING: "None"
VSTORAGE-MIB::ioReadOpS.0 = Counter64: 0
VSTORAGE-MIB::ioWriteOpS.0 = Counter64: 0
VSTORAGE-MIB::ioReads.0 = Counter64: 0
VSTORAGE-MIB::ioWrites.0 = Counter64: 0
VSTORAGE-MIB::csActive.0 = Counter64: 11
VSTORAGE-MIB::csTotal.0 = Counter64: 11
VSTORAGE-MIB::mdsAvail.0 = Counter64: 4
VSTORAGE-MIB::mdsTotal.0 = Counter64: 4
<...>

4.3.2.1. SNMPトラップのリッスン

SNMPトラップのリッスンを開始するには、以下の手順を実行します。

  1. SNMPトラップによって実行可能な操作をトリガできるようにSNMPトラップをログに記録し、データをネットワークに再送信するようにsnmptrapdデーモンを設定します。これを実行するには、/etc/snmp/snmptrapd.confファイルの次のpublicコミュニティ文字列のコメントアウトを外します。

    authCommunity log,execute,net public
    
  2. UDPポート162で受信トラフィックを許可するようにファイアウォールを設定します。

  3. VSTORAGE-MIB.txtファイルをダウンロードし、/usr/share/snmp/mibsディレクトリに配置します。

  4. デーモンを開始し、MIBファイルを指定します。

    # snmptrapd -M /usr/share/snmp/mibs -m VSTORAGE-MIB -n -f
    

    デフォルトでは、トラップは/var/log/messagesに記録されます。-Lf <path>オプションを指定して、トラップをカスタムログファイルにリダイレクトできます。たとえば、次のようになります。

    # snmptrapd -M /usr/share/snmp/mibs -m VSTORAGE-MIB -n -f -Lf /tmp/traps.log
    
  5. 管理者パネルの [設定] > [詳細設定] > [SNMP] タブからテストトラップを送信します。

  6. ログファイルを表示します。

    # tail -f /tmp/traps.log
    2019-10-14 12:51:50 node001.vstoragedomain [UDP: [10.94.80.22]:40029->\
    [10.94.80.22]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: \
    (111150521) 12 days, 20:45:05.21#011SNMPv2-MIB::snmpTrapOID.0 = OID: \
    NET-SNMP-MIB::netSnmp.161.3.100#011NET-SNMP-MIB::netSnmp.161.2.1 = STRING: "TestTrap"\
    #011NET-SNMP-MIB::netSnmp.161.2.2 = STRING: "It is the test trap from VStorage"\
    #011NET-SNMP-MIB::netSnmp.161.2.3 = Counter64: 0
    

4.3.3. Zabbixを使用したストレージクラスターの監視

Zabbixでクラスターの監視を設定するには、以下の手順を実行します。

  1. [設定] > [詳細設定] > [SNMP] タブで、表示されたリンクをクリックしてZabbixのテンプレートをダウンロードします。

    注釈

    テンプレートはZabbix 3.xと互換性があります。

  2. Zabbixで、[構成] > [テンプレート] > [インポート] をクリックし、[参照] をクリックします。

    ../_images/zabbix1.png
  3. テンプレートに移動し、テンプレートを選択し、[インポート] をクリックします。

  4. [Configuration] > [Hosts] > [Create host] をクリックします。

    ../_images/zabbix2.png
  5. [Host] タブで、以下の手順を実行します。

    1. 管理ノードのホスト名とZabbixでの表示名を指定します。
    2. [New group] フィールドでvstorageを指定します。
    3. [Agent Interfaces] セクションを削除します。
    4. [SNMP interfaces] セクションを追加し、管理ノードのIPアドレスを指定します。
  6. [Templates] タブで、[Link new templates] フィールドの横にある [Select] をクリックします。

  7. [Zabbix Server:テンプレート] ウィンドウでテンプレートVStorageSNMPテンプレートのチェックボックスをオンにし、[選択] をクリックします。

    ../_images/zabbix3.png
  8. [Templates] タブに戻り、[Link new templates] セクションの [Add] リンクをクリックします。VStorageSNMPテンプレートが [Linked templates] グループに表示されます。

    ../_images/zabbix4.png
  9. ホストを設定してテンプレートを追加したので、[Add] ボタンをクリックします。

    ../_images/zabbix5.png

数分で、[Configuration] > [Hosts] 画面の [Availability] 列に表示されるクラスターのSNMPラベルが緑色になります。

../_images/zabbix6.png

クラスターのパラメータを監視するには、[監視] > [最新データ] 画面でフィルタの [ホストグループ][vstorage] に設定し、[適用] をクリックします。

[Configuration] > [Hosts] > <クラスター> > [Graphs] タブでパフォーマンスチャートを作成したり、[Monitoring] > [Screens] タブでチャートの作業場所を作成したりすることができます。

4.3.4. ストレージクラスターオブジェクトとトラップ

監視できるクラスター関連のオブジェクトは次のとおりです。

VSTORAGE-MIB:cluster
クラスターの全般情報。
VSTORAGE-MIB:csStatTable
チャンクサーバーの統計情報テーブル。
VSTORAGE-MIB:mdsStatTable
メタデータサーバーの統計情報テーブル。
VSTORAGE-MIB::clusterName
クラスター名。
VSTORAGE-MIB::healthStatus
クラスターの正常性ステータス。
VSTORAGE-MIB::usedLogicalSpace
すべてのデータチャンクとレプリカによって使用されている領域と、クラスターノードのディスクに保存されているその他のデータによって使用されている領域。
VSTORAGE-MIB::totalLogicalSpace
すべてのクラスターノードのディスクの合計領域。
VSTORAGE-MIB::freeLogicalSpace
すべてのクラスターノードのディスクで未使用の領域。
VSTORAGE-MIB::licenseStatus
ライセンスのステータス。
VSTORAGE-MIB::licenseCapacity
ライセンスによって定義された使用可能な最大ディスク領域。
VSTORAGE-MIB::licenseExpirationStatus
ライセンスの期限切れステータス。
VSTORAGE-MIB::ioReadOpS
現在の1秒あたりの読み取り速度(操作単位)。
VSTORAGE-MIB::ioWriteOpS
現在の1秒あたりの書き込み速度(操作単位)。
VSTORAGE-MIB::ioReads
現在の1秒あたりの読み取り速度(バイト単位)。
VSTORAGE-MIB::ioWrites
現在の1秒あたりの書き込み速度(バイト単位)。
VSTORAGE-MIB::csActive
アクティブなチャンクサーバーの数。
VSTORAGE-MIB::csTotal
チャンクサーバーの合計数。
VSTORAGE-MIB::mdsAvail
実行中のメタデータサーバーの数。
VSTORAGE-MIB::mdsTotal
メタデータサーバーの合計数。
VSTORAGE-MIB::s3OsAvail
実行中のS3オブジェクトサーバーの数。
VSTORAGE-MIB::s3OsTotal
S3オブジェクトサーバーの合計数。
VSTORAGE-MIB::s3NsAvail
実行中のS3ネームサーバーの数。
VSTORAGE-MIB::s3NsTotal
S3ネームサーバーの合計数。
VSTORAGE-MIB::s3GwAvail
実行中のS3ゲートウェイの数。
VSTORAGE-MIB::s3GwTotal
S3ゲートウェイの合計数。

監視できるCS関連のオブジェクトは次のとおりです。

VSTORAGE-MIB::csId
チャンクサーバーの識別子。
VSTORAGE-MIB::csStatus
現在のチャンクサーバーのステータス。
VSTORAGE-MIB::csIoReadOpS
現在の1秒あたりのチャンクサーバーの読み取り速度(操作単位)。
VSTORAGE-MIB::csIoWriteOpS
現在の1秒あたりのチャンクサーバーの書き込み速度(操作単位)。
VSTORAGE-MIB::csIoWait
I/O操作を待機している時間の割合。同期を待機している時間を含みます。
VSTORAGE-MIB::csIoReadS
現在の1秒あたりのチャンクサーバーの読み取り速度(バイト単位)。
VSTORAGE-MIB::csIoWriteS
現在の1秒あたりのチャンクサーバーの書き込み速度(バイト単位)。

監視できるMDS関連のオブジェクトは次のとおりです。

VSTORAGE-MIB::mdsId
メタデータサーバーの識別子。
VSTORAGE-MIB::mdsStatus
現在のメタデータサーバーのステータス。
VSTORAGE-MIB::mdsMemUsage
メタデータサーバーで使用されているメモリの量。
VSTORAGE-MIB::mdsCpuUsage
メタデータサーバーで使用されているCPUの容量の割合。
VSTORAGE-MIB::mdsUpTime
メタデータサーバーが起動してから経過した時間。

指定されたアラートによってトリガされるSNMPトラップは次のとおりです。

license expired
ライセンスの期限が切れています。
license_isnot_loaded
ライセンスが読み込まれていません。
too few free space
クラスターの論理領域が少なくなっています。
too_few_free_phys_space
クラスターの物理スペースが少なくなっています。
offline node
クラスターノードがオフラインです。
too few nodes
残っているクラスターノードが少なすぎます。
too few mdses
残っているMDSが少なすぎます。
too_much_mdses
ノードに複数のMDSがあります。
too few cses
残っているCSが少なすぎます。
failed mds
MDSサービスに障害が発生しました。
failed cs
CSサービスに障害が発生しました。
cses_on_single_tier_have_different_journalling_settings
CSのジャーナリング設定が正しくありません。
cses_on_single_tier_have_different_encryption_settings
CSの暗号化設定が正しくありません。
smart_failed
ディスクでS.M.A.R.T.チェックに失敗しました。
disk_failed
ディスクに障害が発生しました。
too_few_root_space
ノードのルートパーティションの容量が不足しています。
too_few_space_on_metadata_disk
MDSディスクの容量が足りません。
low_level_network_settings
ネットワークインターフェースに主要機能が欠落しています。
half_duplex
ネットワークインターフェースが全二重モードではありません。
low_speed
ネットワークインターフェースの速度が1Gbpsを下回っています。
undefined_speed
ネットワークインターフェースの速度が定義されていません。
network link
ネットワークインターフェースの設定に問題があります。
abgw_cert_expired
Backup Gatewayの証明書の有効期限が切れているか、間もなく有効期限が切れます。
iscsi_redundancy_disk
iSCSI LUNの障害ドメインセットは高可用性になっていません。
s3_redundancy_disk
S3クラスターの障害ドメインセットは高可用性になっていません。
software_updates
ノードが対象のソフトウェアアップデートがあります。
no_internet_connection
ノードがインターネットに接続されていません。
disk_write_cache_disabled
ディスク書き込みキャッシュは無効化されています。
disk_write_cache_status_unknown
ディスク書き込みキャッシュのステータスが不明です。
compute_unavailable
計算クラスターに障害が発生しました。
oom_happened
OOMキラーがトリガされました。
kernel_not_current
ノードのカーネルのバージョンが古くなっています。
no_ha
管理者パネルの高可用性が設定されていません。
time_not_synced
ノードで時間が同期されていません。
iscsi_upgrade_failed
iSCSIのメジャーアップグレードに失敗しました。
backend_backup_is_too_old
直近の管理ノードバックアップが失敗したか、または存在しないか古すぎます。
other
その他のアラート。
spla_push_stats_failed
スペース使用状況の統計情報をプッシュできません。
spla_license_load_failed
SPLAライセンスを適用できません。
spla_get_space_usage_failed
スペース使用状況を取得できません。

生成されるアラートとその説明の一覧については、アラートの表示を参照してください。