自称 sensu 芸人見習いのかっぱです。おはようございます。
はじめに
- こちらで頂いた質問を早速試した
- まずは試しただけ
構成
以下のようなイメージ図
Cacoo サイコー。
設定アレコレ
sensu のインストール
尚、以下は既に sensu
と sensu
が稼働する為に必要な設定一式が入っており、上記図中の sensu-server01 の sensu-server
を起動しているという状態から設定を進めた。
RabbitMQ のクラスタ化
RabbitMQ
を後から立ちあげたホスト上で以下のコマンドを実行。
sudo su - su - rabbitmq rabbitmqctl cluster_status rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@${先に起動した RabbitMQ ホストのホスト名} rabbitmqctl start_app
更に以下のように HA
のポリシーを設定。
su - rabbitmq /usr/lib/rabbitmq/bin/rabbitmqctl set_policy all '^.*' '{"ha-mode": "all"}'
ELB の設定
一部抜粋。
"ListenerDescriptions": [ { "Listener": { "InstancePort": 5671, "LoadBalancerPort": 5671, "Protocol": "TCP", "InstanceProtocol": "TCP" }, "PolicyNames": [] }, { "Listener": { "InstancePort": 5672, "LoadBalancerPort": 5672, "Protocol": "TCP", "InstanceProtocol": "TCP" }, "PolicyNames": [] } ],
マルチゾーンに関しては上記の図の通り現時点では非採用(特に理由は無いけど)。
sensu-client の RabbitMQ の設定
sensu
のクライアント側の RabbitMQ
に関しては以下のように設定。
{ "rabbitmq": { "ssl": { "private_key_file": "/etc/sensu/ssl/key.pem", "cert_chain_file": "/etc/sensu/ssl/cert.pem" }, "host": "internal-rabbit-123456789.ap-northeast-1.elb.amazonaws.com", "port": 5671, "user": "sensu", "password": "your_password", "vhost": "/sensu" } }
ポイント(と言うほどでもないけど)は host
の設定を ELB
のエンドポイント URL
に設定していること(くらい)。
sensu-client の起動
sudo /etc/init.d/sensu-client start
一瞬で sensu-server01
に以下のようにクライアントが登録される。
sensu-server 弐号機の起動
上図の sensu-server02
を起動する。
sudo /etc/init.d/sensu-server start
こちらも一瞬で...
クライアントを確認することが出来る...ふむふむ。ここで色々な妄想と疑問が...。
引き続き
出来そうな事としては...
- AutoScaling とタッグを組んで sensu-server の負荷に応じて自動増減
- Multi Zone なクラスタ
気になった点としては....
- sensu-server の設定で RabbitMQ の接続先を ELB に指定した場合ってどうなるの?
- Redis もクラスタ化する必要もある?
ということでシリーズ化決定。