LoginSignup
15
12

More than 5 years have passed since last update.

Zabbixをインストールして簡単に動作確認を行う

Last updated at Posted at 2015-02-21

ちょっと長めの前置き

自分用のWebアプリケーションをいくつか動作させていて、それらが正常動作しているかの確認にAlertMeを利用しています。定期的にアプリにHTTPアクセスを行い、時間がかかりすぎると障害としてメールが飛んできます。

AlertMeは簡単に設定できて非常に便利に使っていますが、CPU使用率、ディスク容量など他の項目も柔軟に監視したいと思い、別の監視サービスを利用しようと思います。自宅ではRaspberry Piを動作させているので、これのCPU温度やHDD健康状態も監視したいですね。

私はOpenShiftをよく使っており、dkanbier/openshift-zabbix-quickstartを使ってZabbix Serverをインストールし、RPi側にはZabbix Agentをインストールして監視しようとしましたが、どうにも「Zabbix agent on {HOST_NAME} is unreachable for 5 minutes」というエラーが解消できませんでした。 OpenShiftにZabbix Serverを建てる方向は諦めました。後述。

そこで、とりあえず普通にインストールした場合にZabbixをどのように設定すればよいのかを試すため、VagrantにZabbix ServerとZabbix Agentをセットアップして動作を確認したいと思います。

前提

Zabbixのインストールは、4 ソースからのインストール [Zabbix Documentation 2.2]の手順で行います。

Vagrantを使用するので、あらかじめ使用可能にしてください。

PCはMacBookProを使用していますが、Windowsでも適宜読み替えれば問題無いはずです。

NOTE: vagrant-vbox-snapshot

Vagrantで作業する時は、vagrant-vbox-snapshotを使うと便利。各ステップごとにスナップショットを取得しておくと、手順を間違えたりした時にすぐに戻せます。

VagrantでCentOSを使用する

ここではchef/centos-6.5を使用しますが、好きなOSを使用すれば良いです。

$ vagrant init chef/centos-6.5

ゲストOS側の80番ポートをホストOSの10080番ポートにフォワードする設定をVagrantfileに追記します。

Vagrantfile
config.vm.network "forwarded_port", guest: 80, host: 10080

Vagrantを起動します。

$ vagrant init chef/centos-6.5

起動したCentOSにsshでログインします。

$ vagrant ssh

NOTE: Windowsの場合、sshコマンドが無いため失敗するはずです。Cygwinを入れるとか、TeraTermで接続するとかしてください。

前提パッケージのインストール

インストール済みのパッケージを最新化します。

$ sudo yum -y update

開発ツールをインストールします。

$ sudo yum -y groupinstall "Development tools"

DBエンジンとしてMySQLを使用したいので、開発用ファイルも含めてインストールします。DBとしては他にPostgreSQL、Oracle、DB2、SQLiteが使えるようです。

$ sudo yum -y install mysql-server mysql-devel
$ sudo chkconfig mysqld on
$ sudo service mysqld start

Zabbixが必要とするソフトウェアをインストールします。これは、後で行う./configureのエラーを見ながらつどインストールしたほうが良いかもしれません。

$ sudo yum -y install libxml2 libxml2-devel net-snmp net-snmp-devel curl libcurl libcurl-devel

Zabbixソースコードのダウンロード

インストールパッケージが提供されていますが、今回はソースコードからインストールすることにします。ソースコードはSourceForge.netで提供されているので、そこからダウンロードリンクを取得して、wgetなどでダウンロードします。

$ wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.8/zabbix-2.2.8.tar.gz?r=http%3A%2F%2Fwww.zabbix.com%2Fdownload.php&ts=1424460111&use_mirror=tcpdiag

NOTE: zabbix-2.2.8.tar.gzというファイル名になれば良いですが、クエリパラメータも含めた変なファイル名になってしまうことがあるので、リネームします。

展開します。

$ tar zxvf zabbix-2.2.8.tar.gz

Zabbix用ユーザーを作成する

Zabbixが使用するユーザーを作成します。とりあえずここではzabbixというユーザーを作成しますが、セットアップ手順に注意事項が書いてあるので、それを熟読したほうが良いです。

$ sudo groupadd zabbix
$ sudo useradd -g zabbix zabbix

DBを作成する

DBを作成し、zabbixに用意されているSQLスクリプトを実行します。

まず、DBを作成します。

mysql> create database zabbix character set utf8 collate

次にzabbixに用意されているSQLスクリプトを実行します。

$ mysql -u root -p zabbix < database/mysql/schema.sql
$ mysql -u root -p zabbix < database/mysql/images.sql
$ mysql -u root -p zabbix < database/mysql/data.sql

ソースを設定し、インストールする

./configureを実行し、ソースを設定します。インストールするソフトウェアや使用するDBエンジンによって設定方法が異なりますが、ここではZabbix ServerとZabbix AgentをインストールしてMySQLを使用するよう設定します。

$ ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

関連ソフトウェアが揃っていれば、エラーが表示されず終了します。

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

設定が成功しました。言われた通り、make installを実行します。

$ sudo make install

インストールが完了しました。

NOTE: 関連ソフトウェアがインストールされていない場合

関連ソフトウェアがインストールされていないと、エラーになります。

configure: error: LIBXML2 library not found

LIBXML2が見つからないため、yum search libxml2を実行してそれっぽいパッケージを探し、インストールします。

$ sudo yum -y install libxml2 libxml2-devel

./configureを再実行します。

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

Net-SNMPが見つからないため、yum search net-snmpを実行してそれっぽいパッケージを探し、インストールします。

