Overview
PandoraFMSの検証でバックエンドにMySQLが必要なのだが、
PandoraFMS環境が、スケールアウト。最低でも冗長化を前提としていたのでMySQLも冗長化を前提として環境構築することにした。
調べてみるとMySQLをMulti-masterで構築したりMaster-Slaveで作るよりMySQL Clusterで作った方が面白そうなので、まずはMySQL Cluster環境を作ることにした。
Purpose
PandoraFMSのバックエンドとしての環境作りだけで無く、以下の点も考慮して作業を行う
- MySQL運用負荷の軽減
- 可能な限りパッケージを活用し、パッケージ管理の手間を省く
- 全体としての環境作り負荷の軽減
- Ansibleを使い、インストールの自動化を図る
- 単にAnsibleにも興味があり使ってみたかったという話
- Ansibleを使い、インストールの自動化を図る
Sytems
物理環境で用意するのは様々な点で無理があるため、Dockerを使う。
また、OSはCentOS7が枯れ始めているが、PandoraFMSの公式ドキュメントを見る限りCentOS6が推奨されている様子なのでCentOS6を採択する(※)
※)見る限りCentOS7でも動くような気がする。
How to setup
Set up Docker container
手始めに構築環境を用意する。前述の通りDockerで作るので3つぐらいノードを作っておく
# docker run --name="mysqlc1" -d -it --hostname="mysqlc1.docker" docker.io/centos:6 /sbin/init
32ee96a85195d642dea99cad224303e0125e42b0871c000e87b181f948e686ed
# docker run --name="mysqlc2" -d -it --hostname="mysqlc2.docker" docker.io/centos:6 /sbin/init
6a62870b2c17e0e3be586569ccbd2a81c5975298488387f7297d0ca1fd3119a1
# docker run --name="mysqlc3" -d -it --hostname="mysqlc3.docker" docker.io/centos:6 /sbin/init
ea200d4e68083d358fdb67e2d42daa07f61e51c03de36fd9c84ed13eaf5a90d3