Graylog2.4 を Multi-node で構築
- AmazonLinux2にGraylog2.4をインストール の続編
- Graylog を AWS上に、Multi-node で構築したので、そのメモ
- 基本的に http://docs.graylog.org/en/2.4/pages/configuration/multinode_setup.html の通りでできたので留意点だけ
構成
http://docs.graylog.org/en/2.4/pages/architecture.html#bigger-production-setup
をAWSを利用してつくる
ALB(https終端)
|
v
EC2(nginx + graylog * mongoDB)x3
|
v
ES(3インスタンス)
- ALB : https終端とロードバランス
- EC2 3台
- nginx (port 80でlistenしてproxy)
- graylog (multi node)
- MongoDB (ReplicaSet)
- ElasticSearch Searvice
- インスタンス3台
ポイント
全般
- MongoDB ReplicaSet の要件で、3台が最低台数
MongoDB ReplicaSet
https://docs.mongodb.com/manual/tutorial/deploy-replica-set/ に従って設定すればOK
なお、レプリケーションしないのにレプリケーションの設定をいれると、動かないので注意
replication:
replSetName: "rs0"
Elasticsearch cluster
- Amazon ElasticSearch Service使うので、クラスタを3台以上にすればOK
ALB
- https終端はこれでやる(ACMで無料証明書使えるので)
-
http://docs.graylog.org/en/2.4/pages/configuration/load_balancers.html#loadbalancer-integration に従い、ヘルスチェックのパスは
/api/system/lbstatus
にする - ヘルスチェックのタイムアウトは長めの方が良さそう
Nginx
- ログとりと
X-Graylog-Server-URL
Header つけるために利用する - https://qiita.com/watarin/items/1bafdd9ec1d63cc5965b の時と同じ設定でOK
Graylog Multi-node
設定
- 1台だけ
is_master = true
、それ以外はis_master = false
にする- 全台
is_master = false
だとgraylogが起動しなかった。 - 複数台
is_master = true
は試していない
- 全台
-
rest_listen_uri = http://0.0.0.0:9000/api/
にする -
rest_transport_uri
はprivate IPを指定する -
web_listen_uri = http://0.0.0.0:9000/
にする- localのnginx経由でも、
http://127.0.0.1:9000/
だと駄目 -
rest_listen_uri
と違うと別ポートを要求されるので、一緒にする
- localのnginx経由でも、
1台殺してみた結果
- 1台殺しても、何もしなくてもちゃんと動いた
-
is_master = true
のノード殺しても大丈夫- でも一部操作がずっと読み込み中になったので、できない操作はあるのかもしれない
- 特に他のものがmasterに昇格するわけではなさそう。
- ログの取り込みも継続して動いた
-
- 復帰させたら、何もしなくてもちゃんと戻った