$ sudo yum -y install net-snmp net-snmp-devel

./configureを再実行します。

configure: error: Curl library not found

Curlライブラリが見つからないため、yum search curlを実行してそれっぽいパッケージを探し、インストールします。

$ sudo yum -y install curl libcurl libcurl-devel

./configureを再実行します。

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

設定が成功しました。

設定ファイルの編集

Zabbix Serverの設定ファイルは/usr/local/etc/zabbix_server.confにあります。

Zabbix Agentの設定ファイルは/usr/local/etc/zabbix_agentd.confにあります。

とりあえず今回は編集することがないので、そのままにしておきます。

NOTE: zabbix_agent.confというファイルもありますが、こちらは使用しないようです。

Zabbix ServerとZabbix Agentを起動

Zabbix Serverを起動します。

$ zabbix_server

Zabbix Agentを起動します。

$ zabbix_agentd

コンソールには何も出力されないですが、これで起動します。ps aux | grep zabbixで起動していることが確認できます。

Webインターフェイスをインストール

Zabbix ServerはWebインターフェイスを持ちますが、これは何らかのWebサーバーでPHPアプリケーションとして動作します。なので、まずApache HTTP ServerとPHPをインストールします。

$ sudo yum -y install httpd php
$ sudo chkconfig httpd on
$ sudo service httpd start

Webインターフェイスをインストールします。単にWeb公開フォルダに配置するだけです。

$ sudo mkdir /var/www/html/zabbix
$ cd frontends/php/
$ sudo cp -a . /var/www/html/zabbix/
$ sudo chown -R apache:apache /var/www/html/zabbix/

Webブラウザからhttp://localhost:10080/zabbix/にアクセスします。

Zabbix Web Interface Installation 1

「Next」をクリックします。

Zabbix Web Interface Installation 2

必要要件がチェックされます。要件を満たしていない場合、「Fail」が表示されます。「Fail」にカーソルをポイントすると、どうすれば良いかが表示されます。

Zabbix Web Interface Installation 3

ここでは、以下の項目が「Fail」になりました。

  • PHP option post_max_size
  • PHP option max_execution_time
  • PHP option max_input_time
  • PHP time zone
  • PHP databases support
  • PHP bcmath
  • PHP mbstring
  • PHP gd
  • PHP gd PNG support
  • PHP gd JPEG support
  • PHP gd FreeType support
  • PHP xmlwriter
  • PHP xmlreader

これを解消します。

まずPHPオプションを設定するため、/var/www/html/zabbix/.htaccessファイルを作成し、内容を以下のようにします。

/var/www/html/zabbix/.htaccess
php_value post_max_size 16M
php_value max_execution_time 300
php_value max_input_time 300
php_value date.timezone Asia/Tokyo

.htaccessが禁止されている場合、/etc/httpd/conf/httpd.confを編集します。

/etc/httpd/conf/httpd.conf
AllowOverride All

次に、PHPモジュールをインストールします。不足しているモジュールを「Fail」をクリックして調べて、yumでインストールしていきます。

$ sudo yum -y install php-mysql php-bcmath php-mbstring gd gd-devel php-gd php-xml

Apache HTTP Serverを再起動します。

$ sudo service httpd graceful

Webブラウザに戻り、「Retry」ボタンをクリックします。必要要件を満たしていれば、全て「OK」になります。まだ「Fail」が表示されている場合、個別に解消方法を調べてください。

Zabbix Web Interface Installation 4

「Next」をクリックします。

Zabbix Web Interface Installation 5

DB接続を設定します。設定を入力し、「Test connection」をクリックすることでDB接続を確認できます。ここは変更はしません。設定に問題が無ければ、「OK」が表示されます。

Zabbix Web Interface Installation 6

「Next」をクリックします。

Zabbix Web Interface Installation 7

Zabbix Serverの設定を入力します。ここでは何も変更しませんので、そのまま「Next」をクリックします。

Zabbix Web Interface Installation 8

「Next」をクリックします。

Zabbix Web Interface Installation 9

設定ファイルが作成され、問題無ければ「OK」が表示されます。「Finish」をクリックすることで、インストールが完了します。

Zabbixにログインし、Zabbix Server自体の監視を開始

Login

インストールが完了すると、ログインページが表示されます。初期ユーザーは「Admin」、パスワードは「zabbix」になっていますので、入力して「Sign in」をクリックします。

Dashboard

ログインすると、ダッシュボードが表示されます。すぐにAdminユーザーのパスワード変更や、作業ユーザーの作成などを行うべきですが、ここではとりあえずスキップします。

Zabbix Server自体の監視を有効にするため、メニューの「Configuration」→「Hosts」をクリックします。

Hosts

リストに「Zabbix server」が表示されますので、クリックします。

Hosts

「Status」を「Monitored」に変更して、「Save」をクリックして設定を保存します。

Hosts

リストの「Zabbix server」の「Status」が「Monitored」に変わっていることがわかります。

メニューの「Monitoring」→「Graphs」をクリックして、「Graph」を適当に、例えば「CPU load」に設定すると、グラフが表示されて監視できていることがわかります。

Graph

おわりに

これでZabbixの簡単な動作が確認できたので、次はOpenShiftにZabbix Server、RPiにZabbix Agentをセットアップして監視をしたいと思います。

NOTE: Zabbix Server on OpenShiftを諦めたわけ

OpenShiftではポートを開けられないっぽい。rhc port-forwardはローカル→OpenShiftのsshフォワーディングであり用途が違うし…

AWSかDigitalOceanにZabbix Serverを建てる方向で検討します。

15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12