上面一章节中我们学习了ES的基本的概念,可以将es的概念结合数据库进行理解。本章我们开始装es
ES的准备环境介绍
(1)VMvare14
(2)centos7
(3)jdk1.8
(4)ElasticSearch6.2.4
这里面我们就不啰嗦的去描述具体的安装,Vmvare和centos7的安装我转载的一篇博客挺详细的安装过程,可以参考。JDK的安装都是下载jar包,然后tar -zxvf XXXXX进行解压即可。注意解压JDK后,还应该对环境变量进行配置:
export JAVA_HOME="/opt/jdk1.8.0_144"
export PATH="$JAVA_HOME/bin:$PATH"
export CLASSPATH=".:$JAVA_HOME/lib"
这里我们重点讲一下ES的安装。
再准备好上面的的环境后我们就可以对ES进行安装
(1)ES的安装路径https://www.elastic.co/cn/downloads/elasticsearch
(2)解压ES(这里我是将ES放到了/opt的目录下面,tar -zxvf XXXX)
- ES的启动
(1)进入到es的bin目录
cd /opt/elasticsearch-6.2.4/bin
(2)启动ES
./elasticsearch
此时我们是以root用户进行登录,发现报错。
根据报错的描述我们发现我们不能以root用户进行启动。所以我们应该先切换ES目录的所属组和用户,然后切换当前用户再进行登录。
(3)新增组,用户并切换所属组
groupadd eszu
useradd esyonghu -g eszu -p 123456
cd /opt
chown -R esyonghu:eszu elasticsearch-6.2.4
su - esyonghu
切换成功后再次启动
./bin/elasticsearch
我这里直接就是成功的,不过据说还有可能显示当前进程被杀死了,这有可能是JVM的内存不够,我们需要给其调整初始堆和最大堆的大小
vi bin/elasticsearch
ES_JAVA_OPTS="-Xms512m -Xmx512m"
如果有不懂JVM参数的,可以去看下我的JVM调优的那篇博客https://mp.csdn.net/mdeditor/89297760#
再次启动,如果发现
这时候基本就是成功的。我们再次测试下
curl 127.0.0.1:9200
运用curl命令访问,这里ES的默认端口号是9200,curl默认是用GET进行访问的
结果是
- 通过浏览器访问ES
(1)修改配置文件,我们咋子config下修改其elasticsearch.yml文件
cd /opt/elasticsearch-6.2.4/config/
vim ./elasticsearch.yml
修改network.host配置(也可以修改其端口号http.port), 将host改成当前linux的地址
(2)重新启动elasticsearch
我们发现此时还是在报错
如何解决呢?
(1)切换到root用户
(2)
esyonghu soft nofile 65536
esyonghu hard nofile 65536
esyonghu soft nproc 4096
esyonghu hard nproc 4096
(3)
vim /etc/security/limits.d/20-nproc.conf
将* soft nproc 4096 修改为 esyonghu soft nproc 4096
(4)
vim /etc/sysctl.conf
在改配置文件中新增
vm.max_map_count=655360
执行
sysctl -p
使其生效,因为我们需要外部访问,所以应该关闭防火墙
systemctl stop firewalld.service
此时我们还需要重新启动下才能使修改的生效。
此时再用浏览器访问
安装Head插件
Head插件是ElasticSearch的集群管理工具,我们可以用它来监管ES的健康装况,可以知道哪个节点出了问题,可以用于数据的浏览和查询
- elasticsearch-head是一款开源软件,被托管在github上面,所以如果我们要是用它,必须先安装git,通过git获取elasticsearch-head
- 运行elasticsearch-head会用到grunt,而grunt需要npm包管理器,所以nodejs是必须的
(1)安装git
请参考博客https://blog.csdn.net/javaee_sunny/article/details/80450153 我是按照这个一步步安装成功的。
(2)安装nodejs
请参考博客https://www.cnblogs.com/lpbottle/p/7733397.html 可以成功,但是真慢。
(3)安装cnpm
npm install cnpm -g
(4)用git将elasticsearch-head拷贝到本地
cd /usr/local/
git clone git://github.com/mobz/elasticsearch-head.git
(5)安装elastisearch-head依赖包
[root@localhost local]# npm install -g grunt-cli
[root@localhost _site]# cd /usr/local/elasticsearch-head/
[root@localhost elasticsearch-head]# cnpm install
(6)修改Gruntfile.js
[root@localhost _site]# cd /usr/local/elasticsearch-head/
[root@localhost elasticsearch-head]# vi Gruntfile.js
在connect–>server–>options下面添加:hostname:’*’,允许所有IP可以访问
(7)修改elasticsearch-head的默认连接地址
[root@localhost elasticsearch-head]# cd /usr/local/elasticsearch-head/_site/
[root@localhost _site]# vi app.js
将this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://localhost:9200”;中的localhost修改成你es的服务器地址,这里我将其改为192.168.0.108
(8)配置elasticsearch允许跨域访问
打开elasticsearch.yml(在/opt/elasstic/config下面),在文件末尾追加两行代码
http.cors.enabled: true
http.cors.allow-origin: "*"
(9)打开9100端口,这里我直接把防火墙关了。(所以这一步我没有做)
-- 开启9100端口
[root@localhost elasticsearch-head]# firewall-cmd --zone=public --add-port=9100/tcp --permanent
重启防火墙,使其起作用
[root@localhost elasticsearch-head]# firewall-cmd --reload
(10)用非root用户启动elasticSearch
(11)启动elasticsearch-head
[root@localhost _site]# cd /usr/local/elasticsearch-head/
[root@localhost elasticsearch-head]# node_modules/grunt/bin/grunt server
(12)浏览器访问elasearch-head
如果没有关闭防火墙,需要关闭
systemctl stop firewalld.service
安装Kibana
Kibana是一个针对ElasticSearch的开源分析可视化平台,使用Kibana可以查询,查看并与存储在ES索引上的数据进行交互操作,使用Kibana能执行高级的数据分析,并能以图表,表格和地图的形式查看数据。我是觉得Kibana和Head的作用差不多,安装Kibana就行。但是我还是两个都装了。
注意
Kibana的版本一定要和ElasticSearch版本一致,所以这里我们都是使用的6.2.4的版本。
(1)下载地址:
https://www.elastic.co/downloads/kibana
(2)把下载好的压缩包放到/soft目录下
(3)解压缩,把压缩后的目录移动到/usr/local/kibana目录下
cd /usr/local
mkdir kibana
mv /soft/kibana-6.2.4-linux-x86_64/* /usr/local/kibana/
(4)编辑kibana配置文件
[root@localhost /]# vi /usr/local/kibana/config/kibana.yml
将里面的server.host和elasticsearch.url修改成现在所在服务器的IP地址(192.168.0.108)
(5)开启5601端口
Kibana的默认端口就是5601
开启防火墙
systemctl start firewalld.service
开启5601端口
firewall-cmd --permanent --zone=public --add-port=5601/tcp
重启防火墙(我直接将防火墙关了。所以没有上面的几步操作)
firewall-cmd –-reload
(6)启动Kibana
[root@localhost /]# /usr/local/kibana/bin/kibana
(7)浏览器开始访问
http://192.168.0.108:5601