ずいぶん前になるけど、この日記が動いている第三 tDiary.Net のアクセスログを Elasticsearch + Kibana で閲覧する構成を作成した。(その時の日記は「Fluentd + Elasticsearch + Kibana での解析の構成を考える」とかに書いた)
この時のバージョンは Elasticsearch が v1.3 系で、Kibana も v3 系。いまはそれぞれ v1.5 系と v4 系が最新なので、ちょっと古くなってしまっていた。
このところ、勉強会へ参加したり、これとは別の Elasticsearch の環境を新規構築してみたりして、意識が高まっていたので、アクセスログ解析用に構築した Elasticsearch もアップグレードすることにした。
まずは Elasticsearch のアップグレード。
公式サイトの Upgrading の章を見ると、1.x から 1.x へのアップグレードは「Rolling Upgrade」がサポートされていると書かれている。オレの場合は、1.3 から 1.5 なのでこれに当たる。
Rolling Upgrade ってのは、同じリファレンスページの Rolling upgrade process の項に詳しく書かれている。簡単に言うと、複数台のノードで構成したクラスタであれば、クラスタを無停止でアップグレードできるというもの。クラスタ内のノード1台ずつ順番にアップグレードしていくことで、クラスタを止めることなく全体のアップグレードを行えるようだ。つまり、一時的に異なるバージョンの Elasticsearch がクラスタ内に存在しても、クラスタとしてはサービスを継続できるようにうまくやってくれるらしい。ただ、ずっとそのまま異なるバージョンが存在する状況はサポート外とも書かれているので、速やかに全てのバージョンを統一するべきのようだ。
とは言うものの、オレが動かしているクラスタは、、、クラスタとも言えない1台構成なので、サービス停止してのアップグレード。まぁ、使っているのはオレだけだから特に問題は無い。ダウンタイムが許されるサービスはなんて楽なんだろう(笑)
サービスを停止。
% sudo /etc/init.d/elasticsearch stop
Elasticsearch の公式リポジトリが用意されているので、そいつを使う。以前は 1.3 のリポジトリを使っていたが、それを 1.5 へ変更しただけ。リポジトリの URL などはリファレンスの Repositories に載っている。
% sudo vim /etc/apt/sources.list.d/elasticsearch.list
deb http://packages.elasticsearch.org/elasticsearch/1.5/debian stable main
ここまで準備出来たら、あとは apt-get
するだけ。
% sudo apt-get update
% sudo apt-get upgrade
Elasticsearch がアップグレード対象へ出てきたら成功。アップグレードを実行する。処理が終了したら起動してやれば OK だ。
% sudo /etc/init.d/elasticsearch start
これでアップグレードは終了。簡単。
Kibana の方はリポジトリ管理ではないので、tar ボールを落としてきて展開。
% cd WORKING_DIR
% wget http://download.elastic.co/kibana/kibana/kibana-4.1.0-snapshot-linux-x64.tar.gz
% tar xfv kibana-4.1.0-snapshot-linux-x64.tar.gz
起動は bin/kibana
を実行すれば良い。
% cd WORKING_DIR/kibana-4.1.0-snapshot-linux-x64
% ./bin/kibana
これで 0.0.0.0:5601 で LISTEN した Kibana4 が立ち上がる。
Kibana4 本体には認証機構が無いので、前回同様に iptables により外部から 5601 ポートへのアクセスを遮断し、nginx を絡めて BASIC 認証を入れるようにした。
server {
listen 80;
server_name SERVER_NAME;
satisfy any;
allow 127.0.0.1;
deny all;
auth_basic "Restricted";
auth_basic_user_file PASSWORD_FILE;
[snip]
location /k/ {
proxy_pass http://localhost:5601/;
}
}
上記の nginx の config は抜粋。これで http://SERVER_NAME/k/ で Kibana4 にアクセスできる。
Kibana4 のグラフをうまく使えるように、これでいろいろ実験しよう。