Elasticsearch とは
Elasticsearch とは2010年に OSS としてリリースされた分散型全文検索サーバです。
実際に CentOS 6.7 にインストールしてつかってみることで Elasticsearch の基本を学んでいきたいと思います。
前回の記事で設定した内容をそのまま使用するので、まだ見てない方はぜひ参照してみてください。
Elasticsearch のインストール
Elasticsearch は Java で実装されているので、まずは Java をインストールします。
$ sudo yum install -y java
インストールできているか確認します
$ java -version openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
Elasticsearch を yum でインストールするので、レポジトリのGPGキーをインストールします
sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
レポジトリを追加します。
/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x] name=Elasticsearch repository for 2.x packages baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
yum でインストールします。
sudo yum install -y elasticsearch
自動起動の設定も行っておきましょう
sudo chkconfig --add elasticsearch
config を編集してコメントアウトを外します。
/etc/elasticsearch/elasticsearch.yml
# http.port: 9200 ↓ http.port: 9200
Elasticsearch を起動させます。
sudo /etc/init.d/elasticsearch start
curl コマンドを利用して、Elasticsearch にアクセスして起動の確認を行います。
curl -X GET http://localhost:9200/
下記のようなレスポンスが返ってきたら Elasticsearch がきちんと起動しています。
{
"name" : "Red Nine",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.0.0",
"build_hash" : "de54438d6af8f9340d50c5c786151783ce7d6be5",
"build_timestamp" : "2015-10-22T08:09:48Z",
"build_snapshot" : false,
"lucene_version" : "5.2.1"
},
"tagline" : "You Know, for Search"
}
Fluentd のプラグインをインストールしたり、事前準備を行います。
sudo yum groupinstall 'Development tools' sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
前回で設定した ad-agent の設定を変更します。
/etc/td-agent/td-agnet.conf
<match apache.access>
type elasticsearch
type_name access_log
host localhost
port 9200
logstash_format true
logstash_prefix apache-log
logstash_dateformat %Y%m%d
include_tag_key true
tag_key @log_name
flush_interval 10s
</match>
td-agent を再起動します
sudo /etc/init.d/td-agent restart
それでは apache のログが Elasticsearch に送られているか確認します。
まずは存在するインデックス情報一覧を取得してみます。
$ curl -XGET http://localhost:9200/_aliases?pretty
下記のような結果が返ってきたらOKです。
{
"apache-log-20151114" : {
"aliases" : { }
}
}
次に、11月14日のログを全部取得してみます。
$ curl -XGET http://localhost:9200/apache-log-20151114/_search -d '
{
"query": {
"match_all" : {}
}
}'
実際にログを確認できたでしょうか?
次はいよいよ Kibana と連携し、ログの可視化について学んでみましょう。
Kibana とは
Kibana は Elasticsearch に格納されたデータを検索し、グラフなど様々な形で可視化できるツールです。
単なる可視化ツールというわけではなく、データの集計・可視化・分析までを統合的にできるツールです。
Kibana のインストール
Kibana をインストールします
curl -sL https://download.elastic.co/kibana/kibana/kibana-4.2.0-linux-x64.tar.gz | sudo tar zxf - -C /tmp sudo mv /tmp/kibana-4.2.0-linux-x64 /usr/share/kibana
インストールが完了したので、Kibana を起動します
/usr/share/kibana/bin/kibana
起動したので http://[ドメイン名]:5601 にアクセスしてみます。

無事 Kibana の画面が表示されました
Kibana の設定
上の画像のページで『index names or pattern』を apache-log-* に変更して Create ボタンを押します。
画面上の Discover にアクセスすると最新のログがみれるかと思います。
まとめ
最後の方、かなり駆け足になってしまいましたが、Elasticsearch と Kibana をインストールして、Apache と Fluentd と連携してみました。
他にも便利な機能があり、色々とできるみたいなので、私自身もこれからこれらのツールについてさらに学んでいきたいと思います。
![データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化] データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]](https://images-fe.ssl-images-amazon.com/images/I/51DaJ8XniUL._SL160_.jpg)
データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]
- 作者: 鈴木健太,吉田健太郎,大谷純,道井俊介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/09/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る