前面介绍了Elasticsearch的基本知识,下面将实战如何在Linux操作系统中搭建Elasticsearch和Kibana环境。

一.软件包

由于ES社区的更新版本速度很快,小编使用的是Elasticsearch7.3.2+Kibana7.3.2版本进行搭建,现在ES官网下载可能需要翻墙且下载速度很慢,可以从下面分享获取

链接:https://pan.baidu.com/s/1Us0eB72ghIE4vEzaFD873Q    提取码:df2o 
然后通过MobaXterm等工具远程连接到Linux服务器上,并使用root用户将软件包上传到/opt目录下,或者在普通用户桌面下切换为root用户将文件移动到/opt下也可,

sodu mv elasticsearch-7.3.2-linux-x86_64.tar.gz /opt

sodu mv kibana-7.3.2-linux-x86_64.tar.gz /opt

注意用超管权限移动到/opt下那么这两个包的权限是root的,准备好后就可以开始搭建了。

二.搭建ES环境

1.切换到/opt目录下,解压 tar -zxvf elasticsearch-7.3.2-linux-x86_64.tar.gz

可以发现elasticsearch实际也是jar编写的一个中间件,同样有很多jar包。

2.进入解压后的 elasticsearch-7.3.2文件夹的bin目录下 执行./elasticsearch

一般情况下我们都是直接先使用root权限进行环境的安装,如果在root管理员用户下执行上述./elasticsearch启动命令,就会报如下“不能使用管理员启动elasticsearch”的错误。

那是因为6.xx之前的版本是可以通过root用户启动。但是发现黑客可以透过elasticsearch获取root用户密码,所以为了安全性,在6版本之后就不能通过root启动elasticsearch。那么可以通过重新添加一个普通用户组和普通用户,然后将整个elasticsearch安装包的文件权限授权给这个用户组和用户。

解决方案如下:

groupadd dev

useradd -m -g dev test1

usermod -G dev test1  #test1用户绑定到dev用户组上

cd /opt   [你的elasticsearch-7.3.2解压后所在路径]

chown -R test1 elasticsearch-7.3.2 #-R可以递归所在用户组并给该用户组设置相同权限

chgrp -R dev elasticsearch-7.3.2  #如果上个命令没有将用户组从root修改为dev,则继续执行该命令

最后再切换到新建的test1用户,重新执行启动命令,就会发现刚才root用户无法启动的问题解决了,可以看到正常启动了。

但是注意上图标记,可以看出现在启动的只是一个单机模式(es本机启动是localhost:9300,对外暴露是localhost:9200但是并不可用),也就是说目前就算启动了也只能远程主机自身使用,并无法真正为其它客户端提供访问,因此还需要进行配置修改,必须修改配置成集群模式,这也就是为什么说Elasticsearch是一个分布式中间件的原因。

3.修改Elasticsearch的配置文件,设置成集群模式。

修改配置

1) 进入配置目录 cd /opt/elasticsearch-7.3.2/config

2)如果启动时报JVM内存大小错误,可以调整jvm内存大小,默认是1g(如果机器内存够也可不调整) vim jvm.options

-Xms512m -Xmx512m

3)修改network配置,使ES支持通过被外部ip访问 vim config/elasticsearch.yml

cluster.name=estest

node.name=node-1

network.host: 192.168.0.103

http.port: 9200

cluster.initialmasternodes: ["node-1"]

注意其中的核心配置:

cluster.name:集群名称,每台主机配置的ES实例就是通过这个属性配置来自动识别属于哪个集群环境

node.name=node-1:本ES实例的节点名称,用于分别于其他ES实例

network.host: 0.0.0.0:绑定的服务主机IP,一般设置本ES实例所在的主机IP

http.port: 9200:绑定的服务端口,默认为ES的9200

cluster.initialmasternodes: ["node-1"]  :集群初始化主机节点,可以配置多个node名称,这里只用一个作为主机节点

4)修改上述文件后,重新回到/bin目录下启动,会发现还是会报错无法启动

为什么还会报如下一堆错误呢?因为在单机模式下ES是不会检查过多集群项的,但是一旦在elasticsearch.yml中配置了集群属性,那么ES就会认为是要在生产环境运行的,于是就会自动检查其它生产环境运行下的属性,如果ES认为原配置不足以支持生产环境则会报出错误让用户修改。

