Windows10 で動かす Zabbix2

タイトルこそ "Windows10 で動かす Zabbix2" ですが、実際は"Windows10 の Hyper-V で動かす Zabbix2 アプライアンス"が正解です。

何かと Linux を使うという事は「専門性」が要求されるわけですが、自称"オープンソース専門家"ではなくても使えるオープンソースという考え方は重要だと思います。

ここでは Zabbix 2.2 仮想アプライアンスを Windows10 の Hyper-V 環境で動かすことを前提としています。

※ 最新の Zabbix 3.0 は Ubuntu ベースで、死ぬほど苦労したにも関わらず、動作させたところ不安定なところがいくつか見受けられました。また致命的な変更点は、通信の暗号化程度で、インターフェースがコスメティックに変化していた程度でした。ここでは 2.2 の利用方法を説明しています。まぁ現在 openSUSE が leap 版だという事もあり Zabbix 3.0 がUbuntu でも仕方がないでしょう。

※ 2019/7 現在 Zabbix4.2 が最新版です。

How to setup zabbix4.2 on openSUSE Leap 15.1 セットアップ

- Zabbix アプライアンスの入手 -

Zabbix アプライアンスはこちらから入手します。ここでは Hyper-V を使用しましたが、仮想環境があるのであれば、 XEN でも KVM, VMware のイメージでも構いません。
または

※ここでは Zabbix2.2 の説明をしています。ダウンロードするアプライアンスも 2.2 を取得してください。また、Zabbix アプライアンスは小規模ネットワークでの評価目的ですので、数千台のサーバーがあるデータセンターでの導入だとか、詳細なサポートは Zabbix LLC. のサポートを強くお勧めします。

アプライアンスの詳細はこちらのドキュメントをご参考ください。デフォルトのパスワードなどが記載されています。

-Zabbix アプライアンスの実装-

VHD の圧縮イメージを入手したら、任意のディレクトリに解凍します。

Hyper-V ウィザードから Zabbix アプライアンスの VHD イメージを実装します。
「新規仮想マシン」を作成します。ここでは Hyper-V の細かな導入、設定、操作方法は説明していませんのであしからずご了承ください。Hyper-V のデフォルトでネットワーク構成が「なし」(笑)なので、必ず、ブリッジを指定します。
ただし、仮想ハードディスクは「既存の仮想ハードディスクを使用する」から、解凍した VHD イメージを指定します。
Windows10 で動かす Zabbix2_a0056607_08162890.jpg

これがサマリです。必ず"ネットワーク"はブリッジ接続しましょう。デフォルトは "なし"です。
Windows10 で動かす Zabbix2_a0056607_08171013.jpg

Hyper-V マネージャから仮想アプライアンスに接続して起動すると openSUSE が起動して、仮想アプライアンスが起動します。root/zabbix のデフォルトでコンソールに接続できます。
Windows10 で動かす Zabbix2_a0056607_08193228.jpg

仮想アプライアンスは SUSE Linux で作られているため、あらかじめMicrosoft 製 Hyper-V 用の仮想ドライバが組み込まれています。

zabbixhv:~ # cat /var/log/messages | grep Microsoft
2016-03-22T02:13:06.804337+00:00 zabbixhv kernel: [ 0.000000] DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006 05/23/2012
2016-03-22T02:13:06.804340+00:00 zabbixhv kernel: [ 0.000000] Hypervisor detected: Microsoft HyperV
2016-03-22T02:13:06.806502+00:00 zabbixhv kernel: [ 13.505447] input: Microsoft Vmbus HID-compliant Mouse as /devices/virtual/input/input4
2016-03-22T02:13:06.806505+00:00 zabbixhv kernel: [ 13.505490] hid 0006:045E:0621.0001: input: <UNKNOWN> HID v0.01 Mouse [Microsoft Vmbus HID-compliant Mouse] on
zabbixhv:~ #

-IP の固定化-

openSUSE の yast ツールを使って、DHCP アドレスから固定 IP に変更します。

# yast

から Network Devices > Network Setting を開き
Windows10 で動かす Zabbix2_a0056607_08202214.jpg

DHCPだった IP の設定をEdit から Static/SubnetMask に変更します。
その他 'Hostname/DNS' タブと 'Routing' タブの DNS と Default Route を変更して OK を押します。
ついでに DNS 名、ホスト名が linux-xxxxx.site となっているので、例えば zabbix22.yourcompany.com などに変更します。変更結果は再起動した後、プロンプトに設定したホスト名に変更されます。
Windows10 で動かす Zabbix2_a0056607_08240357.jpg
※ ちなみに Zabbix Appliance には yast に必要なメニューしかバンドルされていません。 # zypper install yast2* を実行すると、様々な楽し気でナイスなメニューが出てきます。使えないものもありますが ......

-NTP の変更-

NTP は公共の ntp プールを使っているので、できれば、LAN内部の NTP サーバーを使用するようにしましょう。
Windows10 で動かす Zabbix2_a0056607_08243787.jpg

yast > Network Service > NTP servivce の Add メニューから "Server"、 イントラネット内部の NTP サーバーを指定します。実際通信できているかは TEST ボタンを押して確認します。
Windows10 で動かす Zabbix2_a0056607_08250863.jpg

