**** 留意事項 *****
こちらのブログの内容はDECN(Dell EMC Community Network)に投稿されたブログの再掲です。
DECNが近い将来に廃止となるためこちらに移行させていただいております。
内容についてはオリジナルの執筆当時のものとなりますので最新ではない場合がありますがご容赦ください。
※本記事は前回の続きです。前回の記事はコチラ↓↓↓
vSphereのアラーム定義で一覧にないEventのアラームを定義する方法
さて、前回の記事ではより自由なアラーム定義の方法をご紹介しましたが、そのためにはEventIDが必要だということがわかりました。
厳密にはEventIDでなくともEventDescriptionを設定すればいいのですが、日本語の場合はスペースや句読点など正しく入力するには多少のハードルがありますので好ましくありません。
前回のEventを例にするとEventDescriptionは以下の二つになりますが、それぞれ微妙に半角スペースが用いられており、正しく入力できない懸念があります。
"RAM ディスクがいっぱいです。"
"RAM ディスクのファイル テーブルがいっぱいです。"
したがって、EventIDがわかるのであればEventIDで入力したいところです。
ではどうやってEventIDを調べるのか、というのが本記事の趣旨になります。
実はEvent自体はvCenter内に定義ファイルと思しきものがあるのでそれを見ればいいのです。
VMwareの公式情報があるわけではないですが、検証機で試したところ以下の場所に定義ファイルと思しきものを見つけることができました。
/etc/vmware-vpx/extensions/hostdiag/extension.xml
ちなみに確認で用いたvCenterのVersionは以下です。
BRANCH:vsphere65ep7
BUILDNUMBER:8815520
CLOUDVM_VERSION:6.5.0.21000
このファイルをみるとEventIDやそのDescriptionがまとめられているのがわかります。
ここから目的とするEventを探し出せばよい、ということになります。
このファイルのDescriptionは英語で書かれていますので、対象のEventの英語表記を探して対象のEventIDを取得すればよいのです。
「いや、オレは日本語のメッセージから探したいんだ!」
という強い意志をお持ち方は、同じくvCenter内にあるEventの日本語訳が定義されている(と思しき)ファイルを見てください。
検証環境のVCSAでは以下のファイルが該当しているようです。
/etc/vmware-vpx/extensions/hostdiag/locale/ja/event.vmsg
たとえば、今回の例でいうと以下のように書かれていました。
esx.problem.visorfs.ramdisk.full.description = "RAM ディスクがいっぱいです。"
esx.problem.visorfs.ramdisk.full.formatOnVm = ""
esx.problem.visorfs.ramdisk.full.formatOnHost = ""
esx.problem.visorfs.ramdisk.full.formatOnComputeResource = ""
esx.problem.visorfs.ramdisk.full.formatOnDatacenter = ""
esx.problem.visorfs.ramdisk.full.fullFormat = "RAM ディスク「{1}」がいっぱいです。 そのため、ファイル {2} を書き込むことができませんでした。"
したがって、対象のEventIDとして、esx.problem.visorfs.ramdisk.full が抽出できます。
同ファイルにはおそらくvCenterの定義Eventのすべてが記載されていると思われますので、そもそもEventDescriptionにすらアタリがついていない場合は、この中から適当なものを探し出すこともできます。
いかがでしたでしょうか?
2回に分けて紹介したアラーム定義の設定によって、いままで通知できなかったEventも通知できるようになりました。
本記事の内容が、VxRailに限らず、VMware環境の運用監視負荷軽減に寄与すれば幸いです。