elasticsearch安装配置

已有 1417人阅读此文 - - 服务器配置

一、下载安装

>cd /usr/local
>wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
>tar -zxvf elasticsearch-6.2.4.tar.gz
>mv  elasticsearch-6.2.4 elasticsearch

>sh elasticsearch/bin/elasticsearch   #啥也不说,启动一下试试
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.4.jar:6.2.4]
	at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.4.jar:6.2.4]
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.4.jar:6.2.4]
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
	at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.4.jar:6.2.4]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.4.jar:6.2.4]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.4.jar:6.2.4]
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.4.jar:6.2.4]
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.4.jar:6.2.4]
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.4.jar:6.2.4]
	... 6 more

二、配置用户

啥也不配置,这里会直接报错误,elasticsearch为了安全性考虑,是不允许使用root用户启动的,所有我们需要来一波创建用户的操作。

>groupadd elsearchGroup #添加用户组
>useradd eluser -p elpwd -g elsearchGroup #添加用户
>chown -R eluser:elsearchGroup  elasticsearch  #给elasticsearch目录授权
>su eluser #切换到eluser用户
>sh elasticsearch/bin/elasticsearch -d  # -d后台启动
>tail -f elasticsearch/logs/elasticsearch.log  查看日志打印
[2018-04-18T19:19:12,858][INFO ][o.e.c.s.MasterService    ] [bhFXFMR] zen-disco-elected-as-master ([0] nodes joined), reason: new_master {bhFXFMR}{bhFXFMRqTM2GqCIiBs2s_Q}{LO2_vLZtQBWXY1EeqWYwQg}{127.0.0.1}{127.0.0.1:9300}
[2018-04-18T19:19:12,900][INFO ][o.e.c.s.ClusterApplierService] [bhFXFMR] new_master {bhFXFMR}{bhFXFMRqTM2GqCIiBs2s_Q}{LO2_vLZtQBWXY1EeqWYwQg}{127.0.0.1}{127.0.0.1:9300}, reason: apply cluster state (from master [master {bhFXFMR}{bhFXFMRqTM2GqCIiBs2s_Q}{LO2_vLZtQBWXY1EeqWYwQg}{127.0.0.1}{127.0.0.1:9300} committed version [1] source [zen-disco-elected-as-master ([0] nodes joined)]])
[2018-04-18T19:19:12,981][INFO ][o.e.h.n.Netty4HttpServerTransport] [bhFXFMR] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
[2018-04-18T19:19:12,981][INFO ][o.e.n.Node               ] [bhFXFMR] started
[2018-04-18T19:19:13,068][INFO ][o.e.g.GatewayService     ] [bhFXFMR] recovered [0] indices into cluster_state
>curl  #访问一下,如果输出如下信息,就说明启动成功了。
 {
  "name" : "bhFXFMR",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "l7LAl3A_RJmbtgZrjTYf3A",
  "version" : {
    "number" : "6.2.4",
    "build_hash" : "ccec39f",
    "build_date" : "2018-04-12T20:37:28.497551Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

以上才启动成功了,才只是第一步,如果你输入curl http://你的IP:9200  发现并不能访问,所以还要进一步配置。

接下来我们继续一步步的配置

三、配置IP访问

>vim /usr/local/elasticsearch/config/elasticsearch.yml

找到network这块,对host进行修改,端口建议修改,暂时可以不修改。wq保存退出

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
#network.host: 194.168.0.1
#上面这段修改为
network.host:0.0.0.0
# Set a custom port for HTTP:
#
#http.port: 9200
#上面这句,端口设置可以设置,也可以不用动。
# For more information, consult the network module documentation.


如上配置完成后,可以尝试再次启动了,但是肯定会报错的,这里为了让大家在报错时,能知道怎么解决,所以不会一次性配置好,而是根本错误提示,一步步的进行配置,在这一步中,启动时,会报如下错误:

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3804] for user [eluser] is too low, increase to at least [4096]
[3]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

根据这几个错误提示,我们需要进行一些系统参数的设置

首先第一个错误的解决方式:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
>su root #切换到root用户进行操作
>cp /etc/security/limits.conf /etc/security/limits.conf.bak
>cat /etc/security/limits.conf | grep -v "eluser" > /tmp/system_limits.conf
>echo "eluser hard nofile 65536" >> /tmp/system_limits.conf
>echo "eluser soft nofile 65536" >> /tmp/system_limits.conf
>mv /tmp/system_limits.conf /etc/security/limits.conf
会提示需要覆盖吗,输入yes  mv: overwrite `/etc/security/limits.conf'?yes

然后切换成eluser用户下操作,如果你是两个终端打开的,一直在eluser用户下,需要退出eluser再重新切换到eluser用户下
>su eluser
>ulimit -Hn #进行验证如果输出的是65536就说明设置成功了。

现在开始解决第二个问题:

[2]: max number of threads [3804] for user [eluser] is too low, increase to at least [4096]

同样再次切换到 root用户进行操作

>su root
>echo "eluser hard nproc 4096">>/etc/security/limits.conf

解决第三个问题

system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
>vim /usr/local/elasticsearch/config/elasticsearch.yml 
在elasticsearch配置文件中新增如下配置
bootstrap.system_call_filter: false  #注意yml文件中:后面要有一个空格
wq保存退出

经过以上几步配置操作,然后切换到eluser用户下,再次启动

>curl  #看到如下输出内容  说明成功了,如果还有其它错误,针对性的搜索进行修改吧。

{
  "name" : "bhFXFMR",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "l7LAl3A_RJmbtgZrjTYf3A",
  "version" : {
    "number" : "6.2.4",
    "build_hash" : "ccec39f",
    "build_date" : "2018-04-12T20:37:28.497551Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}


管理elasticsearch可以还可以安装head插件,这个在以后的内容中进行介绍。

期待你一针见血的评论,Come on!