これが出来上がった ntp の状態です。デフォルトで Hardware Clock が指定されていますが、これは削除するのがよいでしょう。
Windows10 で動かす Zabbix2_a0056607_08255976.jpg
-PHP.ini の書き換え-

php.ini の書き換えはタイムゾーンの変更だけです。ここだけは vi を使います

# vi /etc/php5/apache2/php.ini

で php.ini を開き

# date.timezone = 'UTC'
の部分をコメントアウトして
date.timezone = Asia/Tokyo
に変更します。

zabbixhv:/etc/php5/apache2 # ls php.ini
php.ini
zabbixhv:/etc/php5/apache2 # cat php.ini | grep timezone
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
#date.timezone = 'UTC'
date.timezone = Asia/Tokyo
zabbixhv:/etc/php5/apache2 #

なお、PHP は Zabbix アプライアンス内部で最適化されているようです。百台程度のデバイスの評価目的ならメモリなどのチューニングはデフォルトのままで結構でしょう。ソースから導入する場合は、 php.ini を書き換える必要があるそうです。

HOSTNAME の変更が反映されるよう、サーバーを再起動して、NTP や Apacheなどが起動したら、ブラウザのフロントエンドからブラウザのアドレスバーに、固定したアドレスをセットして Admin/zabbix でログインします。
Windows10 で動かす Zabbix2_a0056607_08264524.jpg
Monitoring > Graphs の右端の時刻が日本時間になっていれば php.ini のタイムゾーンの設定はOKです。
Windows10 で動かす Zabbix2_a0056607_08273906.jpg
※ここでのキャプチャ画面は英語ですが、右上のプロファイルメニューから日本語に変更できます。

- 監視対象ホストの設定 -

Configuration > Host から "Create Host" ボタンを押して、監視対象のホストを登録します。
Windows10 で動かす Zabbix2_a0056607_08290076.jpg
"Host Name", "Visual Name" をセットして
- "Agent Interface" -- エージェントがなければ空欄でも構いません。
- "SNMP Interface" に Add ボタンで監視対象のコンピュータの "DNS名"、もしくは IP を設定します。DNS名を設定した場合、IP アドレスは空欄でも構いません。一旦 "Save" しましょう。
Windows10 で動かす Zabbix2_a0056607_08293183.jpg
次にHost の "Template" タブを開き Link new Template から Template SNMP OS Linux を選びます。空欄に "snmp" と入れると、テンプレート snmp のリストが出るので、一番近いテンプレートを選び 'Add' し、'Save' します。
Windows10 で動かす Zabbix2_a0056607_08300907.jpg
監視対象が Windows や NAS, スイッチング HUB などの場合は "SNMP Generic" など近いものを選ぶと良いでしょう。


ここから5分ほど置いてからホスト一覧を再読み込みしてください。 Availability のところが"緑色" になっていれば、 SNMP 監視が始まっています。登録した当初は Grafhs(x) の値が0になっていますが、 Zabbix がデータを収集し始めると、設定されたアイテムに従って、グラフデータを収集し始めます。
Windows10 で動かす Zabbix2_a0056607_08313099.jpg

SNMPの監視が始まってから約1時間待つと、"Graph" の数値が 0 からいくつかのグラフ数が入り、描画が始まります。
Monitoring > Graph を選び、右のトグルボタンから"Group"、"Host"、"Graphの対象(Eth0など)" を選ぶとグラフが表示されます。
Windows10 で動かす Zabbix2_a0056607_08323381.jpg
※ここはとにかく1時間じっくり待ちます。とにかく慌てないこと。

-監視対象は SNMP が動いているか-

監視対象デバイスで snmp が動いているかどうかは snmpwalk を使って確認します。一般的な NAS やスイッチングHUB などの場合、 バージョンは version '2c' コミュニティ名は Read Only(RO) の 'public' を指定すればよいでしょう。この記事では Trap の機能までは説明しません。

ちなみに SUSE Linux はデフォルトでは正しく動作しません。net-snmp パッケージを導入して snmpd.conf の Community 行の書き換えが必要です。snmpwalk に使用する OID .1.3.6.1.2.1.1 などは、MIB 関連のドキュメントを読んで勉強してください。(と逃げる)

zabbixhv:~ # snmpwalk -v 2c -c public dns2.intra .1.3.6.1.2.1.1
Created directory: /var/lib/net-snmp/mib_indexes
SNMPv2-MIB::sysDescr.0 = STRING: Linux dns2 3.0.101-63-xen #1 SMP Tue Jun 23 16:02:31 UTC 2015 (4b89d0c) x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

: 略

zabbixhv:~ #

とズラズラ帰ってくれば、Zabbix の snmp での状態監視はできるようです。帰ってこない場合は、コミュニティストリングが違うとか、snmp が disable になっているとか、snmp なんて機能ないよ、という SOHO 機器の場合に起こりえます。諦めましょう。


- デスクトップPCでも試せる Zabbix -

実際、この体験はデスクトップPCではなく、一般的なモバイルPCで行いました。特別なサーバーハードウェアを用意しなくても Zabbix の "体験"ができるのは貴重なことです。

この体験を通じて本格的なネットワークモニタリングツールの導入、運用、トレーニングができればと思います。


あわせて読みたい
まぁ、長期運用はやめた方がいいようですね。




by islandcenter | 2016-03-23 08:33 | プライベートクラウド | Comments(0)