NutanixをZabbixで監視してみる

ゴールデンウィークから心身ともに帰ってこない感のある月曜ですが、休み中にちょこっと試してみた情報をメモとして残しておきます。

# Zabbixとは
言わずと知れたオープンソースの統合監視ソフトウェアです。

同じジャンルのOSSだと海外ではNagiosあたりのほうがメジャーかもしれませんが、
日本だとZabbixの人気が高いですね。他にはHinemosとかも。

言わずと知れた、といいながら私は今までこの辺のツールにあまり触れてこなかったので、
ゴールデンウィークの夜中にちょっと試してみました。

# CentOS 7にZabbixをインストールする
[Zabbix 3.0をCentOS 7にインストール](http://qiita.com/atanaka7/items/294a639effdb804cfdaa)を参考にさせて頂きました。

# Nutanix PrismでSNMP監視の設定を行う
これ以降の作業は[Nutanix Template for Zabbix](http://blog.alaben.net/2016/03/nutanix-template-for-zabbix/)(英語サイト)を参考にしました。

1. SNMPの設定メニューを開く
![01-SNMP-open.png](https://qiita-image-store.s3.amazonaws.com/0/76398/0f965a42-88e7-db67-23b8-aab3c17a235c.png)

2. SNMPでの情報取得に使用するプロトコルとポートの設定
[+ New Transports]というところをクリックして、Zabbixが情報取得に使うプロトコルを指定します。
Zabbixの場合、UDP 161番ポートが標準のようです。
![02-SNMP-transports.PNG](https://qiita-image-store.s3.amazonaws.com/0/76398/803ee197-8943-faf6-bd93-cfe5e749e586.png)

3. SNMPの認証に使用するユーザー情報の設定
[+ New User]をクリックして、SNMPでの情報取得時に行う認証用の設定を行います。
設定するのは"ユーザー名"、"PRIV KEY"、"AUTH KEY"の3つです。この3つは、後ほど行うZabbix側での設定にも使用しますので、忘れないようにしましょう。
"PRIV TYPE"と"AUTH TYPE"は一見プルダウンメニューで選択できそうなのですが、それぞれ”AES”と”SHA”しか選べません。
![03-SNMP-users.PNG](https://qiita-image-store.s3.amazonaws.com/0/76398/778bc8fa-609a-ca19-2638-74b0a0ae27a9.png)


4. MIBのダウンロード
[Download MIB]をクリックして、MIBを管理端末にダウンロードします。
後ほどZabbix側にアップロードしますので、保存しておきましょう。

Nutanix側で必要な作業は以上です(※Trapsの設定は不要)。
[Close]でSNMP設定メニューを閉じます。

# MIBのアップロード
MIBをZabbix Server(＝今回だとZabbixをインストールしたCentOS)にSCPなどでアップロードします。
保存先のパスは /usr/share/snmp/mibs ディレクトリ配下です。

[参考にした英語サイト](http://blog.alaben.net/2016/03/nutanix-template-for-zabbix/)では、アップロードしたらzabbix-serverサービスを再起動後、snmpwalkコマンドでテストするように書かれていましたが、そのままだとエラーが出てしまうため、下記の要領でMIBを明示的に指定したところ動作確認できました。（※太字のところはPrismで設定した情報や、自身の環境のIPアドレスに置き換える）

> snmpwalk -v 3 -a SHA -A **AUTH-KEY** -u **USERNAME** -x AES -X **PRIV-KEY** **NUTANIX-CLUSTER-VirtualIP** -l AuthPriv citContainerName -m /usr/share/snmp/mibs/NUTANIX-MIB

# Nutanix用のテンプレートをインポートする
[参考にした英語サイト](https://blog.devarieux.net/2016/03/nutanix-template-for-zabbix.html)の下のほう、”Zabbix"という段落に、筆者の方が作成したNutanix用のZabbixテンプレートがあるので、ダウンロードします。
※参考ページからテンプレートへのリンクが切れているのですが、元のファイルは[作者のGithub](https://github.com/aldevar/Zabbix_Nutanix_Template/blob/master/Template_SNMP_Nutanix_Cluster.xml)から入手できそうです。

本来であれば監視対象の機器に合わせて、監視設定を作り込む必要がありますが、このテンプレートを使用することで大幅に手間を省けています。ただし、MIBと見比べるとすべての項目を網羅しているわけではないようなので、これをベースに作り込みをしてみてもいいかもしれません。

ダウンロードしたら、Zabbixの管理画面から、[設定] > [テンプレート] > [インポート] をクリックします。
![05-Template-import.PNG](https://qiita-image-store.s3.amazonaws.com/0/76398/426ebcee-ccc9-a0e6-0165-cd40b441307b.png)

インポートメニューで、アップロードするテンプレートのファイルを選択したら、その他の設定は変えずにデフォルトのまま [インポート] をクリックします。
インポートしたテンプレートは、テンプレートの一覧に **Template SNMP Nutanix Cluster** という名前で登録されます。

# ホストの作成
Zabbixで監視データを取得する対象（＝ホスト）を作成します。

1. [設定] > [ホスト] > [ホストの作成] の順にクリックします。
![06-host-add.PNG](https://qiita-image-store.s3.amazonaws.com/0/76398/b3056d7e-493b-3d45-4d94-2b1341a01775.png)

2. [ホスト]タブで以下の設定をします。
・ホスト名（hotnameではなく監視対象につける表示名）
・所属グループ（既存のグループはどれもしっくりこないので、新規グループ作成でよさそう）
・エージェントのインターフェース → 削除(Zabbix Agentからの情報取得ではないため）
・SNMPインターフェース → [追加]をクリックして、Nutanix ClusterのVirtual IPを入力

3. 続けて[マクロ]タブで以下の設定をします。
・[参考にした英語サイト](https://blog.devarieux.net/2016/03/nutanix-template-for-zabbix.html)の"Zabbix"の段落を参照して、ホストマクロに3つのマクロを追加

設定を入力し終わったら [追加] をクリックして完了です。

# 取得された情報を見てみる
少し経つと、ZabbixがNutanix ClusterからSNMPで取得した情報を見ることができます。
[監視データ]メニュー内の[ダッシュボード]や[最新データ]を確認してみましょう。
![07-dashboard.PNG](https://qiita-image-store.s3.amazonaws.com/0/76398/6589cec2-1080-19e6-3792-0e5b1d29cc62.png)

Cluster, Container, CVM, Hypervisorなど各カテゴリの情報が取得できていることがわかります。
![08-LatestData.PNG](https://qiita-image-store.s3.amazonaws.com/0/76398/ca4c4922-a386-c111-59f3-bd3c856104b8.png)

以上です。