Elasticsearch-2.4.3的3节点安装(图文详解)(含 head、kopf、marvel、shield和watcher插件安装和使用)

我这里,以192.168.80.10(HadoopMaster)、192.168.80.11(HadoopSlave1)、192.168.80.12(HadoopSlave2)三台机器,来安装ES的3节点集群部署。

ElasticSearch 规划-集群规划

      

 

 

 

 ElasticSearch 规划-集群规划

        

 

 

 

 

 


ElasticSearch 规划-用户规划

 

 

 

 

 

 

ElasticSearch 规划-目录规划

   软件目录:/home/hadoop/app/

       数据目录:/home/hadoop/data/elasticsearch-2.4.3/data

      日志目录:/home/hadoop/data/elasticsearch-2.4.3/datalog

   进程目录:/home/hadoop/data/elasticsearch-2.4.3/pid

    三台均要去做。

 

 

 

ElasticSearch 集群环境检查-时钟同步

1.设置本地时间

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.集群时间日期同步NTP

yum install ntp

ntpdate pool.ntp.org

ElasticSearch 集群环境检查-hosts文件检查

 

 

配置ElasticSearch集群ip与hostname之间的对应关系

vi /etc/hosts

192.168.80.10   HadoopMaster

192.168.80.11   HadoopSlave1

192.168.80.12   HadoopSlave2

 

 

ElasticSearch 集群环境检查-禁用防火墙

查看防火墙状态

service iptables status

关闭防火墙

chkconfig iptables off //永久关闭防火墙

service iptables stop //临时关闭防火墙

 

 


ElasticSearch jdk安装

下载解压

配置环境变量

这个很简单,不多赘述

 

 


Elasticsearch-2.4.3的3节点安装的前提步骤

1、HadoopMaster

 

 


2、HadoopSlave1


 3、HadoopSlave2 

 

 

 

 

Elasticsearch-2.4.3的3节点安装的过程步骤

  1、上传elasticsearch-2.4.3.tar.gz压缩包

 

 

 


 

 

 

 


 

 

 

 


  2、解压缩elasticsearch-2.4.3.tar.gz压缩包

 

 

 


 

 

 

 

 


 

 

 

 

  3、删除elasticsearch-2.4.3.tar.gz压缩包

  

 

 

 

 

 

 

 

 

 

 

  4、解读认识ES的目录结构

  这里,以HadoopMaster为例

 

 

  5、修改配置文件

  进入$ES_HOME/config

 

   当然,这个配置文件,直接可以下载到本地,用Notepad++等软件来打开。

 

 

# network.host: 192.168.0.1

# discovery.zen.ping.unicast.hosts: ["host1", "host2"]
# cluster.name: my-application
# node.name: node-1
# path.data: /path/to/data
# path.logs: /path/to/logs




改为

network.host: 0.0.0.0  (当然这里,可以写为192.168.80.10)
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
discovery.zen.ping.unicast.hosts: ["192.168.80.10","192.168.80.11", "192.168.80.12"]
cluster.name: escluster
node.name: node-0
path.data: /home/hadoop/data/elasticsearch-2.4.3/data (当然若为了更专业,比如实现负载均衡,挂载不同盘上,则可以用多个目录,用逗号隔开句好,这里为了学习只写一个)
path.logs: /home/hadoop/data/elasticsearch-2.4.3/datalog


其实,这里自行去设置。这里牵扯到单播和多播
注意,这些一定要顶格。

 

 

   对其他两台也要进行同样的配置文件修改工作。

 

 

或者用scp命令,进行分发,这个很简单!








ElasticSearch 插件安装(含 head、kopf、marvel、shield和watcher插件安装)

  安装marvel插件(所有节点都需要安装)(在线安装)

    bin/plugin install license

    bin/plugin install marvel-agent

  安装head插件(选择一个节点安装即可)(在线安装)(其实安装一个节点就可以看到整个集群的了)(我这里就3个节点都安装了)

    bin/plugin install mobz/elasticsearch-head

 

 

安装 head和kopf插件:

 

 

 


同理,HadoopSlave1和HadoopSlave2也如上述步骤。这里,不多赘述。

 

 

 

  安装marvel插件:

  (所有节点都需要安装)(HadoopMaster、HadoopSlave1和Hadoopslave2)

 同理,HadoopSlave1和HadoopSlave2也如上述步骤。这里,不多赘述。

 

 

 

  安装shield插件:

(所有节点都需要安装)(HadoopMaster、HadoopSlave1和Hadoopslave2)

 

  默认情况下elasticsearch可以不受限制访问,如果在外网的情况下就不安全了,所以,elastic官方提供了shield插件,可以实现权限控制,但是不好的地方就是这个插件是收费的,可以免费试用一个月。那我就带你来试试吧! 

  我告诉你一个小技巧:等到30天之后,卸载 shield,再重新安装就是。该如何卸载,后面我也有写。

  Shield 插件必须安装在集群中的每一个节点,并且每一个节点在安装完成之后必须要重启才能生效。

   我这里,是3节点集群,所以HadoopMaster、HadoopSlave1和HadoopSlave2都安装shield插件。

  注意:你必须保证Shield的版本和你运行的Elasticsearch的版本保持一致。

