LoginSignup
22
26

More than 5 years have passed since last update.

ElasticsearchとKibanaをEC2上にSetupする手順

Last updated at Posted at 2015-01-29

Elasticsearch, Kibanaを初めて触る人が、Amazon EC2上でまず動かして見る為のSetup手順です。Elasticsearch, Kibana, nginx(reverse proxy用)を、1個のEC2 instance上にSetupします。極力コピペで手順がなぞれる様にしています。

なお、Qiita初投稿なので、色々ご容赦ください。

必要な環境+準備

EC2 Instance * 1
t2-microとか一番小さい奴でOK
EBSを10GBぐらい
AMIはLinux系なら何でも (ここではUbuntu14.04 64bitとして書いています)
EC2にssh loginできる環境
Port 22/80/443はアクセス出来る様に、Security policyの設定をする
EC2のURLを確認しておく
ここでは『http://ec2-xxxx.compute.amazonaws.com』と表記しています

全体の流れ

以下の流れで進めます。
1. Elasticsearch Setup
2. nginx Setup
3. Kibana Setup
4. Kibana, Elasticsearchへのアクセス確認
5. Sample LogをElasticsearchに登録する

Elasticsearch Setup

ここではElasticsearchのv1.4.2を使っています(この記事を書いた時点での最新)。適宜verは読み替えてください。

Install

以下のSetupで、Elasticsearchにはlocalhost port 9200でアクセス出来る様になります。

$sudo su
#apt-get update
#apt-get install git-core build-essential ruby1.9.3 openjdk-7-jdk
#wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.deb
#dpkg -i elasticsearch-1.4.2.deb
#service elasticsearch start

動作確認

Elasticsearchにアクセスできるかの確認をします。
curlのresponseの"status"が200になっている事を確認してください。
なお、"name"はアメコミのキャラクターの名前がランダムに付与されるらしいです。

#curl localhost:9200
{
  "status" : 200,
  "name" : “Dan Ketch",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.4.2",
    "build_hash" : "927caff6f05403e936c20bf4529f144f0c89fd8c",
    "build_timestamp" : "2014-12-16T14:11:12Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.2"
  },
  "tagline" : "You Know, for Search"
}

nginx Setup

nginxのSetup/設定をします、nginxは以下の様なreverse proxyとして設定します。

Install

#apt-get install nginx
#chmod 777 -R /usr/share/nginx

Reverse proxyの設定

/etc/nginx/nginx.confを編集します。元々あった内容は全て削除して、以下の内容をコピペして下さい。

/etc/nginx/nginx.conf
user ubuntu;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
    worker_connections 1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile             on;
    client_max_body_size 300M;
    send_timeout         300s;
    keepalive_timeout    65;

    server {
        listen 80;
        server_name localhost;

        location /kibana/ {
                root /usr/share/nginx/;
                index index.html;
        }

        location /es/ {
                proxy_pass http://localhost:9200/;
        }
    }
}

Kibana Setup

ここではKibanaのv3.1.2を使っています(この記事を書いた時点での最新)。適宜verは読み替えてください。
ちなみに、Kibanaは単なる静的なjavascript file (html, css, js)です。

Install

KibanaをDownloadしてきて、/usr/share/nginx/kibana以下に配置しています。

#wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.2.tar.gz
#tar zxf kibana-3.1.2.tar.gz
#mkdir /usr/share/nginx/kibana
#mv ./kibana-3.1.2/* /usr/share/nginx/kibana

一部js fileの変更

kibanaの/usr/local/kibana/config.jsを編集します。変更内容としては、kibanaに、
『Elasticsearchにアクセスしたければ、http://ec2-xxxx.compute.amazonaws.com/es/ 以下にアクセスしてね』
と言う事を教えてあげる為のものです。

/usr/share/nginx/kibana/config.js

24-26行目辺りに以下の様な行が有るので変更します

オリジナル
elasticsearch: "http://"+window.location.hostname+":9200",

変更後
elasticsearch: "http://"+window.location.hostname+"/es",

nginxの再起動

nginxの設定を変えたので、restartします。

#service nginx restart

Kibana, Elasticsearchへのアクセス確認

Elasticsearch, nginx, Kibanaのsetupが終わりましたので、Browser経由でちゃんとアクセスできるか確認します。

Elasticsearchへのアクセス確認

Browser上で、http://ec2-xxxx.compute.amazonaws.com/es/_nodes?pretty=true にアクセスします。
Elasticsearchからのjson response (cluster_nameやnodesの情報が含まれた物)が返ってくる事を確認して下さい。

Kibanaへのアクセス確認

Browser上で、http://ec2-xxxx.compute.amazonaws.com/kibana/ にアクセスします (URLの最後の/を忘れずに!)。
KibanaのTop画面がでる事を確認して下さい。"Sample Dashboard"のlinkをclickすると、Sample Dashboardに行きます
(が、Elasticsearchに何もDataが入って居ないので、何もLog Dataは表示されないと思います)。

Sample LogをElasticsearchに登録する

Sample Log fileの入手

ここ https://github.com/harukasan/kibana-testdata から、events.json というfileをDownloadします。
25MBぐらいのファイルで、50,000件ぐらいのaccess logが入って居ます。
これをSampleとしてElasticseachに登録して見ましょう。

Sample Log fileをElasticsearchに登録する

以下の様にcurlでevents.jsonをPOSTで送りつけると、Elasticsearchに登録がされます。

curl -s -XPOST http://ec2-xxxx.compute.amazonaws.com/es/_bulk --data-binary @events.json

Kibana上で確認する

Browser上で、先ほどの"Sample Dashboard"に行ってみると、Sample Logが登録されているはずです。
真ん中の辺りでeventのカウントが54857とかに成っていれば成功です。

最後に

とりあえず、KibanaのSample Dashboardまでを辿り着けたでしょうか?
この次にやる事として、Kibanaをカスタマイズしてみて、いろんなChartやDashboardを作ってみる事だと思います。

Kibanaは便利なツールですが、GUIの見方や、Chart/Dashboardの設定は多少慣れが必要です。
この記事では割愛しますが、以下のSlideshareがわかりやすかったです。

22
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
26