はじめに
Zabbixは、1998年にアレクセイ・ウラジシェフ(Alexei Vladishev)氏によって開発されたサーバー監視ツールであり、GPLv2ライセンスで公開されているフリーソフトウェアです。今回は、Nagiosと並んで最も利用されているZabbixを用いた監視システムの構築方法について、前篇、後編の2回に分けて解説します。前編となる今回は、Zabbixサーバーおよび、クライアントの構築方法を解説します。
前提条件
構築に必要なサーバー要件および、導入パッケージは下記のとおりです。
- サーバー要件
サーバー要件は、次のとおりです。
Zabbixサーバー ホスト名 zabbix-server IPアドレス 192.168.0.50 OS CentOS 6.5 i386 Apache 2.2.15 PHP 5.4.24 MySQL 5.5.35 サードパーティリポジトリ EPEL/remi Zabbixクライアント ホスト名 zabbix-client IPアドレス 192.168.0.20 OS CentOS 6.5 i386 サードパーティリポジトリ EPEL Zabbixのメール通知機能を利用するためには、SMTPサーバーが必要です。 本記事では、Zabbixサーバー上でSMTPサーバー(postfix)を立ち上げ、ローカルユーザー宛のメールの送信が行えるようにしています。また、メールクライアントとしてMuttをインストールしています。
- 導入するパッケージ
導入するパッケージは、次のとおりです。
サーバー パッケージ名 バージョン Zabbixサーバー zabbix-server 1.8.19 zabbix-server-mysql zabbix-web-mysql zabbix-agent ipa-pgothic-fonts 003.02 Zabbixクライアント zabbix-agent 1.8.19
Zabbixサーバーの構築
下記の手順で構築します。
- Zabbixコアパッケージのインストール
EPELリポジトリから、Zabbixのコアパッケージをインストールします。
$ sudo yum --enablerepo=epel -y install zabbix-server zabbix-server-mysql
[vagrant@zabbix-server ~]$ sudo yum --enablerepo=epel -y install zabbix-server zabbix-server-mysql Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/metalink | 6.7 kB 00:00 Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * base: www.ftp.ne.jp Including mirror: ftp.kddilabs.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: ftp.jaist.ac.jp * epel: ftp.kddilabs.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * extras: www.ftp.ne.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp
Installing : iksemel-1.4-2.el6.i686 6/11 Installing : unixODBC-2.2.14-12.el6_3.i686 7/11 Installing : fping-2.4b2-10.el6.i686 8/11 Installing : 3:traceroute-2.0.14-2.el6.i686 9/11 Installing : zabbix-server-mysql-1.8.19-1.el6.i686 10/11 Installing : zabbix-server-1.8.19-1.el6.i686 11/11 Verifying : zabbix-server-1.8.19-1.el6.i686 1/11 Verifying : 3:traceroute-2.0.14-2.el6.i686 2/11 Verifying : zabbix-server-mysql-1.8.19-1.el6.i686 3/11 Verifying : fping-2.4b2-10.el6.i686 4/11 Verifying : unixODBC-2.2.14-12.el6_3.i686 5/11 Verifying : 1:net-snmp-5.5-49.el6.i686 6/11 Verifying : 1:net-snmp-libs-5.5-49.el6.i686 7/11 Verifying : iksemel-1.4-2.el6.i686 8/11 Verifying : OpenIPMI-libs-2.0.16-14.el6.i686 9/11 Verifying : lm_sensors-libs-3.1.1-17.el6.i686 10/11 Verifying : zabbix-1.8.19-1.el6.i686 11/11 Installed: zabbix-server.i686 0:1.8.19-1.el6 zabbix-server-mysql.i686 0:1.8.19-1.el6 Dependency Installed: OpenIPMI-libs.i686 0:2.0.16-14.el6 fping.i686 0:2.4b2-10.el6 iksemel.i686 0:1.4-2.el6 lm_sensors-libs.i686 0:3.1.1-17.el6 net-snmp.i686 1:5.5-49.el6 net-snmp-libs.i686 1:5.5-49.el6 traceroute.i686 3:2.0.14-2.el6 unixODBC.i686 0:2.2.14-12.el6_3 zabbix.i686 0:1.8.19-1.el6 Complete!
- データベース設定
Zabbixは、デフォルトでMySQLをデータベースサーバーとして利用しますので、Zabbixで使用するユーザー名および、データベースの作成と権限設定を行うSQLファイルを作成します。
$ cat<<EOF>zabbix_mysql.sql CREATE USER zabbix; CREATE DATABASE zabbix; GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'admin'; FLUSH PRIVILEGES; EOF
作成したSQLファイルを実行します。
$ mysql -u root -padmin < zabbix_mysql.sql
ここでは、rootユーザーのパスワードとして”admin”を指定しています。
[vagrant@zabbix-server ~]$ cat<
zabbix_mysql.sql > CREATE USER zabbix; > CREATE DATABASE zabbix; > GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'admin'; > FLUSH PRIVILEGES; > EOF [vagrant@zabbix-server ~]$ mysql -u root -padmin < zabbix_mysql.sql [vagrant@zabbix-server ~]$ 作成したユーザーを用いて、データベース設定を確認します。パスワードには、先に実行したSQLファイルで指定したパスワードを指定します。
mysql -u zabbix -padmin -e 'status'
[vagrant@zabbix-server ~]$ mysql -u zabbix -padmin -e 'status' -------------- mysql Ver 14.14 Distrib 5.5.35, for Linux (i686) using readline 5.1 Connection id: 3 Current database: Current user: zabbix@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.35 MySQL Community Server (GPL) by Remi Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 32 min 37 sec Threads: 1 Questions: 10 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables: 26 Queries per second avg: 0.005 --------------
- サーバー設定ファイルの編集
サーバー設定ファイル(zabbix_server.conf)に、データベースパスワードを設定します。
$ sudo sed -i -e "s|^# DBPassword.*|DBPassword=admin|" /etc/zabbix/zabbix_server.conf
- Zabbixサーバーの起動と自動起動設定
Zabbixサーバーを起動し、自動起動設定を行います。
$ sudo service zabbix-server start $ sudo chkconfig zabbix-server on
- Zabbixウエブパッケージのインストール
ブラウザ上で、Zabbixサーバーの管理を行うウエブパッケージをインストールします。
$ sudo yum --enablerepo=epel,remi -y install zabbix-web-mysql
[vagrant@zabbix-server ~]$ sudo yum --enablerepo=epel,remi -y install zabbix-web-mysql Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * base: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: ftp.kddilabs.jp Including mirror: ftp.jaist.ac.jp * epel: ftp.iij.ad.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * extras: www.ftp.ne.jp * remi: mirror5.layerjet.com Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp
Total 208 kB/s | 3.5 MB 00:17 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : php-bcmath-5.4.24-1.el6.remi.i686 1/6 Installing : fontpackages-filesystem-1.41-1.1.el6.noarch 2/6 Installing : dejavu-fonts-common-2.30-2.el6.noarch 3/6 Installing : dejavu-sans-fonts-2.30-2.el6.noarch 4/6 Installing : zabbix-web-mysql-1.8.19-1.el6.noarch 5/6 Installing : zabbix-web-1.8.19-1.el6.noarch 6/6 Verifying : fontpackages-filesystem-1.41-1.1.el6.noarch 1/6 Verifying : zabbix-web-mysql-1.8.19-1.el6.noarch 2/6 Verifying : dejavu-sans-fonts-2.30-2.el6.noarch 3/6 Verifying : php-bcmath-5.4.24-1.el6.remi.i686 4/6 Verifying : zabbix-web-1.8.19-1.el6.noarch 5/6 Verifying : dejavu-fonts-common-2.30-2.el6.noarch 6/6 Installed: zabbix-web-mysql.noarch 0:1.8.19-1.el6 Dependency Installed: dejavu-fonts-common.noarch 0:2.30-2.el6 dejavu-sans-fonts.noarch 0:2.30-2.el6 fontpackages-filesystem.noarch 0:1.41-1.1.el6 php-bcmath.i686 0:5.4.24-1.el6.remi zabbix-web.noarch 0:1.8.19-1.el6 Complete!
- 日本語フォントのインストール
Zabbixは、標準で日本語をサポートしていますが、Zabbixが表示するグラフ内の日本語に文字化けが発生しますので、日本語フォントをインストールした後に、PHPファイルに日本語フォントを設定します。
$ sudo yum -y install ipa-pgothic-fonts $ sudo ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/fonts/dejavu/ipagp.ttf $ sudo sed -i -e "s|DejaVuSans|ipagp|" /usr/share/zabbix/include/defines.inc.php
[vagrant@zabbix-server ~]$ sudo yum -y install ipa-pgothic-fonts Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * base: www.ftp.ne.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * extras: www.ftp.ne.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * updates: www.ftp.ne.jp Setting up Install Process Resolving Dependencies --> Running transaction check
---> Package ipa-pgothic-fonts.noarch 0:003.02-4.1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: ipa-pgothic-fonts noarch 003.02-4.1.el6 base 3.6 M Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 3.6 M Installed size: 6.0 M Downloading Packages: ipa-pgothic-fonts-003.02-4.1.el6.noarch.rpm | 3.6 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : ipa-pgothic-fonts-003.02-4.1.el6.noarch 1/1 Verifying : ipa-pgothic-fonts-003.02-4.1.el6.noarch 1/1 Installed: ipa-pgothic-fonts.noarch 0:003.02-4.1.el6 Complete! [vagrant@zabbix-server ~]$ sudo ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/fonts/dejavu/ipagp.ttf [vagrant@zabbix-server ~]$ sudo sed -i -e "s|DejaVuSans|ipagp|" /usr/share/zabbix/include/defines.inc.php
- PHP設定ファイルの編集
PHP設定ファイル(/etc/php.ini)のpost_max_size/max_execution_time/max_input_time/memory_limit/upload_max_filesizeパラメタを変更します。
sudo sed -i \ -e "s|^post_max_size.*|post_max_size = 32M|" \ -e "s|^max_execution_time.*|max_execution_time = 600|" \ -e "s|^max_input_time.*|max_input_time = 600|" \ -e "s|^memory_limit.*|memory_limit = 256M|" \ -e "s|^upload_max_filesize.*|upload_max_filesize = 16M|" \ /etc/php.ini
- HTTPサーバーの再起動
PHPの設定変更を反映するために、HTTPサーバーを再起動します。
$ sudo service httpd restart
- 監視エージェントのインストール
サーバーの監視を行うため、監視エージェントをインストールした後、監視エージェントを起動し自動起動の設定を行います。
$ sudo yum --enablerepo=epel -y install zabbix-agent $ sudo service zabbix-agent start $ sudo chkconfig zabbix-agent on
[vagrant@zabbix-server ~]$ sudo yum --enablerepo=epel -y install zabbix-agent Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * base: www.ftp.ne.jp Including mirror: ftp.kddilabs.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: ftp.jaist.ac.jp * epel: ftp.kddilabs.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * extras: www.ftp.ne.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: mirror.fairway.ne.jp
Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp * updates: www.ftp.ne.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package zabbix-agent.i686 0:1.8.19-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: zabbix-agent i686 1.8.19-1.el6 epel 132 k Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 132 k Installed size: 451 k Downloading Packages: zabbix-agent-1.8.19-1.el6.i686.rpm | 132 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : zabbix-agent-1.8.19-1.el6.i686 1/1 Verifying : zabbix-agent-1.8.19-1.el6.i686 1/1 Installed: zabbix-agent.i686 0:1.8.19-1.el6 Complete! [vagrant@zabbix-server ~]$ sudo service zabbix-agent start Starting Zabbix agent: [ OK ] [vagrant@zabbix-server ~]$ sudo chkconfig zabbix-agent on
- ウエブインターフェースによるインストール
ここまでの作業で、Zabbixサーバーの基本的な設定は終了しましたので、これから先はウエブを用いて設定内容の確認などの作業を行います。ブラウザで下記のURLにアクセスします。
http://192.168.0.50/zabbix/
アクセスすると、ウィザード形式でインストールを進めることができます。
ライセンス許諾に同意します。
PHPの設定内容がチェックされ、全ての項目がOKなら次に進みます。
PHPから、Zabbixデータベースへの接続を確認します。
手順2で設定したユーザー名とパスワードをUser、Passwordに指定し、「Test connection」をクリックしてデータベース接続を確認します。インストール情報が表示されますので、ウィザードで指定した内容が反映されているか確認します。
「Finish」をクリックすると、管理者ログイン画面が表示されます。
- 管理者ログイン
デフォルトでは、ユーザー名: admin、パスワード: zabbixが設定されますので、このアカウントを用いて管理画面にログインします。
- 日本語表示設定
ログイン直後の表示は、英語表示になっていますので、日本語に変更します。
Profileをクリックし、「Language」を「Japanese (JP)」に変更後、Saveをクリックすると日本語表示に切り替わります。 - 監視状況の変更
インストール直後は、監視サーバーの監視が行われませんので、監視を有効にします。
設定-ホストをクリックして、表示された監視サーバーの「ステータス」を無効から有効に変更します。監視データをクリックすると、監視サーバーの監視が開始されたことが確認できます。
以上で、Zabbixサーバーの構築は終了です。
Zabbixクライアントの構築
下記の手順で構築します。
- 監視エージェントのインストール
$ sudo yum --enablerepo=epel -y install zabbix-agent
[vagrant@zabbix-client ~]$ sudo yum --enablerepo=epel -y install zabbix-agent Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/metalink | 5.8 kB 00:00 Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * base: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.jaist.ac.jp * epel: ftp.riken.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * extras: www.ftp.ne.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * updates: www.ftp.ne.jp
base | 3.7 kB 00:00 epel | 4.2 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package zabbix-agent.i686 0:1.8.19-1.el6 will be installed --> Processing Dependency: zabbix = 1.8.19-1.el6 for package: zabbix-agent-1.8.19-1.el6.i686 --> Running transaction check ---> Package zabbix.i686 0:1.8.19-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: zabbix-agent i686 1.8.19-1.el6 epel 132 k Installing for dependencies: zabbix i686 1.8.19-1.el6 epel 96 k Transaction Summary ================================================================================ Install 2 Package(s) Total download size: 227 k Installed size: 759 k Downloading Packages: (1/2): zabbix-1.8.19-1.el6.i686.rpm | 96 kB 00:00 (2/2): zabbix-agent-1.8.19-1.el6.i686.rpm | 132 kB 00:00 -------------------------------------------------------------------------------- Total 384 kB/s | 227 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : zabbix-1.8.19-1.el6.i686 1/2 Installing : zabbix-agent-1.8.19-1.el6.i686 2/2 Verifying : zabbix-agent-1.8.19-1.el6.i686 1/2 Verifying : zabbix-1.8.19-1.el6.i686 2/2 Installed: zabbix-agent.i686 0:1.8.19-1.el6 Dependency Installed: zabbix.i686 0:1.8.19-1.el6 Complete!
- 監視エージェントの設定
エージェント設定ファイル(/etc/zabbix/zabbix_agentd.conf)に、監視サーバーのIPアドレス、クライアントのホスト名、接続を受け付けるIPアドレスを指定します。
$ (echo "Server=192.168.0.50";echo "Hostname=zabbix-cient";echo "ListenIP=192.168.0.20") | sudo tee -a /etc/zabbix/zabbix_agentd.conf
- 監視エージェントの起動と自動起動設定
$ sudo service zabbix-agent start $ sudo chkconfig zabbix-agent on
- 監視対象サーバーの追加
監視対象サーバーにエージェントを導入した後、Zabbixサーバー上で対象サーバーを追加します。
設定-ホストから、ホストの作成をクリックし、追加するサーバー名および、IPアドレスを指定します。
保存ボタンをクリックすると、サーバーが追加されます。 - テンプレートの適用
監視対象サーバーを追加した直後は、監視項目を定義したテンプレートが登録されていませんので、テンプレートを適用します。
設定-テンプレートから「Template_Linux」を選択します。
「その他|グループ」に「Zabbix servers」を選択すると、ホストグループに属するホスト名がリストされますので、テンプレートを適用するホストを追加します。
保存ボタンをクリックすると、指定したテンプレートにホストが追加されます。
以上で、クライアントの構築は終了です。
まとめ
ここまで、Zabbixを用いた監視システムの構築方法を解説しました。後編は、Zabbixを運用する際に設定すべきポイントについて解説します。