こんばんは、cloudpack@dz_ こと大平かづみです。

Prologue – はじめに

Amazon RDS を使ったことがなかったので、使ってみます!
最近業務で使った Zabbix の勉強環境を作ることも兼ねて、以下の構成で挑みました。

全体構成

  • Zabbix
    • Amazon EC2
    • OS: Debian wheezy (Community AMIs から利用)
  • Zabbix用データベース
    • Amazon RDS
    • インスタンスクラス: db.t2.micro
    • 割当てストレージ: 5GB
    • DBエンジン: mysql
    • DBエンジンバージョン: 5.6.22

流れ

  1. データベースの準備
    1. Subnet Group を作成
    2. RDS DBインスタンスで日本語(UTF-8)を扱う準備
    3. Amazon RDS DBインスタンスを作成
  2. Zabbixインストール
    1. Amazon EC2 インスタンスを Debian で作成
    2. Zabbix のインストール
    3. Zabbix の初期設定 (Webインタフェース)

1. データベースの準備

1.1. Subnet Group を作成

Amazon RDS DBインスタンスは、 2つ以上の Availability Zone (以下、AZ) からなる Subnet Group を必要 とします。DBインスタンス作成の過程で自動で割り当てることもできますが、割り当てるVPCの中で AZが1つしか使用してない場合、Subnet Group を自動で割り当てることができないようです。(私はエラーが出ました)
ですので、先に作ってしまう魂胆です。

20150428_zabbix-rds_subnet-group_001.png

20150428_zabbix-rds_subnet-group_002.png

Subnet Group は、EC2を扱うときには出てこない概念なので、良い勉強になりました。

1.2. RDS DBインスタンスで日本語(UTF-8)を扱う準備

2015/04/29 追記

しばらく見てるうちに、Webインタフェースは日本化できてるが保存データがどうも文字化けしてることにき気づきました…orz

調べたところ、DBインスタンス作成時に設定しなければならないようで、以下URLが参考になると思います。

1.3. Amazon RDS DBインスタンスを作成

それでは、AWSコンソールのRDSサービスページで、DBインスタンスの作成をします。

20150428_zabbix-rds_001.png

20150428_zabbix-rds_002.png

20150428_zabbix-rds_003.png

データベースの容量については、こちらの書籍 Zabbix統合監視実践入門 によると、この本で実践している範囲なら容量は 5GBでよいそうなので、そうしました。

20150428_zabbix-rds_004.png

セキュリティグループについては、DBインスタンスのmysql接続用ポート 3306 (デフォルトの場合) に対して、Zabbixをインストールするインスタンスがアクセスできるようにします。後からでも設定できます。

こうしてできたDBインスタンスはこのようになりました。

20150428_zabbix-rds_005.png

2. Zabbixインストール

2.1. Amazon EC2 インスタンスを Debian で作成

Amazon EC2のインスタンス作成については割愛します。

2.2. Zabbix のインストール

タイムゾーンをJSTに変更
cp /etc/localtime /etc/localtime.orig
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
date

date の結果が、 JST になっていれば変更完了です。

言語を ja_JP.UTF-8 に変更

How to/install locale を参考に、Zabbix のWebインタフェースで日本語を利用できるように、言語を調整します。

dpkg-reconfigure locales

上記コマンドを打つと言語の選択画面が表示されます。 ja_JP.UTF-8 UTF-8 にチェックを付けて、OKしてください。

20150428_gpkg-reconfigure-locales_001.png

すでにZabbix稼働中でも、上記を行い、 service apache2 restart すれば反映されます。

Zabbixのインストール

公式ドキュメントのインストレーションを参考にZabbixインストールします。

Debian で使うリポジトリは以下でリンクを得ました。

http://repo.zabbix.com/zabbix/2.4/debian/pool/main/z/zabbix-release/
zabbix-release_2.4-1+wheezy_all.deb (2015/04/28時点)

# リポジトリを登録する
wget http://repo.zabbix.com/zabbix/2.4/debian/pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy_all.deb
dpkg -i zabbix-release_2.4-1+wheezy_all.deb
apt-get update
# mysql版zabbix-server とフロントエンドをインストールする
apt-get install zabbix-server-mysql zabbix-frontend-php

このインストールの過程で、ローカルのmysqlに設定するような画面が現れますが、うまくやり過ごします。 後のWebインタフェースでの初期設定で、Amazon RDS DBインスタンスへの接続を設定しますので、ご安心を~。

zabbix_serve.conf の DBHostを修正

以下、2015/05/01追記

このインストールの過程で、ローカルのmysqlに設定するような画面が現れ、私はそのまま、localhost で設定してしまいました。

なので、 zabbix_server.confDBHost を修正しなければなりません。

vi /etc/zabbix/zabbix_server.conf
...
DBHost=
...

DBインスタンスのエンドポイントは、 xxx.xxxxxx.ap-northeast-1.rds.amazonaws.com というような文字列で、AWSマネジメントコンソールのDBインスタンスの画面に記載があります。

設定が終わったら次へ進みます。

2.3. Zabbix の初期設定 (Webインタフェース)

Zabbix の初期設定は、基本的には、Webインタフェースから行います。つまづいた点だけ対処を上げておきます。

さっ、 http://zabbixサーバーのアドレス/zabbix にアクセスして初期設定を進めましょう!

PHP設定

インストールの最初にPHPの設定のチェックがあり、デフォルトのままではタイムゾーンが Fail でした。そこで、一度ターミナルに戻り、以下のように設定ファイルを更新しました。

vi /etc/apache2/conf.d/zabbix 
    # php_value date.timezone Europe/Riga
    php_value date.timezone Asia/Tokyo
データベース設定

2015/05/01追記

データベース設定では、Amazon RDS DBインスタンスを設定します。エンドポイントは上記画像のようにAWSマネジメントコンソールに記載されています。

その後 Test Connection をしてみたところ、以下のエラーが発生してしまいました。

The frontend does not match Zabbix database.

パスワードなどを間違えた訳ではなく、どうやら必要なデータベースの初期化ができていないようです。
探してみると、CentOSでも同じエラーの対処 をされている情報を見つけ参考にし、以下の対処を行いました。

# zabbix に関連した sql ファイルを探してみます
find / | grep ".sql$" | grep zabbix
/usr/share/zabbix-server-mysql/images.sql
/usr/share/zabbix-server-mysql/schema.sql
/usr/share/zabbix-server-mysql/data.sql
# 見つかった schema.sql / images.sql / data.sql を実行します
mysql -h  -P 3306 -u zabbix -p zabbix < /usr/share/zabbix-server-mysql/schema.sql 
mysql -h  -P 3306 -u zabbix -p zabbix < /usr/share/zabbix-server-mysql/images.sql 
mysql -h  -P 3306 -u zabbix -p zabbix < /usr/share/zabbix-server-mysql/data.sql 

これは、Zabbixに必要なデータベース構成を、上記で作成した Amazon RDS DBインスタンスのzabbixデータベースへ流してます。

この後、インストール作業は無事に終え、Zabbixのダッシュボードまでたどり着くことができました!

Epilogue – おわりに

今日はここまでです。
実は、当初は Debian ではなく Amazon Linux で環境作り始めたんですが、インストールの時点で依存関係でエラーがあり、Amazon Linux で環境作る意義を見いだせなかったので、変えました。普段は CentOS を比較的良く使うのですが、勉強も兼ねて Debian で作ってみたら、思いのほかスムーズに環境を作ることができました。ちょっとびっくり!

元記事はこちらです。
Check! はじめての Zabbix インストール on Debian x Amazon RDS