Java 7 or later
Elasticsearch 2.4.3
Elasticsearch License 2.4.3 plugin

 

 

当然,若你的网速不好的话,也可以选择离线来安装。即,先下载好。

https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/license/2.4.3/license-2.4.3.zip

https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/shield/2.4.3/shield-2.4.3.zip

 

 

 

 

 

 

 

 


 同理,HadoopSlave1和HadoopSlave2也如上述步骤。

 

 

 

   然后,默认情况下es并没有禁用自动创建索引库功能。

  假设,若你在以后时,如果你在es中禁用了自动创建索引库的功能。那么你需要在elasticsearch.yml中配置action.auto_create_index 以便允许Shield去创建.security 索引库。action.auto_create_index: .security

  这里,我不赘述。

 

  然后,启动/重启es  

 

 

 

 

安装shield插件之后,如何来使用呢?(HadoopMaster、HadoopSlave1、HadoopSlave2)

 

  创建用户:

    用户级别分为以下三种: 

      (1)admin:可以对就所有集群或者索引库执行操作

      (2)power_user:可以监控集群并且对所有索引库执行操作

      (3)user:可以对所有索引库执行read操作

 

 

 

 

  创建用户命令:【执行之后会提示用户设置密码】

bin/shield/esusers useradd es_admin -r admin

 

解释:
useradd:表示添加用户
es_admin:表示要新建的用户名称
-r:指定权限信息
admin:给新建的用户赋予admin权限

   

注意:当提示输入密码的时候,给新用户设置一个新密码,密码必须至少包含6个字符。比如我这里设置为123456

这也是,为什么后续,编程java api时,需要用到的地方。见如下:

使用java api操作es需要注意的地方(Elasticsearch开启shield插件之后)

 

 

 访问es:-u es_admin 表示使用用户es_admin进行访问

 

curl -u es_admin -XGET 'http://localhost:9200/'

或
curl -u es_admin -XGET 'http://192.168.80.10:9200/'

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

  访问的会提示输入刚才设置的密码。(我刚才输入的密码是123456,用户名是es_admin)。

  这样以后再访问es的时候就需要输入用户名和密码了。

 

 

 

kibana中也能使用shield

  具体见,https://www.elastic.co/guide/en/shield/current/kibana.html

   以后写上,

 

 

 

如果您的安全要求更复杂,你可以这样做:

  1、定义和使用细粒度访问控制的自定义角色

  2、使用LDAP或Active Directory集成,或使用证书的认证。

  3、使用IP过滤来自特定IP地址或地址范围的请求

  具体,见https://www.elastic.co/guide/en/shield/current/ip-filtering.html

 

 

 

目前是试用期30天(商业),如何卸载shield?

  如果不想使用shield,需要移除掉。

    第一步:停止es

    第二步:从es中移除shield插件

[hadoop@HadoopSlave2 elasticsearch-2.4.3]$ bin/plugin remove shield

    第三步:启动es. 

[hadoop@HadoopSlave2 elasticsearch-2.4.3]$ jps
2394 Jps
[hadoop@HadoopSlave2 elasticsearch-2.4.3]$ bin/elasticsearch -d
[hadoop@HadoopSlave2 elasticsearch-2.4.3]$ jps
2428 Jps
2415 Elasticsearch

  这样做的目的是,为了再次重新使用30天,目前,只能这样个傻瓜办法了。

 

 

 

 

 

 

 

 安装watcher插件:

  (所有节点都需要安装)(HadoopMaster、HadoopSlave1和Hadoopslave2)

   watcher插件可以提供elasticsearch集群的监控提醒功能。

   你需要在你的集群中所有节点安装license和watcher插件。

 

   可以通过上述网址,去下载到。

 

 

 

  当然,照样也是,可以离线方式来安装的。

 

 

 


 

 

   默认这一步不需要操作,因为默认情况下es并没有禁用自动创建索引库功能。

  如果你在es中禁用了自动创建索引库的功能。那么你需要在elasticsearch.yml中配置action.auto_create_index 以便允许watcher去创建.watches, .triggered_watches, and .watcher-history* 索引库。

  如果你已经安装了shield,你必须允许shield创建.security索引库

  这里,我不赘述。

 

  然后,启动/重启es  

 

 

 

  验证watcher插件后的效果

curl -XGET 'http://localhost:9200/_watcher/stats?pretty'

或
curl -XGET 'http://192.168.80.10:9200/_watcher/stats?pretty'

 

 

 


 


 

 

 暂时,放这里。

 

 

 

监控功能:

  1:监控错误日志

    具体见,https://www.elastic.co/guide/en/watcher/current/watch-log-data.html

  2:监控集群监控状态

    具体见,https://www.elastic.co/guide/en/watcher/current/watch-cluster-status.html

 

 

 

 

