elasticsearch安装篇(1):elasticsearch安装

1、环境配置

1.1、创建用户elk

由于elasticsearch运行启动时在非root用户下,这里创建elk用户。

[root@wzy10 ~]# useradd -s /sbin/nologin elk
#注意-s /sbin/nologin表示不让elk这个用户登录系统

1.2、创建elasticsearch相关目录

我们这里规定/data/elk/data目录为elasticsearch的数据目录,而/data/elk/logs为elasticsearch的日志目录。

[root@wzy10 ~]# mkdir -p /data/elk/data
[root@wzy10 ~]# mkdir -p /data/elk/logs
[root@wzy10 ~]# chown -R elk:elk /data/elk/data/
[root@wzy10 ~]# chown -R elk:elk /data/elk/logs/

1.3、运行环境配置

1、文件权限不足问题

在启动elasticsearch时经常会遇到期提示文件权限不如,具体如下:

[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

解决方案(要求必须在root用户下)如下:

[root@wzy10 ~]# vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
#其中

2、线程数不够

在运行elasticsearch时经常会遇到期提示线程数不够,具体如下:

[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

【解决方案如下(root用户下运行)】

[root@wzy10 ~]# vim /etc/security/limits.d/90-nproc.conf
*          soft    nproc     4096
*          hard    nproc     4096
【注意】在有些系统下可能是20-nproc.conf这个文件

3、进程虚拟内存问题

在运行elasticsearch时经常会遇到期提示进程虚拟内存问题,具体如下:

[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

【解决方案如下:】

[root@wzy10 ~]# vim /etc/sysctl.conf
#添加如下内容
vm.max_map_count=655360
#配置生效
[root@wzy10 ~]# sysctl -p

2、安装elasticsearch

2.1、解压缩及配置elasticsearch.yml

#解压缩安装
[root@wzy10 soft]# tar -zxvf elasticsearch-6.2.4.tar.gz -C /usr/local/
[root@wzy10 soft]# cd /usr/local/elasticsearch-6.2.4/config/
#修改配置文件
[root@wzy10 config]# vim elasticsearch.yml
path.data: /data/elk/data
path.logs: /data/elk/logs
network.host: 0.0.0.0
http.port: 9200

network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问。

2.2、修改目录权限

修改目录权限是为了让非root用户能够启动elasticsearch 

#设置解压目录的权限
[root@wzy10 config]# cd /usr/local/
[root@wzy10 local]# ln -s elasticsearch-6.2.4 elasticsearch
[root@wzy10 local]# chown -R elk:elk /usr/local/elasticsearch
[root@wzy10 local]# chown -R elk:elk /usr/local/elasticsearch-6.2.4

2.3、配置jvm.options

Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数

#配置jvm内存
[root@wzy10 local]# vim /usr/local/elasticsearch/config/jvm.options 
-Xms1g
-Xmx1g

2.4、编写启动脚本 

#编写启动elasticsearch启动脚本
[root@wzy10 local]# vim /usr/local/elasticsearch-6.2.4/bin/start.sh
/usr/local/elasticsearch-6.2.4/bin/elasticsearch -d >>/tmp/elasticsearch.log 2>>/tmp/elast
icsearch.log
#启动脚本添加执行权限
[root@wzy10 local]# chmod a+x /usr/local/elasticsearch-6.2.4/bin/start.sh 
[root@wzy10 local]# chmod a+x /usr/local/elasticsearch/bin/start.sh

[root@wzy10 ~]# chown -R elk:elk /usr/local/elasticsearch/bin/start.sh

2.5、启动

1、在elk用户下启动elasticsearch

[root@wzy10 ~]# su - elk -s /bin/bash 
Last login: Tue Nov 20 15:40:12 CST 2018 on pts/0
[elk@wzy10 ~]$ /usr/local/elasticsearch/bin/start.sh

查看启动情况

[elk@wzy10 ~]$ jps
31632 Jps
31420 Elasticsearch

2、非elk用户下启动

[root@wzy10 elk]# su elk -s /bin/bash '/usr/local/elasticsearch/bin/start.sh'
#jps查看是否启动
[root@wzy10 elk]# jps

3、验证

查看集群健康状态:http://192.168.2.10:9200/_cat/health?v

查看集群的节点:http://192.168.2.10:9200/_cat/nodes?v

【注意】如果想让外面主机查看访问,必须在elasticsearch.yml配置文件中network.host 绑定为0.0.0.0。

2.6、内核版本问题

如果我们安装elasticsearch的版本是在5.x以后的版本,且操作系统是centos6的那么必须配置内核参数;如果是centos7版本就不存在这个问题了。

【解决方案如下】

[root@wzy-yunwei ~]# vim /usr/local/elasticsearch-6.2.4/config/elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

2.7、ElasticSearch的目录结构

3、elasticsearch.yml文件详解

在安装目录下的elasticsearch.yml配置文件是比较重要,下面对属性详细说明:

  • cluster.name:配置elasticsearch的集群名称,默认是elasticsearch;生产环境必须修改;
  • node.name:节点名称,es默认随机指定一个名字,生产下建议指定一个名称方便运维管理;
  • path.conf:设置配置文件的存储路径,tar或者zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/elasticsearch;
  • path.data:设置索引数据库的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开;
  • path.logs:设置日志文件的村粗路径,默认是在es根目录的logs下的文件夹;
  • path.plugins:设置插件的存放路径,默认是es根目录下的plugins文件夹;
  • network.host:设置bind_host和publish_host,设置为0.0.0.0允许外网访问;
  • http.prot:设置对外服务的http端口,默认是9200;
  • transport.tcp.port:集群节点间的通信端口;
  • bootstrap.memory_lock:设置为true可以锁住ES使用的内存,避免内存进行swap;
  • discovery.zen.ping.timeout:设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些;
  • discovery.zen.minimum_master_nodes:主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2。

猜你喜欢

转载自blog.csdn.net/u013089490/article/details/84301362