オープンソース統合監視ツール Zabbix を使ってみよう(入門編)

第 1 回 Zabbix を動かしてみよう

本記事では、Zabbixのインストール、基本的な設定、監視対象と基本的な監視項目の設定方法をご紹介します。

  1. はじめに
  2. 対象環境
  3. 必要なソフトウェア
  4. 基本的な構築の流れ
  5. インストール前の準備
  6. Zabbix サーバのインストール
  7. Zabbix サーバの起動
  8. Zabbix エージェントのインストール
  9. Zabbix エージェントの起動
  10. Zabbix フロントエンドのインストール
  11. Zabbix 管理画面へのログイン
  12. ユーザの登録
  13. ホストの登録
  14. テンプレートの作成
  15. アイテムの登録
  16. 監視対象の状態の確認
  17. まとめ

1. はじめに

Zabbix は、オープンソースの企業向けシステム監視ツールです。 Web ベースの使いやすい管理インタフェース、大規模な監視への対応、可視化機能などが特長です。

今回は、Zabbix エージェントをインストールした監視対象機器の動作状況が 管理画面から閲覧できるようになるまでを扱います。 Zabbix 導入の全体の流れを理解したり、初めての方が作業の感覚を掴めるように、 画面を交えながらインストールから基本的な設定まで解説していきます。

2. 対象環境

Zabbix の要件とサポートする環境は以下を参照してください。

システム要件: http://www.zabbix.com/jp/requirements.php

ここでは以下の環境に Zabbix を導入します。 なお、別途管理画面にアクセスするための Web ブラウザを動作させるコンピュータが必要です。 本記事では Windows 7 で Firefox 20 を使用します。

役割 OS ホスト名 (IPアドレス)
監視サーバ CentOS 6.3 (x86_64) zabbix-server (192.168.5.1)
監視エージェント CentOS 6.3 (x86_64) zabbix-agent (192.168.5.2)

3. 必要なソフトウェア

以下のサイトから Zabbix をダウンロードします。 コンパイル済みのバイナリや仮想マシンのイメージも配布されていますが、 ここではソースコードからインストールを行います。

ダウンロード: http://www.zabbix.com/jp/download.php

「Zabbix ソース」の「ダウンロード」をクリックし、 zabbix-2.0.5.tar.gz をダウンロードします。

また、Zabbix の動作には以下のソフトウェアが必要になります。

  • Apache httpd (1.3.12以上)
  • PHP (5.1.6以上)
  • PostgreSQL (8.1以上)

本記事では、Apache, PHP はディストリビューション標準のものを使用します。 PostgreSQL はソースコードからインストールします。 以下のページから最新のソースコードをダウンロードします。 ここでは postgresql-9.2.4.tar.bz2 を使用します。

ダウンロード: http://www.postgresql.org/download/

4. 基本的な構築の流れ

Zabbix は、最も基本的な構成では、監視対象となる機器と、監視対象からの情報の収集と ユーザへの Web インタフェースの提供を行うサーバの 2 つから構成されます。

以下の流れで構築作業を行います。

  1. Zabbix サーバのインストール
  2. Zabbix エージェントのインストール
  3. Zabbix フロントエンドのインストール
  4. 管理画面にログインし、ユーザ、ホスト(監視対象)の登録
  5. テンプレート、アイテムの登録
  6. トリガー(条件)、アクション(通知)、グラフ、スクリーンの設定

今回は1〜5までの作業を行います。

5. インストール前の準備

Zabbix サーバ上で SELinux が有効になっていると、設定ファイルの書き込みに失敗するため、 インストールに失敗します。 事前に SELinux を無効もしくは permissive に変更する、設定ファイルのセキュリティコンテキストを変更する、 のいずれかの設定を行う必要があります。

また、Zabbix サーバに Zabbix と PostgreSQL を動作させるユーザをあらかじめ作成しておきます。

# adduser zabbix
# adduser postgres

6. Zabbix サーバのインストール

1. 必要なソフトウェアのインストール

