雑文発散

«前の日記(2015-04-18) 最新 次の日記(2015-04-20)» 編集
過去の日記

2015-04-19 [長年日記]

[Elasticsearch] Elasticsearch と Kibana を最新版へアップデート

ずいぶん前になるけど、この日記が動いている第三 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 のグラフをうまく使えるように、これでいろいろ実験しよう。

Kibana4