下载地址
简单启动- 非root用户登录服务器
#下载tar包并解压目录 `[elastic@localhost ~]$ tar zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz ` #进入目录启动 [elastic@localhost bin]$ pwd /home/elastic/elasticsearch-7.2.0/bin #启动 [elastic@localhost bin]$ ./elasticsearch
- 这期间可能有以下报错
max number of threads [3795] for user [elastic] is too low, increase to at least [4096]
原因是 elasticsearch 启动的时候要求当前用户最大线程数至少为 4096 个线程,而操作系统限制该用户最大线程数为 3795,只需要修改当前用户的最大线程数即可。可以使用ulimit -a查看当前用户允许的最大线程数
$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 3795 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 3795 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
可以看到 max user processes 确实为 3795
在 Linux 中,用户允许的最大线程数的配置文件为/etc/security/limits.conf,我们需要在该配置文件中添加下面配置
# elastic是登录用户名,配置完毕后需要退出重新登录 elastic - nproc 65535
- 退出并重新登录查看max user processes 为65535
[elastic@localhost ~]$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 3795 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 65535 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
- 此时再次启动,启动成功
参考文章
可以使用多台服务器部署 ,或者同一台服务器多个节点部署也可以,端口号不一样就行了,来看一下节点1的配置
[elastic@localhost bin]$ cat ../config/elasticsearch.yml # ======================== Elasticsearch Configuration ========================= #集群名称 cluster.name: cluster1 #节点名称 集群中保证唯一 node.name: node1 #主节点属性值,表示是否有成为主节点的资格 node.master: true # 节点是否存储数据 node.data: true # 本节点的ip network.host: 172.16.131.5 # 本节点的端口 http.port: 9200 # 集群之间的通讯端口 transport.port: 9300 # 种子节点 discovery.seed_hosts: ["172.16.131.5:9300","172.16.131.5:9301","172.16.131.5:9302"] # 初始化的时候需要配置一些具有主节点属性的节点 cluster.initial_master_nodes: ["172.16.131.5:9300","172.16.131.5:9301","172.16.131.5:9302"]
- 本次的多节点 部署在同一台服务器
[elastic@localhost ~]$ cp -r elasticsearch-7.2.0 elasticsearch2 [elastic@localhost ~]$ cp -r elasticsearch-7.2.0 elasticsearch3 [elastic@localhost ~]$ ls elasticsearch2 elasticsearch3 elasticsearch-7.2.0 elasticsearch-7.2.0-linux-x86_64.tar.gz
- 我们配置不同的端口号并启动
节点2
[elastic@localhost config]$ cat elasticsearch.yml # ======================== Elasticsearch Configuration ========================= cluster.name: cluster1 node.name: node2 node.master: true node.data: true node.ingest: true network.host: 172.16.131.5 http.port: 9201 transport.port: 9301 discovery.seed_hosts: ["172.16.131.5:9300","172.16.131.5:9301","172.16.131.5:9302"] cluster.initial_master_nodes: ["172.16.131.5:9300","172.16.131.5:9301","172.16.131.5:9302"]
- 节点3
cluster.name: cluster1 node.name: node3 node.master: true node.data: true node.ingest: true network.host: 172.16.131.5 http.port: 9202 transport.port: 9302 discovery.seed_hosts: ["172.16.131.5:9300","172.16.131.5:9301","172.16.131.5:9302"] cluster.initial_master_nodes: ["172.16.131.5:9300","172.16.131.5:9301","172.16.131.5:9302"]
- 在启动节点3的时候报了错failed; error='Not enough space' (errno=12),因为我虚拟机的内存是1g,可能不够了,这个我们一会再解决,我们先看一下启动状态
- 但是当我启动之后,发现配置没有任何问题,但是两个节点不在 一个集群
- 后来经过请教大佬,是因为我之前单节点启动过一次,在elastic/data 下面会生成一个nodes目录,由于启动时声明了单节点,所以这个nodes 下的目录不会每次启动时检测节点。所以新的节点不会被加入当前服务,那么此时,删除nodes目录并重新启动服务即可
- 另外一点建议是cluster.initial_master_nodes里面最好是配置节点的名字
cluster.name: cluster1 node.name: node2 node.master: true node.data: true node.ingest: true network.host: 172.16.131.5 http.port: 9201 transport.port: 9301 discovery.seed_hosts: ["172.16.131.5:9300","172.16.131.5:9301"] cluster.initial_master_nodes: ["node1","node2"]
- 此时,我们的单台服务器多节点 部署成功,但是我们来看刚才遗留的问题,在启动节点3的时候报了错failed; error='Not enough space' (errno=12)
在前面我们配置过 jvm.option 这个文件,但是查看我们的内存,发现只有1个G,所以通过修改Xms和Xmx的值大小可以避免这个问题,比如-Xms108m -Xmx108m,但是为了避免以后实践过程中内存不足的问题,不建议这样做
[elastic@localhost config]$ cat jvm.options #启动时分配的内存 -Xms1g #运行过程中分配的最大内存 -Xmx1g [elastic@localhost config]$ cat /proc/meminfo | grep Mem MemTotal: 995672 kB MemFree: 490128 kB MemAvailable: 476936 kB
使用docker安装elastic和启动方式(单机)
使用docker安装elastic和启动方式(集群)
相关参考
- 下载地址点击下载
- 解压后进入config目录配置文件[elastic@localhost config]$ vi /home/elastic/kibana-7.2.0-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "172.16.131.5"
elasticsearch.hosts: ["http://172.16.131.5:9200"]
# 启动kibana
nohup ./bin/kibana --allow-root & > /dev/null 2>&1



