第2回 インストール (3/5)

技術特集

1_zabbix2_tit

tit_zabbix
3)CentOS 6 へのZabbixサーバのインストール

それでは、Zabbixサーバを構築してみましょう。

手順や設定を簡単にするために、1台のサーバにZabbixサーバの稼働に必要なものをすべてインストールします。
あと、DBMSとしては、RHEL 6で標準的に用意されているMySQLを選択することとします。

よって、インターネットに直接、もしくはProxyを介してでもアクセス可能な環境で、yum コマンドを 利用できるような環境を用意してください。

 

まず、最初に64bit版のCentOS 6をインストールします。
32bit版でも構いませんが、本番環境でより多くのメモリを搭載したサーバを有効活用するには、64bit版を利用した方が良いでしょう。

このOSのインストール手順を詳細に書き始めると多くのページを消費してしまいますのでポイントだけ記載しておきます。
最低限「Base」というパッケージグループをインストールしてください。
インストーラでインストールする時に、「今すぐカスタマイズ」を選択して「次」をクリックした後に表示される「ベースシステム」の中の「ベース」が選択されていれば、最低限の操作を行うことができます。

OSのインストールが終了したら、とりあえず、説明を簡単にさせて頂くためにSELinuxは無効化してください。
SELinuxは、Linux上でセキュリティを考慮したアクセス権制御を行うための仕組みです。
各プロセスやユーザがアクセスできる範囲や権限を明確化して、不正なアクセスが試みられたとしても被害を最小限に制限するために利用します。
具体的には、/etc/selinux/config内の

1
SELINUX=enforcing

という行を

1
SELINUX=disabled

に変更してOSの再起動を行ってください。
OSの再起動を行わないとdisabledにはなりません。

あと、iptablesの設定として、先ほどの図にあったように、各機能が通信するためには、それに合わせた設定が必要です。
iptablesは、Linuxに実装されたパケットフィルタリング型のファイアウォール機能を持つツールです。

Zabbixサーバを動かすサーバに必要なポートの解放は、Zabbixエージェントからの情報受信用に10051番、ZabbixのWebインターフェースに管理用の端末からWebブラウザでアクセスするため用に80番のポート番号に対して、監視対象の機器や管理用端末からアクセスできるようにする必要があります。

Zabbixエージェントを動かすサーバに必要なポートの解放は、Zabbixサーバからの要求受付用に10050番をZabbixサーバからアクセスできるようにする必要があります。

OSの準備ができたら、Zabbixのインストールに移ります。
Zabbix関連のパッケージは、Zabbix SIAが公開しているリポジトリがありますので、それを利用します。

以下のURLにCentOS 6(x86_64)用のyum リポジトリを登録するためのRPM が公開されています。

http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

これを最初にインストールすることで、これ以降の作業がより簡単になります。

wgetコマンドなどを利用して先のRPM をダウンロードしてそのファイルをインストールしてください。

1
# yum install zabbix-release-2.2-1.el6.noarch.rpm

あとは、ZabbixサーバとZabbixサーバ自体も監視したいので、Zabbixエージェントも一緒にインストールしてしまいます。

1
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent

yum コマンドによって、依存する必要なパッケージも自動的にインストール対象として検索されるので、GPG keyのインポートを確認しつつ「y」を選択して、パッケージのインストールを終了させてください。

各パッケージを簡単に説明すると、「zabbix-server-mysql」は、ZabbixサーバのZabbixサーバプロセスで、かつMySQLを利用する場合にインストールするパッケージです。「zabbix-web-mysql」は、Zabbixを操作するためのWebインターフェース用のパッケージです。こちらも、名前の最後にmysqlとついているので、MySQL用です。

「zabbix-web-japanese」というのは、ZabbixのWebインターフェースでグラフを表示する際に、日本語の文字化けを防止するためにフォントの設定を行うためのものです。

PostgreSQLを利用する場合は、上記のパッケージ名のmysqlの部分がpgsqlになります。(今回は利用しません。)

ここで、Zabbix用のデータベースを作成します。
DBサーバを別サーバにする場合も考慮して、RHEL用のRPM パッケージではデータベースを勝手に作成することはありません。

ここまでの手順では、MySQLのDBMSの機能はインストールされていませんので、インストールします。
パッケージ名は、mysql-serverです。

1
# yum install mysql-server

