端くれプログラマの備忘録 Elasticsearch [Elasticsearch] v.1.7.3のセットアップ

[Elasticsearch] v.1.7.3のセットアップ

VagrantにCentOS 7.1環境を作ってElasticsearchをセットアップする。参考サイトに倣ってバージョンは1.7.3。最新版じゃないけど。

$ mkdir centos-7.1-elasticsearch
$ cd centos-7.1-elasticsearch
$ vagrant init centos-7.1
$ vagrant up

Javaのインストール

$ sudo yum update -y
$ sudo yum install -y java-1.8.0-openjdk.x86_64
$ java -version
openjdk version "1.8.0_71"
OpenJDK Runtime Environment (build 1.8.0_71-b15)
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode)

Elasticreserchのインストール

$ wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.noarch.rpm
$ sudo rpm -ivh elasticsearch-1.7.3.noarch.rpm
$ sudo systemctl enable elasticsearch.service

インストール先 /usr/share/elasticsearch/
設定ファイル /etc/elasticsearch

Elasticsearchの設定

/etc/elasticsearch/elasticsearch.yml

#node.name: "Franz Kafka"
#cluster.name: elasticsearch
#node.master: true
#node.data: true
#index.number_of_shards: 1
#index.number_of_replicas: 0
#path.home=/usr/share/elasticsearch

とりあえず変更せず、全デフォルト

Elasticsearchの実行

$ sudo service elasticsearch start

セキュリティ

/etc/elasticsearch/elasticsearch.yml

network.bind_host: localhost パブリックアクセスの禁止
script.disable_dynamic: true ダイナミックスクリプトの実行禁止

変更した設定を適用

$ sudo service elasticsearch restart

テスト

Elasticsearchはポート9200で動作しているので、curlでアクセスしてみる。

$ curl -X GET 'http://localhost:9200'
{
  "status" : 200,
  "name" : "Worm",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.7.3",
    "build_hash" : "05d4530971ef0ea46d0f4fa6ee64dbc8df659682",
    "build_timestamp" : "2015-10-15T09:14:17Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

RESTful API経由でアクセスしてみる。

エントリを追加

$ curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'
{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"created":true}

エントリの取得

$ curl -X GET 'http://localhost:9200/tutorial/helloworld/1'
{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"found":true,"_source":{ "message": "Hello World!" }}

エントリの変更

$ curl -X PUT 'localhost:9200/tutorial/helloworld/1?pretty' -d '{"message": "Hello People!"}'
{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "created" : false
}

ログ /var/log/elasticsearch
データ /var/lib/elasticsearch

参考サイト

How To Install and Configure Elasticsearch on CentOS 7 | DigitalOcean
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-elasticsearch-on-centos-7