Cuturnの適当日記

徒然なるままに適当に駄文を吐き出しております

ZABBIX+Pacemaker+GlusterFS+nginx+php-fpmとかやってはまったこと

ZABBIXを冗長化しようと思ってます。で、どうせだからApacheが地味にメモリ食うのも嫌だし流行ってる?nginxを使ったり、DB冗長化分散ファイルシステムでお手軽同期しようと思ったりしてはまったことをつらつら書いときます。

参考1.DRBD、Heartbeat、Pacemaker によるZabbix サーバの HA クラスタ構築
参考2.MySQLデータディレクトリの変更 - インフラ検証覚書

構成

  • 仮想IPとサービスの冗長化:pacemaker+Heartbeat
  • DB:MySQL 5.6.13
  • DBの冗長化:GlusterFS
  • Webサーバ:nginx+php-fpm
  • アプリ:ZABBIX 2.0.6

作った大体の順番

  1. 1号機目を適当にRHEL6.4インストール
  2. yumリポジトリとしてepelとかzabbixとかnginxとかrhel-optionalとか追加
  3. mysqlyumでインストール
  4. nginxをyumでインストール
  5. PHPphp-fpmもインストール
  6. GlusterFSをrpmからインストール
  7. ここで2号機にクローンしてIPなど初期設定、GlusterFSボリューム追加
  8. /var/lib/mysqlを削除し、GlusterFSボリュームで置き換え、mysql初期化
  9. ZABBIX用のmysql初期化実施(両方)
  10. WebアクセスしてZABBIX初期インストール(両方)
  11. pacemakerとheartbeatインストールし、クラスタ設定(両方)

はまったこと

GlusterFSが自動マウントしてくれない等

GlusterFSのマウントをfstabに書いても全然マウントしてくれない。_netdevって書いてるんですがそれでもダメ。またマウントするとマウントポイントの所有が確実にrootになってしまい、DBアクセスできなくなる。

pacemakerのせいでmysqlを遅延起動にできてるという面もあるので、結局/etc/rc.localに以下のように記述することで解決した。

mount -t glusterfs localhost:/mysql /var/lib/mysql
chown mysql.mysql /var/lib/mysql
ZABBIX GUIの一部リンクがおかしい

ZABBIX GUIの一部リンクがおかしくなった。具体的にはフルスクリーンリンクとか一覧の【次へ】系のリンク。何故かlocalhostになってしまっている。

結論としてはnginxのコンフィグのserver_nameがlocalhostだったせい。なぁんだって感じではありますが、普通はここ違っててもブラウザアクセスの際のIPやホスト名使ってくれるので問題ないはずなのです。だから気づきませんでした。Apacheなんて大概127.0.0.1とかのはずでしょ。どこかに優先順位の設定有るのか…?ここ読めばわかりそうだな。読む。