mysql-serverをインストールしたら、MySQLサーバのデーモンを起動して、DBMSとして稼働させます。
起動する前に、/etc/my.cnfの[mysqld]セクションに少しだけ追記しておきましょう。

1
2
3
character-set-server=utf8
skip-character-set-client-handshake
innodb_file_per_table

他にも、メモリを1GB以上搭載しているサーバ機であれば、MySQL用にメモリの割り当てを増加させるなどのチューニングも行うことをお勧めします。

my.cnfの準備ができたら、デーモンの起動です。

1
# service mysqld start

ついでに、OS起動時に自動的に起動するように設定しておきます。

1
# chkconfig mysqld on

本来は、ここで、よりセキュリティレベルの高い設定を行うべきなのですが、それは別途MySQLの勉強をして頂くとして、「mysql_secure_installation」というコマンドがあるということだけご紹介しておきます。

mysqldが起動したら、mysqlコマンドを利用してDBMSにアクセスすることができるようになりますので、Zabbix用のデータベースを作成し、ついでにそのデータベースにアクセスするためのアカウントを作成します。

1
2
3
4
5
6
# mysql -uroot
mysql> create database zabbix;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ぱすわーど' ;
mysql> flush privileges;
mysql> exit
#

上記例は、データベース名もアカウント名もzabbixにしてしまっていますが、適宜、利用する環境などのポリシーに合わせて変更してください。パスワードも同様です。

あとは、SQL文がパッケージ内に用意されていますので、それを利用して、テーブルの作成と初期データの登録を行います。

1
2
3
# mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.2.6/create/schema.sql
# mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.2.6/create/images.sql
# mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.2.6/create/data.sql

2014/08/28時点での最新版のZabbixは2.2.6ですので、上記のパスになりますが、今後、バージョンアップした際には、そのバージョン番号を利用したパスになると思いますのでご注意ください。

Zabbix用のデータベースも用意できましたので、Zabbixの各種デーモンも起動してみましょう。

とりあえず、Zabbixのエージェントを起動します。

1
2
# service zabbix-agent start
# chkconfig zabbix-agent on

次、Zabbixサーバのデーモンを起動するのですが、1つだけ設定ファイルを変更します。
具体的には、/etc/zabbix/zabbix_server.conf 内のデータベースへのアクセス設定を、先ほど作成したデータベースに合わせて設定します。
DBName、DBUser、DBPasswordの値を確認して、異なるのであれば、その設定を設定ファイル内に記述してください。

上記の例のままであれば、データベース名はzabbixで、利用するアカウントはzabbix、そして、パスワードを指定していますので、DBPasswordの部分のみ、新規の行として、

1
DBPassword=ぱすわーど

とデータベース作成時に指定したパスワードを指定します。

設定が保存できたらデーモンの起動です。

1
2
# service zabbix-server start
# chkconfig zabbix-server on

あとは、Zabbixの各種設定を行うためにWebインターフェースを利用できるようにします。
ここでも、ファイルの変更が必要です。

具体的には、/etc/httpd/conf.d/zabbix.conf のTimeZoneの設定を変更します。

1
# php_value date.timezone Europe/Riga

とコメントアウトされている設定を利用して、日本であれば、

1
php_value date.timezone Asia/Tokyo

という設定にして保存してください。

保存したらWebサーバのデーモンであるhttpdを起動します。
もしすでに起動していたら、先ほどの設定が反映されていないかもしれませんので、再起動を行ってください。

1
2
# service httpd start
# chkconfig httpd on

Webサーバが起動したら、Webブラウザを利用してZabbixサーバにアクセスします。

デフォルトのURLは、以下の通りです。

http://ZabbixサーバのIP/zabbix/

初回は、Zabbixのフロントエンドのセットアップウィザードが自動的に起動されます。

最低限入力が必要なのは、先ほどと同様にデータベースのアクセス設定のみです。
それ以外は、「Next」をクリックして次の画面に進んでください。
データベースの設定部のみデータベースのアクセス情報を入力後、「Test connection」ボタンをクリックして設定がOKとなることを確認してから「Next」ボタンを押してください。

ウィザードが終了すればログイン画面が表示されます。

初期状態であれば、Zabbixの特権管理者権限を持ったアカウントであるAdminアカウントを利用して、

Username: Admin
Password: zabbix

でログインできます。