前置工作 查看机器的系统版本号。命令 cat /etc/redhat-release 结果 CentOS Linux release 7.6.1810 (Core)。 查看机器当前的java版本,命令 java -verion 结果 1.8.0_342。 下载es指定版本 笔者惯用7.16,7.16.0下载地址 Elasticsearch 7.16.0 | Elastic 。其他版本下载地址 Past Releases of Elastic Stack Software | Elastic 。下载到本地后,传到服务器。笔者是上传到/app/es目录。 rz命令或者FTP工具上传压缩包,elasticsearch-7.16.0-linux-x86_64.tar.gz,326M。 下载完成后解压到当前目录,命令 tar -zxvf elasticsearch-7.16.0-linux-x86_64.tar.gz 解压结果如下图 配置与运行 创建es用户并授权,Elasticsearch5.0之后,不能使用root账户启动ES,需要创建一个用户。 useradd es-admin chown -R es-admin:es-admin /app/es/elasticsearch-7.16.0 此时尝试启动es 可用内存不够了,笔者机器内存比较小。修改下 /elasticsearch-7.16.0/config/jvm.options的配置 启动成功 配置公网IP访问 修改/config/elasticsearch.yml,添加 network.host: 0.0.0.0 看下配置 重新启动es,失败了,逐个解决 1、解决 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]。file descriptor 文件标识符 命令 vim /etc/security/limits.conf 添加两行 * soft nofile 655350 * hard nofile 655350 命令 ulimit -Hn 查看硬限制 会发现数值有4096改成65535 2、解决 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量 命令 vim /etc/sysctl.conf , 添加一行 vm.max_map_count=655360 3、解决 the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured。编辑 elastic-search.yml,取消注释保留一个节点 cluster.initial_master_nodes: ["node-1"] 改完,重新启动,启动成功