Zabbix に必要なソフトウェアをインストールします (「$」は一般ユーザ、「#」は root ユーザのコマンドプロンプトを表します)。

Apache、PHP、その他ビルドと実行に必要なライブラリをインストールします。

# yum install httpd php php-pgsql php-mbstring php-bcmath php-xml php-gd
# yum install readline-devel zlib-devel

PostgreSQL をコンパイル、インストールし、Zabbix 用のデータベースを作成します。

$ tar jxf postgresql-9.2.4.tar.bz2
$ cd postgresql-9.2.4
$ ./configure
$ make
$ su
# make install
# mkdir /usr/local/pgsql/data
# chown postgres:postgres /usr/local/pgsql/data
# su - postgres
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data -E UTF8 --no-locale
$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
$ /usr/local/pgsql/bin/createuser -U postgres zabbix -P -S -R -D
Enter password for new role: (パスワードを入力)
Enter it again: (パスワードを入力)
$ /usr/local/pgsql/bin/createdb -U postgres -O zabbix -E UTF8 zabbix
$ exit
# exit
$ cd zabbix-2.0.5
$ /usr/local/pgsql/bin/psql -U zabbix zabbix < database/postgresql/schema.sql
$ /usr/local/pgsql/bin/psql -U zabbix zabbix < database/postgresql/images.sql
$ /usr/local/pgsql/bin/psql -U zabbix zabbix < database/postgresql/data.sql

2. Zabbix サーバのコンパイル

Zabbix サーバを PostgreSQL サポート付きでコンパイル、インストールします。 必要に応じて追加でサポートしたい機能をオプションで選択してください。

$ tar zxf zabbix-2.0.5.tar.gz
$ cd zabbix-2.0.5
$ ./configure --prefix=/usr/local --enable-server --with-postgresql=/usr/local/pgsql/bin/pg_config

以下のメッセージが表示されたら、makeを実行します。

Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              gcc
  Compiler flags:        -g -O2    -I/usr/local/pgsql/include

  Enable server:         yes
  Server details:
    With database:         PostgreSQL
    WEB Monitoring via:    no
    Native Jabber:         no
    SNMP:                  no
    IPMI:                  no
    SSH:                   no
    ODBC:                  no
    Linker flags:          -rdynamic       -L/usr/local/pgsql/lib
    Libraries:             -lm -lrt  -lresolv      -lpq

  Enable proxy:          no

  Enable agent:          no

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          no

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

$ make
$ su
# make install

無事インストールに成功すると、実行ファイルが以下の場所に作成されます。

# ls -l /usr/local/sbin/zabbix_server
# -rwxr-xr-x. 1 root root 2315341  4月  9 14:36 2013 /usr/local/sbin/zabbix_server

3. Zabbix サーバの設定ファイルの修正

以下のZabbixサーバの設定ファイルを修正します。

# vi /usr/local/etc/zabbix_server.conf

以下の行を変更もしくは追加します。

DBHost=  ← PostgreSQLをZabbixサーバと同じホストで動作させる場合は空欄にします
DBUser=zabbix
DBPassword=(パスワード)
DBPort=5432

4. 起動スクリプトの設定

ソースコードに同梱されている Fedora 用の起動スクリプトをコピーします。

# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/

コピーした起動スクリプトの次の行をインストールした場所に合わせて修正します。 今回は /usr/local にインストールしたためデフォルトのままで構いません。

ZABBIX_BIN="/usr/local/sbin/zabbix_server"

起動スクリプトをシステムサービスに登録して、動作ランレベルで on になっていることを確認します。

# chkconfig --add zabbix_server
# chkconfig zabbix_server on
# chkconfig --list zabbix_server
zabbix_server   0:off   1:off   2:on    3:on    4:on    5:on    6:off

7. Zabbix サーバの起動

Zabbix サーバプロセスを service コマンドで起動します。

# service zabbix_server start
Zabbix Server を起動中:                                    [  OK  ]

Zabbix サーバが zabbix ユーザで起動していることを確認します。

# ps aux | grep zabbix_server
zabbix    3740  0.0  0.2 109188  1736 ?        S    14:49   0:00 /usr/local/sbin/zabbix_server
...

8. Zabbix エージェントのインストール

1. 準備

監視対象マシンで Zabbix エージェントを動作させるユーザを作成します。

# adduser zabbix

Zabbix エージェントはデフォルトで 10050 番ポートを使用します。 ファイアウォールが有効な場合は 10050 番ポートへの接続を受け付けるようにしてください。

2. Zabbix エージェントのコンパイル

Zabbix のソースコードを監視対象のマシンにコピーして、展開します。 ここではエージェントのみをコンパイル、インストールします。

$ tar zxf zabbix-2.0.5.tar.gz
$ cd zabbix-2.0.5
$ ./configure --prefix=/usr/local --enable-agent
$ make
$ su
# make install

無事インストールに成功すると、実行ファイルが以下の場所に作成されます。

# ls -l /usr/local/sbin/zabbix_agent
-rwxr-xr-x. 1 root root 656022  4月  9 17:51 2013 /usr/local/sbin/zabbix_agent

3. Zabbix エージェントの設定ファイルの修正

以下の Zabbix エージェントの設定ファイルを修正します。

# vi /usr/local/etc/zabbix_agentd.conf

以下の行を変更もしくは追加します。

Server=(Zabbix サーバの IP アドレス)
Hostname=(Zabbix エージェントのホスト名) ← Zabbix サーバ上の設定と合わせる必要があります
ServerActive=(Zabbix サーバの IP アドレス)

4. 起動スクリプトの設定

ソースコードに同梱されている Fedora 用の起動スクリプトをコピーします。

# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

コピーした起動スクリプトの次の行をインストールした場所に合わせて修正します。 今回は /usr/local にインストールしたためデフォルトのままで構いません。

ZABBIX_BIN="/usr/local/sbin/zabbix_agentd"

起動スクリプトをシステムサービスに登録して、動作ランレベルで on になっていることを確認します。

# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
# chkconfig --list zabbix_agentd
zabbix_agentd   0:off   1:off   2:on    3:on    4:on    5:on    6:off

9. Zabbix エージェントの起動

Zabbix エージェントプロセスを service コマンドで起動します。

# service zabbix_agentd start
Zabbix Agent を起動中:                                     [  OK  ]

Zabbix エージェントが zabbix ユーザで起動していることを確認します。

# ps aux | grep zabbix_agentd
zabbix   10245  0.0  0.0  15484   704 ?        S    17:56   0:00 /usr/local/sbin/zabbix_agentd
...

10. Zabbix フロントエンドのインストール

1. PHP の設定ファイルの修正

PHP の設定ファイルを修正します。

# vi /etc/php.ini

(変更前)
max_execution_time = 30
max_input_time = 60
post_max_size = 8M
upload_max_filesize = 2M
;date.timezone =

(変更後)
max_execution_time = 600
max_input_time = 600
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Tokyo

2. フロントエンドのインストール

ソースコードに含まれるフロントエンド用 PHP ファイル群を Web サーバのコンテンツディレクトリにコピーし、conf ディレクトリの所有者を apache に変更します。

# cp -a frontends/php /var/www/html/zabbix
# chown apache:apache /var/www/html/zabbix/conf

3. グラフ表示用日本語フォントの設定

グラフで日本語を表示できるようにします。日本語フォントをコピーします。

# cp /usr/share/fonts/ipa-gothic/ipag.ttf /var/www/html/zabbix/fonts/

次のファイルのフォント設定を変更します。

# vi /var/www/html/zabbix/include/defines.inc.php

(変更前)
define('ZBX_GRAPH_FONT_NAME',           'DejaVuSans'); // font file name

(変更後)
define('ZBX_GRAPH_FONT_NAME',           'ipag'); // font file name

4. Web サーバの起動

Web サーバを起動します。

# service httpd start
httpd を起動中:                                            [  OK  ]

5. Web ブラウザから初期設定

以下の URL に Web ブラウザからアクセスして、初期設定を行います。

http://(Zabbix サーバのアドレスまたはホスト名)/zabbix

Next >> をクリックして次の画面に進みます。 「2.Check of pre-requisites」で、すべての項目が OK であることを確認してください。

「3.Configure DB connection」では次のように設定します。

Database typePostgreSQL
Database host(空欄)
Database port5432
Database namezabbix
Userzabbix
Password(データベースの zabbix ユーザのパスワード)

Test connection をクリックし、OK と表示されることを確認してください。

「4.Zabbix server details」ではフロントエンドから Zabbix サーバへの接続先を設定します。 Zabbix サーバとフロントエンドを同じホストで動作させる場合はデフォルトのままで構いません。

「5.Pre-Installation summary」で設定内容を確認します。よければ次に進みます。

「6. Install」で created: OK が表示されたらインストール完了です。 Finish をクリックして完了します。

11. Zabbix 管理画面へのログイン

インストール直後の状態ではユーザ名「Admin」、パスワード「zabbix」で管理者権限でログインできます。 ログイン後パスワードを変更することを推奨します。

ログインに成功したら、Zabbix のダッシュボード画面が表示されます。

管理画面を日本語表記にしたい場合は、右上の [Profile] を選択し、 「Language」で「Japanese (ja_JP)」を選択し、Save をクリックしてください。 以降は日本語表記で説明します。 パスワードを変更したい場合は [パスワード変更]([Change password])をクリックしてください。

12. ユーザの登録

管理画面の 管理(Administration) タブを選択し、 ユーザー(Users) を選択します。 現在登録されているユーザグループとユーザが表示されます。 インストール直後の状態では Admin ユーザと guest ユーザのみが登録されています。

管理作業用ユーザ、閲覧専用ユーザなど、用途に応じてユーザグループとユーザを作成しておくと便利です。

新規ユーザを作成するには、右上のプルダウンメニューから「ユーザー」(「Users」)を選択し、 ユーザーの作成(Create user) ボタンをクリックします。

ここではゲスト相当のユーザを作成してみましょう。 以下の項目を入力し、保存(Save) をクリックしてください。

エイリアス (ログインユーザ名)user
名前Zabbix
名字User
パスワード(パスワード)
グループGuests

一度ログアウトし、作成したユーザ(user)でログインできることを確認します。 ログアウトは右上の [ログアウト]([Logout])をクリックします。

13. ホストの登録

ここからは実際に監視を行うための設定を行います。最初に監視対象のホストを登録します。

  1. 1. 設定(Configuration)ホスト(Hosts) を選択します。

  2. 2. 右上の ホストの作成(Create host) をクリックします。

  3. 以下の項目を入力し、保存(Save) をクリックします。

    ホスト名 zabbix-agent (Zabbix エージェントのインストール」で設定したホスト名)
    表示名 Zabbix-agent (管理画面上で表示する名前)
    グループ Linux servers (所属グループ)
    エージェントのインターフェース - IPアドレス (Zabbix エージェントの IP アドレス)
  4. ホストの一覧に登録したホストが表示されます。

14. テンプレートの作成

次に、監視項目(アイテム)を登録するためのテンプレートを設定します。 アイテムは直接ホストに登録することもできますが、テンプレートを使用することで、 複数のアイテムをグループ化してまとめて扱うことができるので便利です。

Zabbixではあらかじめさまざまなテンプレートが登録されていますので、 これらをサンプルとして使うこともできます。ここでは新規にテンプレートを作成してみます。

  1. 設定(Configuration)テンプレート(Templates) を選択します。

  2. 右上の テンプレートの作成(Create template) をクリックします。

  3. 以下の項目を入力し、保存(Save) をクリックします。

    テンプレート名Test template (テンプレート名)
    表示名テストテンプレート (管理画面上で表示する名前)
    グループLinux servers (所属グループ)
    ホスト / テンプレート Inzabbix-agent (テンプレートとリンクするホスト)
  4. テンプレート一覧に登録したテンプレートが表示されます (項目数が多い場合は右上の「グループ」(「Group」)プルダウンメニューで Linux servers グループを選択してください)。

以上で、ホストとリンクしたテンプレートが作成できました。

15. アイテムの登録

続いて、作成したテンプレートに監視項目を登録します。Zabbix では監視項目をアイテムと呼びます。 アイテムはホストもしくはテンプレートに対して登録します。

ここでは、例として監視対象サーバの CPU 使用率を取得するアイテムを作成します。

  1. 設定(Configuration)テンプレート(Templates) を選択します。

  2. 前項で作成した テストテンプレートアイテム (0)( Items (0)) を クリックします。

  3. 右上の アイテムの作成(Create item) をクリックします。

  4. 以下の項目を入力し、保存(Save) をクリックします。

    「キー」(「Key」)の[選択]([Select])をクリックすると別ウィンドウが開き、 キーを一覧から選択することができます。 「system.cpu.util[,,]」は、「すべての CPU の最近 1 分間の平均使用率」という意味になります。

    名前CPU usage (アイテム名)
    タイプZabbixエージェント (アイテムのタイプ)
    キーsystem.cpu.util[,,]
    データ型数値 (浮動小数)
    更新間隔(秒)30
  5. アイテム一覧に登録したアイテムが表示されます。

以上で、テンプレートへのアイテムの登録が完了しました。

16. 監視対象の状態の確認

実際に監視対象から情報を取得できているかどうかを見てみましょう。 監視データ(Monitoring)最新データ(Latest data) を選択し、 zabbix-agent の左の + をクリックしてください。 以下のように CPU 使用率が取得できているでしょうか。

グラフ(Graph) をクリックすると 過去の履歴をグラフで参照することができます。

17. まとめ

今回は、Zabbix をインストールし、監視対象と監視項目を設定して 実際に監視が行えるようになるまでを解説しました。

次回は、その他の監視項目や、障害の発生を検知してアラートメールを送信したり、 より便利に監視を行うための機能を紹介します。