はじめに
Zabbixは、1998年にアレクセイ・ウラジシェフ(Alexei Vladishev)氏によって開発されたサーバー監視ツールであり、GPLv2ライセンスで公開されているフリーソフトウェアです。今回は、Nagiosと並んで最も利用されているZabbixを用いた監視システムの構築方法を解説します。
2014年02月05日 19時51分
Zabbixは、1998年にアレクセイ・ウラジシェフ(Alexei Vladishev)氏によって開発されたサーバー監視ツールであり、GPLv2ライセンスで公開されているフリーソフトウェアです。今回は、Nagiosと並んで最も利用されているZabbixを用いた監視システムの構築方法を解説します。
構築に必要なサーバー要件および、導入パッケージは下記のとおりです。
OS | Windows 7 Ultimate 32bit |
Cygwin | Setup Version 2.831 |
VirtualBox | 4.3.6 r91406 |
Vagrant | 1.4.1 |
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 |
EPELリポジトリから、Zabbixのコアパッケージをインストールします。
$ sudo yum --enablerepo=epel -y install zabbix-server zabbix-server-mysql
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"を指定しています。
作成したユーザーを用いて、データベース設定を確認します。パスワードには、先に実行したSQLファイルで指定したパスワードを指定します。
$ mysql -u zabbix -padmin -e 'status'
サーバー設定ファイル(zabbix_server.conf)に、データベースパスワードを設定します。
$ sudo sed -i -e "s|^# DBPassword.*|DBPassword=admin|" /etc/zabbix/zabbix_server.conf
Zabbixサーバーを起動し、自動起動設定を行います。
$ sudo service zabbix-server start $ sudo chkconfig zabbix-server on
ブラウザ上で、Zabbixサーバーの管理を行うウエブパッケージをインストールします。
$ sudo yum --enablerepo=epel,remi -y install zabbix-web-mysql
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
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
PHPの設定変更を反映するために、HTTPサーバーを再起動します。
$ sudo service httpd restart
サーバーの監視を行うため、監視エージェントをインストールした後、監視エージェントを起動し自動起動の設定を行います。
$ sudo yum --enablerepo=epel -y install zabbix-agent $ sudo service zabbix-agent start $ 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サーバーの構築は終了です。
EPELリポジトリから、パッケージをインストールします。
$ sudo yum --enablerepo=epel -y install zabbix-agent
エージェント設定ファイル(/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を選択すると、ホストグループに属するホスト名がリストされますので、テンプレートを適用するホストを追加します。
保存ボタンをクリックすると、指定したテンプレートにホストが追加されます。