在EC2上设置Elasticsearch和Kibana的步骤

以下是让初次接触Elasticsearch和Kibana的人在Amazon EC2上进行设置并预览的操作步骤。我们将在一个EC2实例上设置Elasticsearch、Kibana和nginx(用于反向代理)。为了尽可能方便地复制粘贴步骤。

顺便说一下,这是我在Qiita的初次投稿,请多多包涵。

合适的环境和准备工作

一个 EC2 实例。

 

使用 t2-micro 或者最小的那个可以。

 

EBS 大约 10GB。

 

AMI是任何 Linux 类型都可以(这里以 Ubuntu14.04 64bit 为例)。

 

创建一个可以通过 ssh 登录的 EC2 环境。

 

设置安全策略,允许访问端口 22/80/443。

 

记下 EC2 的 URL。

 

在这里我们以 “http://ec2-xxxx.compute.amazonaws.com” 表示。

整体的趋势

以下是流程的步骤:
1. Elasticsearch设置
2. nginx设置
3. Kibana设置
4. 验证对Kibana和Elasticsearch的访问
5. 将示例日志注册到Elasticsearch中

Elasticsearch安装设置

在这里我们正在使用Elasticsearch的v1.4.2版本(此文章撰写时的最新版本)。请根据需要自行更改版本号。

安装

在下面的设置中,Elasticsearch可以通过localhost的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的响应是否为”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 安装

我会配置nginx,nginx将配置为以下类型的反向代理。

http://ec2-xxxx.compute.amazonaws.com/es/ へのHTTPアクセスは、Elasticsearch (localhost:9200)に渡す

http://ec2-xxxx.compute.amazonaws.com/kibana/ へのHTTPアクセスは、/usr/share/nginx/kibana/index.html を表示する

安装

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

反向代理服务器的配置

请编辑/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设置

在这里我们使用Kibana的v3.1.2(在撰写本文时为最新版本)。请根据需要适当更改版本号。
值得一提的是,Kibana只是一个简单的静态JavaScript文件(包含HTML、CSS和JS)。

安装

我将Kibana下载并放置在/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

一個JavaScript檔案的修改

编辑/usr/local/kibana/config.js文件并进行以下更改,以向kibana提供以下信息:
“如果要访问Elasticsearch,请访问http://ec2-xxxx.compute.amazonaws.com/es/。”


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

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

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

重新启动nginx

因为更改了nginx的配置,所以会重新启动。

#service nginx restart

确认对Kibana对Elasticsearch的访问

Elasticsearch、Nginx、Kibana的设置已经完成,我们将通过浏览器确认是否可以正确访问。

确认对Elasticsearch的访问

请通过浏览器访问http://ec2-xxxx.compute.amazonaws.com/es/_nodes?pretty=true。请确认是否会收到来自Elasticsearch的JSON响应(其中包含了cluster_name和nodes的信息)。

确认对Kibana的访问。

在浏览器上访问 http://ec2-xxxx.compute.amazonaws.com/kibana/(不要忘记URL末尾的/)。确认 Kibana 的顶部画面是否出现。点击 “Sample Dashboard” 的链接,即可跳转到 Sample Dashboard(但由于 Elasticsearch 中没有任何数据,我认为不会显示任何日志数据)。

将示例日志注册到Elasticsearch中

获取示例日志文件

您可以从https://github.com/harukasan/kibana-testdata下载events.json文件。
这个文件大约有25MB,包含了大约50,000条访问日志。
让我们将其作为示例注册到Elasticsearch中。

将样本日志文件注册到Elasticsearch中。

当使用curl命令以POST方式将events.json发送到Elasticsearch时,将会完成注册。

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

在Kibana上进行查看

在浏览器上,如果您尝试访问之前的“样本仪表板”,应该会看到已经注册了一些样本日志。
如果在中间附近看到事件的计数变为54857,那就表示成功了。

最后

首先,你成功找到了Kibana的示例仪表盘,对吧?
接下来要做的是尝试自定义Kibana并创建各种图表和仪表盘。

虽然Kibana是一种方便的工具,但需要对其GUI的使用方法以及图表/仪表板的设置有一定的熟悉才行。
虽然我会在本文中略过这方面的内容,但以下的Slideshare很容易理解。

广告
将在 10 秒后关闭
bannerAds