首页 > 技术文章 > ELK日志平台<一> ElasticSearch的安装

chenhao0302 2018-03-29 14:44 原文

一、安装

ElasticSearch的版本号从 1.X → 2.X →  5.X  →  6.X

其中ES 5.X开始支持的jdk最低版本为jdk1.8

 

官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch

本次安装版本2.3.3 

 

下载并解压。

 

二、启动

执行命令:./bin/elasticsearch   即可启动ES

ps.如果用xshell运行,希望退出xshell后不关闭进程

nohup [shell命令] &

默认监听端口9200,可以通过浏览器打开 locaohost:9200 验证是否启动成功;

 

Elasticsearch 不能以root用户启动

否则会抛异常

java.lang.RuntimeException: can not run elasticsearch as root

 

如果你任性,非要以root用户启动,那它也没有办法。后面加个参数吧

./elasticsearch -Des.insecure.allow.root=true

 

 

 

 

 

 

默认是外网无法访问的,如果需要添加外网访问权限,需要修改elasticsearch.yml

 

vim elasticsearch-2.3.3/config/elasticsearch.yml

 

#设定绑定的ip

network.host: 192.168.5.128

 

三、head插件安装(该插件提供可视化界面)

         环境要求:node版本大于等于6.0

 

1、下载node安装包

wget https://npm.taobao.org/mirrors/node/latest-v8.x/node-v8.0.0-linux-x64.tar.gz

         2、安装node

         tar -zxvf node-v8.0.0-linux-x64.tar.gz

3、建立软链接

         ln -s /home/node-v8.0.0-linux-x64/bin/node /usr/local/bin/

         ln -s /home/node-v8.0.0-linux-x64/bin/npm /usr/local/bin/

        

    4、下载head插件安装包

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

         unzip master.zip

 

5、安装grunt

                   grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动

         cd elasticsearch-head-master

         npm install -g grunt-cli  //执行后会生成node_modules文件夹

 

 

 

6、安装head

         npm install

 

7、启动head

    npm run start

 

 

8、权限配置

现在集群健康状态显示未连接,这是因为head插件没有权限获取集群节点的信息

 

vim elasticsearch/config/elasticsearch.yml

http.cors.enabled: true # elasticsearch中启用CORS

http.cors.allow-origin: "*"  #允许访问的IP地址段,*为所有IP

 

9、重启ES和head

 

集群健康状态变成青青草原的颜色就代表连接成功;

 

Ps.

head插件离线安装

将解压后的master.zip放在ES的plugins文件夹,改名为head

访问 http://localhost:9200/_plugin/head/  即可

 

四、概念

 

索引 数据库

类型 表

文档 记录

 

 

1)Cluster:集群。

ES可以作为一个独立的单个搜索服务器。不过,为了处理大型数据集,实现容错和高可用性,ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。

2)Node:节点。

形成集群的每个服务器称为节点。

3)Shard:分片。

当有大量的文档时,由于内存的限制、磁盘处理能力不足、无法足够快的响应客户端的请求等,一个节点可能不够。这种情况下,数据可以分为较小的分片。每个分片放到不同的服务器上。

当你查询的索引分布在多个分片上时,ES会把查询发送给每个相关的分片,并将结果组合在一起,而应用程序并不知道分片的存在。即:这个过程对用户来说是透明的。

4)Replia:副本。

为提高查询吞吐量或实现高可用性,可以使用分片副本。

副本是一个分片的精确复制,每个分片可以有零个或多个副本。ES中可以有许多相同的分片,其中之一被选择更改索引操作,这种特殊的分片称为主分片。

当主分片丢失时,如:该分片所在的数据不可用时,集群将副本提升为新的主分片。

推荐阅读