先赞后看,养成习惯 🌹 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。
最近公司需要一个Es环境,于是借此机会对Es和可视化的安装流程进行了一次梳理。现在ES已经到7.7了跟我以前接触的版本还是存在一些不同,在Linux环境下安装也存在不少坑。不过还好的是这些坑都还不够深。以下就Linux环境的ES安装来一个从0开始的搭建流程。
由于从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以下操作会基于root用户和新建的elastic用户操作,请操作的时候注意看清楚是用哪个用户哦!
访问 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官网查看
这个环境就是踩坑环节了,别着急慢慢来。
执行启动命令:
bin/elasticsearchElasticsearch可以接收用户输入的脚本并且执行,处于安全考虑,他不能root账户来启动。
解决办法 groupadd elasticuseradd -g elastic elasticchown -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 65536max 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的单机搭建基本就完成了,至于集群搭建再踩完了单机的坑后,都是很简单的事情了,我就不再赘述。
安装好ES后,你就可以通过官网提供的相关命令开进行索引的创建,但是更多人还是习惯用界面直接操作。Elasticsearch-head 是用于监控 ES 状态的客户端插件,包括数据可视化、执行增删改查操作等。一个类似于SQLyog的可视化工具。相比于Head还有一个和ES无缝衔接的可视化插件Kibana,这个插件功能能强大也更美观,我下节再跟大家分享。
如果未安装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的缘故。
到这呢就算是大功告成了。其实Es的搭建不算太难,多点耐心再看看我躺过坑你应该很顺利的就能搞定。 后面呢等我玩玩Kibana再来写一个Kibana的搭建流程。如果该文对你有的学习帮助,欢迎关注。
更多精彩好文尽在:Java编程之道 🎁 欢迎各位好友前去关注!🌹
