こんばんは、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
流れ
- データベースの準備
- Subnet Group を作成
- RDS DBインスタンスで日本語(UTF-8)を扱う準備
- Amazon RDS DBインスタンスを作成
- Zabbixインストール
- Amazon EC2 インスタンスを Debian で作成
- Zabbix のインストール
- Zabbix の初期設定 (Webインタフェース)
1. データベースの準備
1.1. Subnet Group を作成
Amazon RDS DBインスタンスは、 2つ以上の Availability Zone (以下、AZ) からなる Subnet Group を必要 とします。DBインスタンス作成の過程で自動で割り当てることもできますが、割り当てるVPCの中で AZが1つしか使用してない場合、Subnet Group を自動で割り当てることができないようです。(私はエラーが出ました)
ですので、先に作ってしまう魂胆です。
Subnet Group は、EC2を扱うときには出てこない概念なので、良い勉強になりました。
1.2. RDS DBインスタンスで日本語(UTF-8)を扱う準備
2015/04/29 追記
しばらく見てるうちに、Webインタフェースは日本化できてるが保存データがどうも文字化けしてることにき気づきました…orz
調べたところ、DBインスタンス作成時に設定しなければならないようで、以下URLが参考になると思います。
1.3. Amazon RDS DBインスタンスを作成
それでは、AWSコンソールのRDSサービスページで、DBインスタンスの作成をします。
データベースの容量については、こちらの書籍 Zabbix統合監視実践入門 によると、この本で実践している範囲なら容量は 5GBでよいそうなので、そうしました。
セキュリティグループについては、DBインスタンスのmysql接続用ポート 3306 (デフォルトの場合) に対して、Zabbixをインストールするインスタンスがアクセスできるようにします。後からでも設定できます。
こうしてできたDBインスタンスはこのようになりました。
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してください。
すでに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.conf
の DBHost
を修正しなければなりません。
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」