ES在Linux下安装的那些破事

先赞后看,养成习惯 🌹 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。

最近公司需要一个Es环境,于是借此机会对Es和可视化的安装流程进行了一次梳理。现在ES已经到7.7了跟我以前接触的版本还是存在一些不同,在Linux环境下安装也存在不少坑。不过还好的是这些坑都还不够深。以下就Linux环境的ES安装来一个从0开始的搭建流程。

前话—安装JDK

由于从ES6.5开始就支持了Java11,所以我从这开始就直接装Java11的环境,避免一些环境问题。

在这里插入图片描述

在安装 Elasticsearch 之前,您需安装并配置好 JDK, 设置好环境变量 $JAVA_HOME。至于JDK的下载我就不多叙述了,送上一个网盘链接:JDK11百度云盘

  • 下载完成将文件移动 /home/ 并解压
tar -xvf 名称.tar.gz
  • 重命名解压文件,看自己的喜好了
mv jdk-11/ jdk11/
  • 配置环境变量,编辑文件 vim /etc/profile 在末尾添加以下内容
JAVA_HOME=/home/jdk11
JRE_HOME=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME JRE_HOME PATH

在这里插入图片描述

  • 配置生效
 source /etc/profile

正文—安装ES

以下操作会基于root用户和新建的elastic用户操作,请操作的时候注意看清楚是用哪个用户哦!

下载 Elasticsearch

访问 Elasticsearch 官网 https://www.elastic.co/cn/downloads/elasticsearch 下载安装包:

在这里插入图片描述

笔者这里下载的是 Linux系统 Elasticsearch V7.7.0 版本作为演示。实际的环境上我搭建的5.x的版本,懒得回去截图了就以7.7作为演示吧。

下载成功后,解压到指定目录:

tar -zxvf elasticsearch-7.7.0-darwin-x86_64.tar.gz

进入解压后的目录,结构如下:
在这里插入图片描述
Elasticsearch 目录、配置文件说明、注意点
这里大概解答下各个目录、配置文件的作用:

在这里插入图片描述

配置信息

针对ES的配置主要是去修改elasticsearch.yml和jvm.options

具体可见以下常用配置项目

  • elasticsearch.yml
# ================= Elasticsearch Configuration ===================
 
# #配置es的集群名称, es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
 
 cluster.name: xxx
 
# #节点名称
 
 node.name: master
 
# #指定该节点是否有资格被选举成为node
 
 node.master: true

# 这两个路径看你具体情况写,但是都需要授权给elastic用户,否则会启动报错
 path.logs: /home/elasticsearch-7.7.0/var/logs

 path.data: /home/elasticsearch-7.7.0/var/data

 
# #指定该节点是否存储索引数据,默认为true。
 
 node.data: true
 
# #设置绑定的ip地址还有其它节点和该节点交互的ip地址,本机ip
 
 network.host: 192.168.95.129
 
# #指定http端口,你使用head、kopf等相关插件使用的端口
 
 http.port: 9200
 
# #设置节点间交互的tcp端口,默认是9300。
 
 transport.tcp.port: 9300
 
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
 
 discovery.zen.ping.unicast.hosts: ["192.168.95.129:9300","192.168.95.130:9300"]
 
#如果要使用head,那么需要增加新的参数,使head插件可以访问es
 
 http.cors.enabled: true
 
 http.cors.allow-origin: "*"

  • jvm.options
    这个配置项目里面主要是根据实际需求修改一个jvm大小等,一般情况不需要怎么修改。

笔者给公司搭的只是一个单节点的ES,所有有些集群发现的配置并没有弄。

Ps: 更多具体配置可以在Elasticsearch官网查看

后续—运行ES

这个环境就是踩坑环节了,别着急慢慢来。

执行启动命令:

bin/elasticsearch

错误一:

Elasticsearch可以接收用户输入的脚本并且执行,处于安全考虑,他不能root账户来启动。

  • 解决办法
    • groupadd elastic
    • useradd -g elastic elastic
    • chown -R elastic:elastic /es文件路径

错误二:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

  • 解决办法
    • 每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
      ulimit -Hn
      ulimit -Sn
    • 修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
    *               soft    nofile          65536
    *               hard    nofile          65536

错误三:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

  • 解决办法
    • 修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
   vi /etc/sysctl.conf
   sysctl -p

待上面的问题都出现并解决了后,你就可以以elastic(su elastic)用户启动ES了

在这里插入图片描述

默认访问端口9200

在这里插入图片描述

到此ES的单机搭建基本就完成了,至于集群搭建再踩完了单机的坑后,都是很简单的事情了,我就不再赘述。

加餐—Head插件

安装好ES后,你就可以通过官网提供的相关命令开进行索引的创建,但是更多人还是习惯用界面直接操作。Elasticsearch-head 是用于监控 ES 状态的客户端插件,包括数据可视化、执行增删改查操作等。一个类似于SQLyog的可视化工具。相比于Head还有一个和ES无缝衔接的可视化插件Kibana,这个插件功能能强大也更美观,我下节再跟大家分享。

环境准备

  • Git
  • Nodejs

安装Nodejs环境

wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz     //下载

xz -d node-v10.15.3-linux-x64.tar.xz            //解压xz格式

tar -xf node-v10.15.3-linux-x64.tar        //最终解压

配置环境变量

vim /etc/profile
export NODE_HOME=/usr/local/node
export PATH=$PATH:$NODE_HOME/bin
# 配置立马生效
source /etc/profile

查看版本

[elsearch@imok bin]$ node -v
v6.10.2
[elsearch@imok bin]$ npm -v
3.10.10

下载Head插件

如果未安装git ,则先安装git工具

yum install –y git

git clone https://github.com/mobz/elasticsearch-head.git

安装grunt

cd elasticsearch-head
npm install -g grunt --registry=https://registry.npm.taobao.org

安装插件

npm install

对于Head的配置主要涉及两个配置文件,尤其是 _site/app.js 这个配置文件,如果不进行合理配置前端将无法访问到ES的资源。

在这里插入图片描述

配置一

修改配置 elasticsearch-head下Gruntfile.js文件

主要是修改其监听端口,如果你的ES不是使用的9200默认监听端口。

配置二

在这里插入图片描述

笔者在这里躺了一个大坑,就是访问前端head界面9200,其索引数据和集群健康数据没有,后来F12查看到原来是访问了Localhost。就是因为app.js的缘故。

启动Head插件服务

/elasticsearch-head/node_modules/grunt/bin/grunt server &
或者 npm run start

在这里插入图片描述

到这呢就算是大功告成了。其实Es的搭建不算太难,多点耐心再看看我躺过坑你应该很顺利的就能搞定。
后面呢等我玩玩Kibana再来写一个Kibana的搭建流程。如果该文对你有的学习帮助,欢迎关注。


更多精彩好文尽在:Java编程之道 🎁
欢迎各位好友前去关注!🌹
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章