CentOS7にElasticsearch導入

Elasticsearchとは?
Elastic社のオープンソースのRESTful 分散検索/分析エンジンで、発表以降評価が高くリアルタイムデータ分析、ログ解析、全文検索など様々な分析が可能。
RESTベースの API、単純な HTTP インターフェイスを提供し、スキーマレスな JSON ドキュメントを使用する。

Elasticsearchの可視化ツールに、「Kibana+Beats」。ログ収集に「Logstash」や「fluentd」を同時利用するケースが多く、同社製品群(Elasticsearch、Kibana、Logstash)の総称をElasticStackと呼ぶ。少し前は頭文字を取ってELKと呼んでいたらしい。

公式サイト


Elasticsearchのインストール
導入にあたり複数のアプローチがあるが、連携したいソフトウエア(Mediawiki)およびそのAPIでElasticsearchのバージョン縛りがあったので、任意バージョン(6.5.4)を指定して導入する方法をメモ

①事前作業として OpenJDKのインストール
②ユーザがオープン可能なファイル数の上限をElasticsearchの推奨値「65536」に変更

# vi /etc/security/limits.conf
52行目追記: elasticsearch - nofile 65536

端末再起動
# reboot

再起動後オープン可能なファイル数の上限値を確認
# sudo -u elasticsearch bash -c "ulimit -n"
65536

③PGP鍵の取得

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

④Elasticsearchのインストール
Elastic社ダウンロードページ
上記URLから任意のバージョンのDOWNLOADをすると、次ページで「RPM」のリンクがあるので、そのリンクのURLをコピーし、下記のように貼り付ける
※インストール方法はwgetで取得して、rpmコマンドで導入してもOK

# yum install https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm

⑤ユニットファイルの再読み込みを行い、変更点などの依存関係を解決する

# systemctl daemon-reload

⑥Elasticsearchの起動確認と起動状態の確認
エラーが出る場合:こちらも確認

# systemctl start elasticsearch
# systemctl status elasticsearch
 elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/elasticsearch.service.d
           └─elasticsearch.conf
   Active: active (running) since 土 2020-03-28 00:12:01 JST; 3s ago
     Docs: http://www.elastic.co
 Main PID: 22491 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─22491 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction...
           └─22554 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

⑦Elasticsearchの設定
・ローカルホストおよび同一セグメントのアクセス許可

# vi /etc/elasticsearch/elasticsearch.yml
#スワップメモリの無効化
43行目: bootstrap.memory_lock: true
#ローカルホストおよび同一セグメントのアクセスのみ許可
55行目: network.host: [_site_, _local_]
#ポート指定
59行目:http.port: 9200

・Bootstrap.memory_lock対策

# mkdir /etc/systemd/system/elasticsearch.service.d
# vi /etc/systemd/system/elasticsearch.service.d/elasticsearch.conf
[Service]
LimitMEMLOCK=infinity

⑧自動起動設定

# systemctl enable elasticsearch
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.

⑨ファイアウォール設定

# firewall-cmd --add-port=9200/tcp --permanent
success
# firewall-cmd --reload
success

⑩デーモン再起動後の状態確認

# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/elasticsearch.service.d
           └─elasticsearch.conf
   Active: active (running) since 土 2020-03-28 00:43:52 JST; 1h 1min ago
     Docs: http://www.elastic.co
 Main PID: 28005 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─28005 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSIn...
           └─28072 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

⑪動作テスト

# curl http://127.0.0.1:9200
{
  "name" : "znVNjv3",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "kwvEKWp6S8OGG5xE5wHjVQ",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

導入完了


Elasticsearch導入メモ

#設定ファイル
/etc/elasticsearch/elasticsearch.yml
#メモリ割り当て
/etc/elasticsearch/jvm.options
#ログ保存先
/var/log/elasticsearch/elasticsearch.log
#実行ファイルのパス
/usr/share/elasticsearch/bin/elasticsearch

1 thought on “CentOS7にElasticsearch導入

Comments are closed.