仮想マシンホストのテンプレート別重複監視について
いつも参考にさせていただいております。
VMware仮想マシンの監視について質問です。
VMwareの仮想マシンの監視に、
「ESXから見たステータス監視(Template Virt VMware Guest)」と、
「Zabbixエージェント機能を使った監視( Template OS Linux / Windows)」、
両方を(zabbix上)1ホストで監視したい場合はどうすればよいのか教えてください。
- 環境
Zabbix Server : ver 2.4.6
- 現在の状況
現在、VMwareの仮想マシン1台に対し、zabbix上では別ホスト扱いで2台として監視をしています。
1台目は、「Template Virt VMware」に設定されたESXから、デイスカバリで自動追加されたホスト
・・・テンプレートは「Template Virt VMware Guest」
2台目は「仮想マシンOSにエージェントをインストールして追加したホスト」です。
・・・テンプレートは「Template OS Linux」 または 「Template OS Windows」を利用しています
ホストを2台扱いにしている理由は、
・1台目のホストには各OSテンプレートが追加できない、
・2台目のホストに「Virt VMware Guest」テンプレートを追加すると、
一部情報(vmware.vm.cpu.usage等)が "became not supported "エラーとなり取得できないため
(e.g http://www.zabbix.jp/node/3383)
なのですが、zabbix上から1ホストで監視できる方法はありますでしょうか?
よろしくお願いいたします。
TNK - 投稿数: 4769
デフォルトのテンプレートの「Template Virt VMware」を利用する
場合は、VMwareからの情報とZabbixエージェントの情報の両方を1
つのホストとして設定することはできません。
「Template Virt VMware」を利用する場合には、ディスカバリルー
ルによって自動的にVMの増減に対応してホストが自動生成されます。
書かれている1台目というのがこの自動生成されたホストだと思わ
れますが、基本的には手動で編集することができないため、各OSの
テンプレートがリンクできなかったのでしょう。
2台目と書かれているのは、通常のZabbixエージェントでの監視用
にホストを追加されたのだと思います。
しかし、「Template Virt VMware Guest」内の各アイテムは、
「Template Virt VMware」のディスカバリルールに合わせて設計さ
れているので、これを直接ホストにリンクしても値が取得できない
と思われます。
手元に試せる環境が無いので実際には確認できていませんが、ホス
トの設定で、ホスト名を「Template Virt VMware」でディスカバリ
した時と同じ名前(UUID)に設定し、マクロで{$URL}、{$USERNAME}、
{$PASSWORD}も設定して「Template Virt VMware Guest」をリンク
させることで値を取得できるようになるかもしれません。
ただし、「Template Virt VMware」ですでにディスカバリされた状
態では、同じホスト名では登録できないでしょう。
さらに、個別にホストを手動で登録するとなると、「Template Virt
VMware」利用時のように、VMの増減に自動的に対応させることもで
きなくなってしまいます。
VMwareのプラットフォームとして、それぞれのリソースが過不足な
く機能しているかという監視を重視するのであれば、「Template
Virt VMware」で生成されたハイパーバイザーも含むホストの項目
を監視するでしょう。
また、それぞれのVM上のOSの詳細な状態変化やリソースの状態を細
かく把握して監視したいのであれば、Zabbixエージェントを利用す
るでしょう。
何を監視したいのか、目的に合わせて監視の設定方法をご検討くだ
さい。
mary0803 - 投稿数: 2
ご返信いただき、ありがとうございます。
まったくもって、、ご推察のとおりです。。(すごい。。)
そして、1台目のESXが無い状態でテストしてみました。
zabbixエージェントで追加したホストに「Template Virt VMware Guest」と
{URL}, {USERNAME}, {PASSWORD}を入れて確認したところ、
すべてのアイテムが zabbix_server.log で以下のエラーになり取得できませんでした。
====
item "vmware.vm.uptime[{$URL},{HOST.HOST}]" became not supported: セッションが認証されていません。
====
過去のこのフォーラムなどからUUID等の値を「ESX の自動ディスカバリで取得した時の値」と同じであること等確認しましたが、解決できず。。
# 「UUID」 = 「ESX自動デイスカバリでホスト作成された際のzabbix上のホスト名」認識で合ってますでしょうか...?
やはり監視目的のためには両ホストからの情報が必要&
2台になってもトラブルにはなっていないため、
今の設定がおかしくない使い方でしたら、これでいこうと思います。
mocha - 投稿数: 28
なんとなくですが 指定したマクロの値とURLで指定した先の認証がずれてしまっているのではないかという気がしてますがどうでしょうか・・・?
ディスカバリによるホスト自動追加はできませんが こちらではこんな考え方でテンプレートを改造し 1つのホストにVMware関連テンプレートと一般テンプレートをまとめてつかえるようにしています。
・VMware系テンプレート内の{HOST.HOST}を一般のマクロ{$VMUUID}に置き換え。
・Template Virt VMware内の「ホストのプロトタイプ」を無効化
# UUIDを調べるときだけ有効化
・各ホストのマクロで実際のUUIDを{$VMUUID}に定義。
・ESXiから情報を取る場合は {$URL}にESXiのパスを指定。 vCenterから情報を取る場合は{$URL}にvCenterのパスを指定。
・{$PASSWORD}はそれぞれ接続先にあわせて指定。
・ここまで準備ができたら 対象のホストにVMware系テンプレートを適用
・一般のZabbixAgent系テンプレートを適宜適用
ちなみに UUID自体はpysphereとかで調べることができますが 説明が大変なので割愛します・・・