下载es(ik分词器本人安装时仅更新到7.5.0,建议下载相同7.5.0版本的es)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz
kibana下载地址: https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz
修改/home/es/elasticsearch-7.5.1/config目录下elasticsearch.yml文件
参数说明:
cluster.name 集群名称,相同名称为一个集群
node.name 节点名称,集群模式下每个节点名称唯一
node.master 当前节点是否可以被选举为master节点,是:true、否:false
node.data 当前节点是否用于存储数据,是:true、否:false
path.data 索引数据存放的位置
path.logs 日志文件存放的位置
bootstrap.memory_lock 需求锁住物理内存,是:true、否:false
bootstrap.system_call_filter SecComp检测,是:true、否:false
network.host 设置可访问的客户端ip。0.0.0.0代表任意客户端访问
http.port es对外提供的http端口,默认 9200
discovery.seed_hosts es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
cluster.initial_master_nodes es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
discovery.zen.ping.unicast.hosts: 新节点通过广播的形式加入集群
http.cors.enabled 是否支持跨域,是:true,在使用插件时需要此配置
http.cors.allow-origin “*” 表示支持所有域名
示例:
cluster.name:my-application
node.name: node-1
node.master: tru
node.data: true
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
path.data: /home/es/path/to/data
path.logs: /home/es/path/to/logs
bootstrap.memory_lock: false
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
修改一:因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户
第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX 输入两次密码。
第二步:切换刚才创建的用户 su XXX 然后执行elasticsearch 会显示Permission denied 权限不足。
第三步:给新建的XXX赋权限,chmod 777 * 这个不行,因为这个用户本身就没有权限,肯定自己不能给自己付权限。所以要用root用户登录付权限。
第四步:root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录。
#创建一个分组
groupadd esgroup
useradd esuser -g esgroup -p 123456
chown -R esuser:esgroup elasticsearch-7.5.1
su esuser #切换用户
修改二:系统控制权限,(管理系统中的各种资源控制的配置文件),ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用程序直接开辟这么大的虚拟内存
编辑vim /etc/sysctl.conf
#当前用户拥有的内存权限太小
vm.max_map_count=262144
#让系统控制权限配置生效
sysctl -p
修改三:Linux系统的限制配置(这个修改没做尝试也配置成功了)
a. 修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说,一般限制应用最多创建的文件是65535个。但是ES至少需要65536的文件创建权限。
b. 修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为ES至少需要4096的线程池预备。ES在5.x版本之后,强制要求在linux中不能使用root用户启动ES进程。所以必须使用其他用户启动ES进程才可以。
c. Linux低版本内核为线程分配的内存是128K。4.x版本的内核分配的内存更大。如果虚拟机的内存是1G,最多只能开启3000+个线程数。至少为虚拟机分配1.5G以上的内存。
vim /etc/security/limits.conf
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
启动es:
./elasticsearch
#后台启动:
./elasticsearch -d
访问 http://150.109.*.*:9200,成功界面如下:
PS:配置集群修改一下elasticsearch.yml配置文件,建议3个或5个节点