报错点1: vm最大虚拟内存,maxmapcount[65530]太低,至少增加到[262144]
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方式是修改sysctl.conf添加下面配置并重新生效:vim /etc/sysctl.conf

vm.max_map_count=655360

sysctl -p 使配置生效

报错点2:最大文件描述符[4096]对于elasticsearch进程可能太低,至少增加到[65536]

descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

解决方式是在limits.conf文件末尾添加配置:vim /etc/security/limits.conf

soft nofile 65536
hard nofile 131072
soft nproc 2048
hard nproc 4096

报错点3(如果没有报该错误则不用修改):用户的最大线程数[2048]过低,增加到至少[4096]

max number of threads [2048] for user [tongtech] is too low, increase to at least [4096]

解决方式是在90-nproc.conf文件添加配置:vim /etc/security/limits.d/90-nproc.conf

soft nproc 4096

4)修改完毕后再次切换回test1用户,以非静默方式(./elasticsearch)或  后台静默方式(./elasticsearch -d)重新启动ES,可以看到正常启动了。

在外部浏览器访问192.168.0.103:9200即可接收到ES的响应信息,就意味着ES服务已经搭建完成,这里只使用了node-1节点,实际上通过修改elasticsearch.yml以及添加机器和配置是可以实现集群部署的。

如果后台静默启动出现报错或想关闭ES进程,使用命令kill杀掉服务器的ES进程即可。
1.查找ES进程
ps -ef | grep elastic
2.杀掉ES进程
kill -9 进程号

3.重启ES
sh elasticsearch -d

如果上述操作还是无法访问,可能是因为防火墙配置的问题导致,可以关闭防火墙测试,生产环境可以考虑防火墙设置访问链路而非关闭防火墙。

注意:注意开放端口或者关闭防火墙(centos7)

  1. 查询防火墙状态:firewall-cmd --state

  2. 关闭防火墙:systemctl stop firewalld.service

  3. 开启防火墙: systemctl start firewalld.service

  4. 禁止firewall开机启动:systemctl disable firewalld.service

三.安装kibana,可以通过Restful风格向ES发送指令和接收返回数据,kibana还有自动提示补全指令的功能

1.解压: tar -zxvf kibana-7.3.2-linux-x86_64.tar.gz

3.修改配置: vim kibana-7.3.2-linux-x86_64/config/kibana.yml

server.port: 5601   #kibana服务端口

server.host: 192.168.0.103 #kibana服务IP  

elasticsearch.hosts:["192.168.0.103:9200"]  #kibana启动连接ES地址(生产环境下修改为生产环境地址)

i18n.locale: "zh-CN"  #kibana界面中文

4.使用root用户强制启动:cd kibana-7.3.2-linux-x86_64/bin

./kibana --allow-root

6.访问kibana:在外部浏览器访问192.168.0.103:5601即可打开kibana图形操作界面,选择“开发工具”图标即可:

如果也想通过图形界面的方式查看ES的运行情况,可以继续安装Elasticsearch-head工具。

四.安装Elasticsearch-head插件

由于elasticsearch-head插件是基于nodeJs编写的插件,因此运行需要node环境,如果linux环境没有该环境,则可先在/opt目录下进行node环境安装。

下载tar包: wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.xz

解压: tar xvf node-v6.10.2-linux-x64.tar.xz

修改配置文件:vim /etc/profile

export NODE_HOME=/opt/node-v6.10.2-linux-x64

export PATH=$PATH:$NODE_HOME/bin

export NODE_PATH=$NODE_HOME/lib/node_modules

配置生效:source /etc/profile

回到elasticsearch-head-master目录执行安装插件:cd elasticsearch-head-master/     npm install

