centos安装elasticsearch6.6

在虚拟机上安装elasticsearch出现了比较多的问题,由于官网文档没有详细介绍,导致问题比较多需要自己一个一个解决,这里介绍下安装的过程和部分问题解决办法,以及elasticsearch的启动停止和远程访问。

测试环境:centos7.6,jdk1.8,elasticsearch6.6.0

官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/6.6/index.html

elasticsearch需要java8环境的支持,注意先设置好java。

[root@localhost ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

安装elasticsearch

安装目录

cd /usr/local/src

这里安装的是6.6.0版本的,其他版本安装包可自行官网查看

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz

然后提取如下:

tar -xvf elasticsearch-6.6.0.tar.gz

然后它会在当前目录中创建一堆文件和文件夹。然后我们进入bin目录,如下所示:

cd elasticsearch-6.6.0 /bin

启动命令

./elasticsearch

启动之前需要先创建用户和设置权限,由于安全问题elasticsearch不让用root用户直接运行,所以要创建新用户

创建新用户

添加用户组、用户、设置密码(注意密码不能太简单也不行、并且八位以上)

groupadd elastic
useradd elastic -g elastic
passwd elastic

修改用户操作权限

chown -R elastic:elastic /usr/local/src/elasticsearch-6.6.0/

切换用户

su - elastic

由于我是虚拟机运行,导致又报了几个内存不足相关的错误
1、[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法:

sudo sysctl -w vm.max_map_count=262144

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

解决办法:

sudo vi /etc/security/limits.conf

添加如下配置,elastic为用户名

elastic hard nofile 65536
elastic soft nofile 65536

3、OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006ca660000, 4120510464, 0) failed; error='Cannot allocate memory' (errno=12)

解决办法:
(1) 修改虚拟机设置 处理器-》每个处理器的核心数量为2(反正比1大就行,自行把握,修改配置需要先关机,然后开机生效)
(2) 修改elasticsearch配置

vi /usr/local/src/elasticsearch-6.6.0/config/jvm.options

-Xms1g
-Xmx1g

修改为刚才配置的数量

-Xms2g
-Xmx2g

启动elasticsearch和后台运行

elasticsearch启动比较缓慢,可以给多分配点内存加快启动速度。

1、直接前台启动,停止ctrl+c就可以了

[elastic@localhost elasticsearch-6.6.0]$ ./bin/elasticsearch

2、后台启动,停止可以使用 kill -9 PID

[elastic@localhost elasticsearch-6.6.0]$ ./bin/elasticsearch -d

启动成功一半会开启两个监听端口,我们可以通过9200端口进行访问

  • 9200 http协议的RESTful接口和外部通讯
  • 9300 tcp通讯端口,集群间和TCPClient都走的它,
[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      7105/mysqld
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7110/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6572/sshd
tcp6       0      0 :::6379                 :::*                    LISTEN      7736/docker-proxy
tcp6       0      0 :::9200                 :::*                    LISTEN      10071/java
tcp6       0      0 :::9300                 :::*                    LISTEN      10071/java
tcp6       0      0 :::22                   :::*                    LISTEN      6572/sshd

访问结果一般如下:

[root@localhost ~]# curl 127.0.0.1:9200
{
  "name" : "nJliXyp",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "E2Qf0imzSji5ZKzEZYOBbw",
  "version" : {
    "number" : "6.6.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "1fd8f69",
    "build_date" : "2019-02-13T17:10:04.160291Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

但是端口显示的只可以本地访问,下面介绍如何开启远程访问。

配置远程访问

由于安全问题elasticsearch之允许本机访问,我们需要修改elasticsearch的配置文件

vim /usr/local/src/elasticsearch-6.6.0/config/elasticsearch.yml

去掉network.host的注释,并修改为

network.host: 0.0.0.0

开发环境可以这样设置,用于生产环境可以修改为固定的ip或者本机访问。

然后在外部就可以通过 ip:9200 访问了,显示内容如上一致。


mysql和elasticsearch数据同步请参见:《elasticsearch从mysql同步数据之logstash的安装和使用》

你可能感兴趣的:(centos安装elasticsearch6.6)