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によるログ収集と可視化]
- 作者: 鈴木健太,吉田健太郎,大谷純,道井俊介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/09/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る