介绍
在centos7 安装Elasticsearch7.7.0。 安装过程中遇到了一些问题,记录了下
环境
服务器 | 节点名称 | 描述 |
---|---|---|
192.168.75.206 | node-206 | 主节点,负责索引创建、删除、集群关联 |
192.168.75.207 | node-207 | 从节点 |
192.168.75.208 | node-208 | 从节点 |
准备工作
- 安装 jdk
- Elasticsearch7 自带jdk11,如果没有安装jdk, es7使用缺省jdk11
- 如果已安装,使用已安装的jdk,低于11有警告,但不影响使用。
- 安装过程省略
- 关闭防火墙
#查看状态
[root@localhost local]# systemctl stop firewalld.service
[root@localhost local]# systemctl status firewalld.service
关闭成功
- 下载
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-linux-x86_64.tar.gz
- 添加用户
es 使用root 无法启动
[root@localhost config]# adduser es
[root@localhost config]# passwd es
安装
安装目录:/usr/local
# 解压
[root@localhost local]# tar -xzf elasticsearch-7.7.0-linux-x86_64.tar.gz -C /usr/local
# 重命名
[root@localhost local]# mv elasticsearch-7.7.0 elasticsearch
# 授权
[root@localhost local]# chown -R es:es elasticsearch
- 修改配置
elasticsearch.yml
# true选主时,有可能被选为主
node.master: true
# 数据节点
node.data: true
#集群名称,所有节点集群名一样
cluster.name: ikang_cluster
#节点名称
node.name: node-206
#索引存储位置
path.data: /usr/local/soft/elasticsearch/es_data
#日志位置
path.logs: /usr/local/soft/elasticsearch/logs
#外部访问地址,可以设置成主机ip
network.host: 0.0.0.0
#外部http访问端口
http.port: 9200
#节点之间通信ip,本机ip
network.publish_host: 192.168.75.206
#节点之间通信端口
transport.tcp.port: 9300
#集群中节点,默认时9300可以忽略,
discovery.seed_hosts: ["192.168.72.206:9300", "192.168.72.207:9300", "192.168.72.208:9300"]
#初始集群主节点,可以配置多个,从中选主一个作为主
cluster.initial_master_nodes: ["node-206"]
#跨域访问配置
http.cors.enabled: true
http.cors.allow-origin: "*"
其他两个节点配置一样,不在列举,改下 node.name、ip 即可
- 修改内存配置
此处内存与java虚拟机JVM不同,是es 使用的内同
默认是 1g,我的机器配置比较低,修改下内存配置,根据实际内存调整(一般设置成机器内存1/2)
-Xms512m
-Xmx512m
- 启动
切换 es 用户
[es@localhost config]# cd /usr/local/elasticsearch/bin
[es@localhost bin]# ./elasticsearch -d
- 访问
[root@localhost ~]# curl -X GET http://localhost:9200
{
"name" : "node-206",
"cluster_name" : "ikang_cluster",
"cluster_uuid" : "Jz7PRuySTSyOKgRRHm53Tg",
"version" : {
"number" : "7.7.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "81a1e9eda8e6183f5237786246f6dced26a10eaf",
"build_date" : "2020-05-12T02:01:37.602180Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
安装成功。
安装常见问题
- 问题一
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
es 为了安全,不能使用root 启动,新建普通用户,用普通用户启动
- 问题二
initial heap size [67108864] not equal to maximum heap size [134217728]; this can cause resize pauses and prevents mlockall from locking the entire heap
jvm内存不够,修改es 的jvm 配置 jvm.options
-Xms64m #默认1g, 根据自己机器内存修改
-Xmx64m
- 问题三
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
用户打开文件数:4096,有限制,修改配置。切换root 用户,配置文件添加如下配置: vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
配置生效:sysctl -p
- 问题四
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
切换到root在/etc/sysctl.conf
添加如下配置
vm.max_map_count = 262144
- 问题五
max size virtual memory [3395829760] for user [xxx] is too low, increase to [unlimited]
解决方案: /etc/security/limits.conf
添加配置
* hard memlock unlimited
* soft memlock unlimited
* hard nofile 65536
* soft nofile 65536
* - as unlimited
生效:sysctl -p
问题四
max number of threads [3790] for user [guan] is too low, increase to at least [4096]
es soft nproc 65535
es hard nproc 65535
小结
elasticsearch 集群安装完成,可以进行使用。es 需要集成很多插件,elasticsearch-head 常用的插件,适用于window 与linux,安装一个head 插件
安装head 插件
- 安装
cd elasticsearch-head-master
npm install
npm run start
open http://localhost:9100/
- 访问
http://localhost:9100/
kibana 安装
- 下载
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.5.2-linux-x86_64.tar.gz
- 修改配置
kibana.yml
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.75.206:9200"]
- 启动
./kibana
整个elasticsearch 安装完成