下面以监控集群状态为例演示:

  1:创建一个每10秒运行一次的调度器

curl -XPUT 'http://192.168.80.10:9200/_watcher/watch/cluster_health_watch' -d '{
"trigger" : {
"schedule" : { "interval" : "10s" }
}
}'

  2:给这个调度器增加一个input,把集群的健康状态添加到watcher中

curl -XPUT 'http://192.168.80.10:9200/_watcher/watch/cluster_health_watch' -d '{
"trigger" : {
"schedule" : { "interval" : "10s" }
},
"input" : {
"http" : {
"request" : {
"host" : "192.168.80.100",
"port" : 9200,
"path" : "/_cluster/health"
}
}
}
}'

   3:给这个wacher添加一个条件,判断集群的状态是否为red

 

curl -XPUT 'http://192.168.80.100:9200/_watcher/watch/cluster_health_watch' -d '{
"trigger" : {
"schedule" : { "interval" : "10s" }
},
"input" : {
"http" : {
"request" : {
"host" : "192.168.80.100",
"port" : 9200,
"path" : "/_cluster/health"
}
}
},
"condition" : {
"compare" : {
"ctx.payload.status" : { "eq" : "red" }
}
}
}'

  4:给watcher设置触发任务,当满足条件的时候,执行。

  一般都是发送邮件。

  所以需要先配置邮箱信息。修改es的配置文件。

  vi conf/elasticsearch.yml

watcher.actions.email.service.account:
work:
profile: qqmail
smtp:
auth: true
starttls.enable: true
host: smtp.qq.com
port: 587
user: 12345677@qq.com
password: 12345678


  添加触发任务【手动把某一个索引库的分片删除一部分可以模拟分片丢失,集群状态会变为red,此任务就会被触发,发送邮件。】

curl -XPUT 'http://192.168.80.100:9200/_watcher/watch/cluster_health_watch' -d '{
"trigger" : {
"schedule" : { "interval" : "10s" }
},
"input" : {
"http" : {
"request" : {
"host" : "192.168.80.100",
"port" : 9200,
"path" : "/_cluster/health"
}
}
},
"condition" : {
"compare" : {
"ctx.payload.status" : { "eq" : "yellow" }
}
},
"actions" : {
"send_email" : {
"email" : {
"to" : "87654321@qq.com",
"subject" : "Cluster Status Warning",
"body" : "Cluster status is RED"
}
}
}
}'

 

  验证集群状态,如果集群状态为red,则刚才配置的watcher任务就会执行,发送邮件提醒。

curl -XGET 'http://192.168.80.10:9200/_cluster/health?pretty'

 

 

  5:实验结束,可以移除掉这个watcher

curl -XDELETE 'http://192.168.80.10:9200/_watcher/watch/cluster_health_watch'

 

 

 

 

  目前是试用期30天(商业),如何卸载watcher?

    第一步:停止Elasticsearch.

    第二步:从Elasticsearch中移除watcher:

bin/plugin remove watcher

    第三步:启动Elasticsearch.


 

 

 

 

 

 

 

  7、启动,验证

 

   其实啊,或者通过es的这种后台来启动也是可以的。

bin/elasticsearch  -d  -p /home/hadoop/data/elasticsearch-2.4.3/pid

 

 

 

 

   输入,http://192.168.80.10:9200/

   以上是默认的。

 

 

  以上是自己修改了es的配置文件得到的。

 

 

 

 

 

 其实啊,或者通过es的这种后台来启动也是可以的。

bin/elasticsearch  -d  -p /home/hadoop/data/elasticsearch-2.4.3/pid

  以上是默认的。

 

  以上是自己修改了es的配置文件得到的。

 

 

 

 

 

 

 

 

 

 其实啊,或者通过es的这种后台来启动也是可以的。

bin/elasticsearch  -d  -p /home/hadoop/data/elasticsearch-2.4.3/pid

   以上是默认的。

 

 

  以上是自己修改了es的配置文件得到的。

 

 

 

  三个节点的整个。

 

 

 

 

 

 

 

 

 

   启动head插件界面

  注意:每次启动会随机生成一个节点名称 。

   默认情况下,三台机器,内部默认选举,选出哪台是主节点,但是对于我们而言,也可以自己限制出哪台是主节点。

 

 

 

  在这里,要说明一个问题:

  出现了 no_route_to_host_exception: No route to host ,最后查博客得知,是防火墙没关闭,建议作永久关闭,即 chkconfig iptables off 。

 

 节点和节点之间通信 是走9300端口    
 我们通过http请求连接es是走9200端口 
 
 
 
   插件kopf启动界面
 http://192.168.80.12:9200/_plugin/kopf/#!/cluster

   对应,

  这里,不多赘述。

 

   至此,ES的3台机器组件的集群,成功安装!



作者:大数据躺过的坑
出处:http://www.cnblogs.com/zlslch/



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值