Linux下elasticsearch的安装配置以及head插件的安装使用

注:elasticsearch是用Java编写的,elasticsearch的运行需要有Java环境,因此需要先行下载jdk。

首先介绍elasticsearch的几个基本概念:
  index: es里的index相当于数据库名称。
  type: 相当于数据库里的一个表。
  id:唯一,相当于主键。
  node: 节点是es实例,一台机器可以运行多个实例,但是要保证端口号不同,可以在配置文件中进行配置。
  cluster: 代表一个集群,集群由一个或多个节点组成。集群会自动选举其中一个节点为主节点。
  shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改,默认的分片数量为5个。
  replicas: 代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡,默认的副本数量为1个。

1、下载安装elasticsearch

因为elasticsearch本身就是一个集群,所以我们需要准备多台机器来进行安装。这里我使用的是:192.168.198.223,192.168.198.224,192.168.198.226。需要分别在每台机器上安装elasticsearch。这里给出官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html

注意此处的坑:

● root超级用户身份不能启动,这应该是出于安全考录设置的条件。

解决方案:创建一个单独的用户来启动elasticsearch

groupadd elastic
useradd elastic -g elastic
#给elastic用户赋予权限,这里的elasticsearch-5.5.0是elasticsearch的安装目录
chown -R elastic:elastic elasticsearch-5.5.0

其他可能出现的坑:

● ERROR: bootstrap checks failed
解决方案:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
解决方案:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决方案:切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
重新启动elasticsearch即可。

2、配置elasticsearch

这里有几个elasticsearch配置选项个人认为还是有必要配置一下的,先关闭每台机器上的elasticsearch,编辑elasticsearch.yml:

cd elasticsearch-5.5.0/config        #进入config目录
vim elasticsearch.yml        #编辑elasticsearch.yml文件

#集群名字,可以自定义,这里我起名为 mycluster,es启动后会将同一网段下具有相同集群名字的节点放到一个集群下。
cluster.name:  mycluster

#节点名字,默认的节点名字是一串随机字符串,而且每次启动都会不一样。我们自己修改了之后查看日志等都会方便一点。同一集群中不同节点应该取不一样的名字。
node.name:"node-1"      #我的三个节点取的名字分别是:node-1,node-2,node-3

#设置数据以及日志的路径。默认情况下,Eleasticsearch会把插件、日志以及你最重要的数据放在安装目录下,你可以自己重新设置到安装目录之后的地方。
path.data: /data/es
path.logs: /log/es

#设置绑定的ip地址以及与其它节点交互的IP地址,设置为0.0.0.0即可。
network.host:0.0.0.0

#设置是否打开多播方式发现节点,默认是true。生产环境中建议把多播关闭,因为某个节点可能会意外加入一个集群。建议使用单播方式。
discovery.zen.ping.multicast.enabled:false

#指定集群中的节点中有几个有master资格的节点。这个配置就是告诉Elasticsearch当没有足够master候选节点的时候,就不要进行master选举,等master候选节点足够了才进行选举。这个配置有助于防止集群分裂。推荐个数就是(master候选节点个数*2)+1。视具体情况而定。如果有两个节点,那么就遇到难题了,推荐数当然是2,但是这意味着如果有一个节点挂掉,整个集群就不可用了。设置成1可以保证集群的功能,但是就无法保证集群分裂了,那么这样的情况,最好至少保证有3个节点。
covery.zen.minimum_master_nodes:2

#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"]指明集群中其它可能为master的节点ip,以防es启动后发现不了集群中的其他节点。第一对引号里是node1。第二个是 node2 。
discovery.zen.ping.unicast.hosts: ["192.168.198.223","192.168.198.224"]

elasticsearch的默认对外服务的http端口号是9200,节点间交互的tcp端口号是9300。我们要保证开放其防火墙端口。

3、可视化工具elasticsearch-head的安装

官方 GitHub 地址为:https://github.com/mobz/elasticsearch-head。之前head是作为elasticsearch的插件安装的,不过现在这种方法已经废弃。
在我本地电脑上执行:

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
#注意需要有node环境,如果没有,安装node环境就好了
npm install

然后打开elasticsearch-head/Gruntfile.js,找到下面connect属性,新增hostname: ‘*’,

connect: {
   server: {
      options: {
          hostname:'*',
          port: 9100,
          base:'.',
          keepalive:true
      }
}

修改elasticsearch配置文件使其允许跨域:

cd elasticsearch-5.5.0/config        #进入config目录
vim elasticsearch.yml        #编辑elasticsearch.yml文件
#添加如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"

然后就可以执行elasticsearch-head了。进入elasticsearch-head目录,执行命令:

npm run start

打开浏览器,输入网址localhost:9100进入即可。

4、分别运行每台机器上的elasticsearch

分别运行每台机器上的elasticsearch,并且启动本机上的elasticsearch-head插件,打开浏览器,输入网址:localhost:9100进入,连接http://192.168.198.223:9200/,结果图如下:

这里可以看到elasticsearch集群状态是绿色,并且没有任何数据。当我们查看集群状态的时候,我们要么得到绿色、黄色或红色。
绿色代表一切正常(集群功能齐全)。
黄色意味着所有的数据都是可用的,但是某些复制分片处于没有被分配的状态(集群功能齐全)。
红色则代表因为某些原因,某些数据不可用。在这种状态下,会有丢失数据的危险。

elasticsearch官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容