Linux下ElasticSearch 6.4.x、ElasticSearch-Head、Kibanaおよび中国語分詞器IKのインストール構成
ElasticSearchインストール構成
ダウンロード
#
[root@localhost /home]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz
#
[root@localhost /home]# tar -zxvf elasticsearch-6.4.2.tar.gz
開始:
[root@localhost /home]# elasticsearch-6.4.2/bin/elasticsearch
エラー:
[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.4.2.jar:6.4.2]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.4.2.jar:6.4.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.4.2.jar:6.4.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.2.jar:6.4.2]
ElasticSearchのデフォルトではrootユーザーによる起動は許可されていません(セキュリティ上)
解決策:ユーザー・グループおよびユーザーの作成
具体的な手順:
:
# es_group:
[root@localhost bin]# groupadd esgroup
:
# esroot: -g: -p:
[root@localhost bin]# useradd esroot -g esgroup -p password
ElasticSearch :
[root@localhost /home]# chown -R esroot:esgroup elasticsearch-6.4.2
:
[root@localhost /home]# su esroot
[esroot@localhost /home]$ elasticsearch-6.4.2/bin/elasticsearch
この場合、通常は正常に起動できますが、現在はイントラネットアクセスしかできません.次に、外部ネットアクセス権限を開く必要があります.
[esroot@localhost /home]$ vim elasticsearch-6.4.2/config/elasticsearch.yml
主に2つの場所を修正します:network.hostとhttp.port注意:各行の構成の前にスペースを追加する必要があり、コロンの後ろにもスペースが必要です.すなわち、(スペース)network.host:(スペース)0.0.0.0(スペース)http.port:(スペース)9200
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
保存後に再起動
[esroot@localhost /home]$ elasticsearch-6.4.2/bin/elasticsearch
:
[2018-10-19T10:35:29,459][INFO ][o.e.t.TransportService ] [wVDAxQP] publish_address {172.17.128.111:9300}, bound_addresses {0.0.0.0:9300}
[2018-10-19T10:35:29,493][INFO ][o.e.b.BootstrapChecks ] [wVDAxQP] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2018-10-19T10:35:29,617][INFO ][o.e.n.Node ] [wVDAxQP] stopping ...
[2018-10-19T10:35:29,693][INFO ][o.e.n.Node ] [wVDAxQP] stopped
[2018-10-19T10:35:29,693][INFO ][o.e.n.Node ] [wVDAxQP] closing ...
[2018-10-19T10:35:29,719][INFO ][o.e.n.Node ] [wVDAxQP] closed
主に2つのエラーが発生しました:1、elasticsearchが作成できるファイル記述(file descriptors)が少なすぎます2、仮想メモリが小さすぎます
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決を続ける
[esroot@localhost /home]$ su root
[root@localhost /home]# vim /etc/security/limits.conf
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
vmを設定する.max_map_count
# 1:
[root@localhost /home]# sysctl -w vm.max_map_count=262144
# 2:
[root@localhost /home]# vim /etc/sysctl.conf
:
vm.max_map_count=262144
[root@localhost /home]# sysctl -p
保存後にユーザーを切り替えて再起動
[root@localhost /home]# su esroot
[esroot@localhost /home]$ elasticsearch-6.4.2/bin/elasticsearch ( , -d )
ここまで、ElasticSearchのインストールが完了し、ElasticSearch-HeadまたはKibanaのインストールを継続することができます.この2つのソフトウェアはいずれもElasticSearchのクライアント管理ソフトウェアで、個人的にはKibanaをお勧めします.
ElasticSearch-Headインストール構成
ElasticSearch-Headをインストールするにはnpmパッケージマネージャを使用する必要があるため、NodeJSを事前にインストールする必要があります.NodeJSをインストールする方法は参考になります.https://juejin.im/post/5ad424c16fb9a028c06b48f0Nodejsをインストールした後、ElasticSearch-Headのインストールを開始します.
[root@localhost /home]# git clone git://github.com/mobz/elasticsearch-head.git
[root@localhost /home]# cd elasticsearch-head
[root@localhost /home]# npm install
npm install :
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
:
[root@localhost /home]# npm install [email protected] --ignore-scripts
[root@localhost /home]# npm install
依存インストールが完了したら、いくつかの構成を変更する必要があります.
1.Gruntfile.を修正するjs、外部ネットワークからelasticsearch-headへのアクセスを許可
[root@localhost /home]# vim elasticsearch-head/Gruntfile.js
grunt.を見つけたInitConfigのconnect構成で、optionsにhostname:'*'(コロンの後ろにスペースがあることに注意)を追加します.
connect: {
server: {
options: {
hostname: '*',
port: 9100,
base: '.',
keepalive: true
}
}
}
2.デフォルト接続アドレスを変更し、elasticsearch-headモニタのelasticsearchノードIPアドレスを構成する
[root@localhost /home]# vim elasticsearch-head/_site/app.js
this.base_uri ( 4354 , )
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
localhost elasticsearch
3.elasticsearchを構成してドメイン間アクセスを許可する
[root@localhost /home]# elasticsearch-6.4.2/config/elasticsearch.yml
:( , )
http.cors.enabled: true
http.cors.allow-origin: '*'
4.ファイアウォール9100ポートをオープンし、ファイアウォールを再起動
[root@localhost /home]# firewall-cmd --zone=public --add-port=9100/tcp --permanent
[root@localhost /home]# firewall-cmd --reload
これにより、ElasticSearchとElasticSearch-Headの基本的な構成が完了し、効果を起動して表示できます.
#
[root@localhost /home]# su esroot
# ElasticSearch
[esroot@localhost /home]$ elasticsearch-6.4.2/bin/elasticsearch
# ElasticSearch-Head
[esroot@localhost /home]$ cd elasticsearch-head
[esroot@localhost /home]$ npm run start
( : , nohup , :nohup npm run start &)
現在のポートの状況を確認できます
[root@localhost /home]$ netstat -tunlp
現在9100、9200、9300ポートが稼働中で、9100ポート:ElasticSearch-Head占有ポート9200、9300ポート:ElasticSearch占有ポート、9200はhttpプロトコルのRESTfulインタフェース、9300はtcp通信ポート、クラスタ間、TCPClientが移動していることがわかります.
Kibanaインストール構成
注意:Kibanaをインストールするバージョンは、ElasticSearchのバージョンと一致する必要があります.
1.ダウンロード、解凍
#
[root@localhost home]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz
#
[root@localhost home]# tar -zxvf kibana-6.4.2-linux-x86_64.tar.gz
[root@localhost home]# mv kibana-6.4.2-linux-x86_64 kibana-6.4.2
2.プロファイルの変更
#
[root@localhost home]# su
#
[root@localhost home]# vim kibana-6.4.2/config/kibana.yml
server.host elasticsearch.url , kibana elasticsearch
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"
3.5601ポートを開く
#
[root@localhost home]# systemctl start firewalld
#
[root@localhost home]# firewall-cmd --zone=public --add-port=5601/tcp --permanent
#
[root@localhost home]# systemctl restart firewalld
4.Kibanaを起動
# ElasticSearch ( , )
[root@localhost /home]# elasticsearch-6.4.2/bin/elasticsearch
# Kibana
[root@localhost /home]# kibana-6.4.2/bin/kibana
以上の手順に従ってElasticSearchとKibanaは正常に動作するはずです.http://5601にアクセスして起動に成功したかどうかを確認できます.
中国語分詞器IK
まずElasticSearchのパスの下に入り、次のコマンドを実行します.6.4.2をElasticSearchバージョンに置き換えます.
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.2/elasticsearch-analysis-ik-6.4.2.zip
インストールが完了したらElasticSearchを再起動すればよい(esrootユーザーを使用して起動する必要があることに注意)