vCenter Server 8.x でアラーム定義のアラーム名が空になる
search cancel

vCenter Server 8.x でアラーム定義のアラーム名が空になる

book

Article ID: 422115

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

免責事項:これは英文の記事「Alarm Definitions have empty Alarm Names in vCenter 8.x」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

アラーム定義にてアラーム名が空になっているものは、vCenter Server 8.x から削除されたにもかかわらず、8.x へのアップグレード中にvCenterデータベースから削除されなかったアラームが原因です。
vCenter Server のアップグレードプロセスでは、アラームのローカライズファイルは、8.x で存在するはずのアラームのみを含むように置き換えられています。

この問題は vCenter Server 8.x のみに影響し、9.x で修正される予定です。

Environment

vCenter Server 8.x 

Cause

vCenter Server がアラームのローカライズファイルから表示言語毎にローカライズしたアラーム情報を取得しようとした際に、ファイル内に対象のアラームについての情報が存在しないことで、アラームのシステム名に代わり空のアラーム名が返されます。

Resolution

この事象への対処は 2 つあります。

事象の発生しているアラームは、アップグレードによって削除または他のアラームに置き換えられるもののため、より簡単で推奨されるのは対処 1 のアラームの削除です。

 

対処 1 :

アラーム定義から空のアラームを削除します。

 

対処 2 :

空となっているアラームのローカライズ情報を作成します

  1. 対象の vCenter Server のパワーオフ状態でのスナップショット、またはバックアップを取得します。
  2. vCenter Server の Bash shell で次の 4 つのコマンドを実行し、ローカライズエントリがないアラーム名を見つけます。

    # psql -U postgres VCDB -c "select name from vpx_alarm" -o alarms.txt
    # (cat alarms.txt | grep -vi exhaust | head -n -3 | tail -n +3 | sort | awk -F "alarm." '{print $2}') > /tmp/temp1.txt
    # (find /etc/vmware-vpx -name alarm.vmsg | grep "en/" | xargs cat | grep -v "#" | grep -v "^$" | awk '{print $1}' | sed 's/\.[^.]*$//' | sort -u) > /tmp/temp2.txt
    # grep -Fxvf temp2.txt temp1.txt

    4 つ目の grep コマンドの出力の例は下記になります。

    # grep -Fxvf temp2.txt temp1.txt
    HostConnectionStateAlarm


  3. 手順 2 にて確認したエントリごとに、ローカライズファイルにアラームのエントリを作成します。

    /etc/vmware-vpx/locale/en/alarm.vmsg を編集します。

    Note : ローカライズファイルは GUI の表示言語毎の別々ディレクトリに存在します。日本語のローカライズファイルは下記になりますので、日本語での表示も修正が必要な場合はこちらのファイルも編集が必要です

    1. vim /etc/vmware-vpx/locale/en/alarm.vmsg にて vim エディタでファイルを開きます
    2. Shift + G でファイルの末尾に移動します
    3. i を押してテキストの挿入モードにします
    4. アラーム定義名が空となっているアラームの label と summary のエントリを作成します。

      HostConnectionStateAlarm.label = "Host connection and power state"
      HostConnectionStateAlarm.summary = "Default alarm to monitor host connection and power state"

      Note : 変更対象のローカライズファイルが英語 (en) 表示用のディレクトリのものでない場合、下記の日本語 (ja) での例のように、対応する言語にて記載します
      HostConnectionStateAlarm.label           = "ホストの接続と電源状態"
      HostConnectionStateAlarm.summary         = "ホストの接続および電源状態を監視するデフォルト アラーム"

  4. 関連するサービスを再起動します。
    service-control --restart vpxd
    service-control --restart vsphere-ui