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ユーザーを使用して起動する必要があることに注意)