この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Zabbixとは、サーバー、ネットワーク、アプリケーションを監視するためのソフトウェアです。
要するに、管理する必要のある複数のサーバについて、各種メトリクス(例えばCPU使用率やディスク使用量、特定のサービスのプロセスが稼働しているかどうか、TCPポートが応答するか等)を監視するシステムです。このメトリクスを定期的に監視することにより、その履歴をグラフとして可視化したり、事前に設定した条件に従って障害を判定し、管理者に通知できます。
ZabbixはGNU General Public License (GPL) version 2のもとにリリースされているため、誰でも無償で利用可能です。
Amazon LinuxにZabbixをインストールする
まず、EC2インスタンスを起動しましょう。本エントリーの内容は、執筆時点で最新のAmazon Linux AMI 2012.09の64bit版で検証しています。
ZabbixはEPELリポジトリで提供されているため、以下のコマンドでインストールできます。
$ sudo yum install --enablerepo=epel \
zabbix \
zabbix-agent \
zabbix-server \
zabbix-server-mysql \
zabbix-web \
zabbix-web-mysql \
mysql-server
次に、MySQLの初期設定を行います。yumによってインストールされたZabbixのバージョン(ここでは1.8.15)によって、初期化用のSQLファイルのパスが異なる可能性があることに注意してください。また、MySQLにおけるzabbixユーザのパスワード(下記では xxxxxxxx となっている部分)は適切に変えて設定しましょう。
$ sudo service mysqld start
$ sudo mysql -uroot
mysql> create database zabbix default character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'xxxxxxxx';
mysql> flush privileges;
mysql> exit
$ mysql -uroot zabbix </usr/share/doc/zabbix-server-mysql-1.8.15/create/schema/mysql.sql
$ mysql -uroot zabbix </usr/share/doc/zabbix-server-mysql-1.8.15/create/data/data.sql
$ mysql -uroot zabbix </usr/share/doc/zabbix-server-mysql-1.8.15/create/data/images_mysql.sql
[/bash]
/etc/zabbix/zabbix_server.conf を編集し、DBの設定を反映します。DBHostはデフォルト値がlocalhostなので、コメントアウトのままで構いません。DBUserもデフォルトでzabbixとなっています。DBPasswordについては項目がありませんので、DBに設定したパスワードを記述します。
続いて、PHPの設定を行います。ZabbixにはPHPのメモリ設定等、事前条件があるため、 /etc/php.ini において下記の値を確認の上、必要があれば修正してください。
最後に自動起動の設定を行い、zabbixを起動します。
以上で、コンソールからのインストール作業は完了です。
<h2 id="toc-zabbix">Zabbixの初期設定を行う</h2>
続いて、Webインターフェイスからの初期設定を行います。 http://(EC2ホスト名)/zabbix にアクセスすると、以下のようなウィザードが表れます。途中、特に入力の必要があるのは、ライセンスの同意とDB設定だけです。その他はデフォルトのままで構いません。
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_1-2013-01-30_1143.png" alt="zabbix_install_1-2013-01-30_1143" width="661" height="499" class="aligncenter size-full wp-image-43848" />
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_2-2013-01-30_1144.png" alt="zabbix_install_2-2013-01-30_1144" width="725" height="502" class="aligncenter size-full wp-image-43847" />
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_3-2013-01-30_1144.png" alt="zabbix_install_3-2013-01-30_1144" width="754" height="511" class="aligncenter size-full wp-image-43846" />
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_4-2013-01-30_1145.png" alt="zabbix_install_4-2013-01-30_1145" width="660" height="499" class="aligncenter size-full wp-image-43845" />
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_5-2013-01-30_1145.png" alt="zabbix_install_5-2013-01-30_1145" width="662" height="501" class="aligncenter size-full wp-image-43844" />
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_6-2013-01-30_1146.png" alt="zabbix_install_6-2013-01-30_1146" width="660" height="502" class="aligncenter size-full wp-image-43843" />
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_7-2013-01-30_1147.png" alt="zabbix_install_7-2013-01-30_1147" width="666" height="503" class="aligncenter size-full wp-image-43842" />
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_install_8-2013-01-30_1147.png" alt="zabbix_install_8-2013-01-30_1147" width="665" height="502" class="aligncenter size-full wp-image-43841" />
IDは「Admin」、passは「zabbix」でログインできます。
<img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_installed-2013-01-30_1148.png" alt="zabbix_installed-2013-01-30_1148" width="585" height="247" class="aligncenter size-full wp-image-43840" />
ログインしたら、すぐに右上の「Profile」から「Change password」を選択し、パスワードを変えておきましょう。ついでにLanguageを「Japanese (JP)」にすることで、UIを日本語化できます。
ダッシュボードが以下のように表示されれば、インストール完了です。
<a href="https://dev.classmethod.jp/cloud/aws/zabbix1_8_15-on-amazon-linux/attachment/zabbix-dashboard-2013-01-30_1717/" rel="attachment wp-att-43864"><img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix-dashboard-2013-01-30_1717.png" alt="zabbix-dashboard-2013-01-30_1717" width="640" height="429" class="aligncenter size-full wp-image-43864" /></a>
<h2 id="toc-">自分自身を監視してみる</h2>
この状態では、まだZabbixは何も監視をしていません。ひとまず自身のサーバを監視してみましょう。「設定」>「ホスト」のページに遷移し、「無効」となっているステータスをクリックし、有効にします。
<a href="https://dev.classmethod.jp/cloud/aws/zabbix1_8_15-on-amazon-linux/attachment/zabbix_enable-2013-01-30_1159/" rel="attachment wp-att-43853"><img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix_enable-2013-01-30_1159-640x233.png" alt="zabbix_enable-2013-01-30_1159" width="640" height="233" class="aligncenter size-medium wp-image-43853" /></a>
再び「監視データ」>「ダッシュボード」に戻り、しばらくするとダッシュボードにいくつかの障害が報告されて来ます。FTPやPOP3が動いていない、等の報告です。元々動かしていないので、当然ですね。設定の整備の際に検討しましょう。
「監視データ」>「グラフ」を選択し、右端にある「グラフ」のドロップダウンで CPU Loads 等を選択すると、時系列のグラフが表示されたりします。
<a href="https://dev.classmethod.jp/cloud/aws/zabbix1_8_15-on-amazon-linux/attachment/zabbix-chart-garbled-2013-01-30_1804/" rel="attachment wp-att-43871"><img src="https://devio2023-media.developers.io/wp-content/uploads/2013/01/zabbix-chart-garbled-2013-01-30_1804-640x471.png" alt="zabbix-chart-garbled-2013-01-30_1804" width="640" height="471" class="aligncenter size-medium wp-image-43871" /></a>
…お気づきでしょうか。マルチバイト人種の宿命、文字化けです。
<h2 id="toc-1">画像内に埋め込まれるフォントの文字化けに対応する</h2>
まず、IPAフォントをインストールしましょう。
$ sudo yum -y install ipa-gothic-fonts
続いて /usr/share/zabbix/include/defines.inc.php を編集します。
38,39c38,39
< define('ZBX_FONTPATH', '/usr/share/fonts/dejavu'); // where to search for font (GD > 2.0.18)
< define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
---
> define('ZBX_FONTPATH', '/usr/share/fonts/ipa-gothic'); // where to search for font (GD > 2.0.18)
> define('ZBX_GRAPH_FONT_NAME', 'ipag'); // font file name
79c79
< define('ZBX_FONT_NAME', 'DejaVuSans');
---
> define('ZBX_FONT_NAME', 'ipag');
リロードすれば、グラフに日本語が正常に表示されているはずです。
これにて、一件落着。