修改elasticsearch-head目录中的Gruntfile.js文件,修改服务监听地址(增加hostname属性,将其值设置为'0.0.0.0’):

vim Gruntfile.js  #92行添加:hostname:'0.0.0.0'

修改elasticsearch/config目录下的elasticsearch.yml,增加跨域的配置(需要重启es才能生效):

vim /etc/elasticsearch/elasticsearch.yml

加入配置:
http.cors.enabled: true
http.cors.allow-origin: "*"
安装好之后就可以重启elasticsearch服务 cd /opt/elasticsearch-7.3.2/bin  sh ./elasticsearch -d

启动head插件服务cd /opt/elasticsearch-head-master   npm run start,可以在浏览器使用 192.168.0.103:9100访问

后面文章,将介绍该图形化界面的功能以及Elasticsearch的基本API使用等相关知识点。

Elasticsearch7.3.2+Kibana7.3.2+Ubantu16安装教程相关推荐

  1. Centos7+Elasticsearch7.4.2+Kibana+IK分词+ElasticHD 安装配置以及集群搭建

    Centos7+Elasticsearch7.4.2+Kibana+IK分词+ElasticHD 安装配置以及集群搭建 1. elasticSearch 7.4.2 安装 1.1 关于jdk 1.2 ...

  2. ES(Elasticsearch)7.6.1安装教程

    Es(elasticsearch)7.6.1安装教程 注意:除了最后启动ES的时候在es账户下执行,其他都是在root 下执行的.相关文件的下载,我这里都有,百度网盘链接:https://pan.ba ...

  3. kibana安装教程

    kibana介绍 Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作. 你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互. 你 ...

  4. 【网站汇总】安装教程系列

    目录 1.Anaconda 2.Pytorch 3.Tensorflow 4.LaTeX 5.博客搭建 1.Anaconda [CV]Anaconda 安装教程_Fannnnf的博客-CSDN博客 2 ...

  5. oracle 11g完全安装教程(CentOS)

    oracle下载链接:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html oracle ...

  6. vs安装一直在提取文件_Visual Studio 2019下载及安装教程

    宸1分钟前 这可是我珍藏多年的资源啊. Visual Studio 2019 Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.是目前最流行的Windows ...

  7. 这套完美的Java环境安装教程,完整,详细,清晰可观,让你一目了然,简单易懂。⊙﹏⊙...

    JDK下载与安装教程 2017年06月18日 22:53:16 Danishlyy1995 阅读数:349980 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...

  8. iOS7系统iLEX RAT冬青鼠安装教程:无需刷机还原纯净越狱系统

    全网科技 温馨提醒:iLEX RAT和Semi-Restore的作用都是让你的已越狱的设备恢复至越狱的初始状态. 可是要注意无论你是用iLexRAT冬青鼠还是Semi-restore.对于还原来说都存 ...

  9. TensorFlow2.0 系列开篇: Windows下GPU版本详细安装教程

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 [导读]今年三月谷歌在TensorFlow开发者峰会上宣布TensorFlow 2.0 ...

最新文章

  1. 10丨 Redis主从同步与故障切换,有哪些坑
  2. 非一致性访存系统_Hibernate事实:访存策略的重要性
  3. webRTC实战总结
  4. jQuery中的on 和事件委派
  5. 漫谈高数曲线积分的物理意义
  6. 作业 输出演练 1751
  7. 商汤校招 | 春笋计划”
  8. html 显示原始文本,Json显示为HTML文本 - 不是原始格式
  9. 前端怎样让图片缩小像素值不失真_纹理优化:不仅仅是一张图片那么简单
  10. 中职“网络班级”中家校沟通模块的应用实践
  11. CAD绘图的规范要点
  12. 区块链技术DIY--xmz
  13. 数组旋转(上下对称,主对角线对称)
  14. H750移植rt_thread操作系统完整工程分享,包括外部FLASH分散加载文件
  15. weblogic相关问题
  16. 顾大嫂贴肉藏了尖刀 水浒传
  17. 开源代码01:眼力大挑战
  18. Kafka Shell Lag
  19. r语言 C4.5 剪枝是用什么算法_推荐收藏 | 决策树,逻辑回归,PCA算法面经
  20. 毕业设计-基于微信小程序的装修服务系统

热门文章

  1. EMS 项目练习(Employee Manager System 员工管理系统)
  2. [MySQL数据库]-基础多表练习题---员工工资
  3. 猜猜画画 Pictionary 游戏规则
  4. application.yml中定义数组的两种方式
  5. WEB安全漏洞(1)
  6. micropython教程下载_python教程之让micro:bit讲话
  7. 英雄联盟MSI季中赛第四局,UZI卡莎再次天秀,RNG3:1夺冠
  8. 微信小程序获取当前位置和城市名
  9. linux下登陆FTP
  10. php hiphop mysql_HipHop PHP实战(详解web运行模式)