@zh350229319
2018-09-29T07:40:22.000000Z
字数 7135
阅读 813
elasticsearch
elasticsearch5.x需要jdk1.8指出,如果使用jdk1.7可以下载2.4.5
最新版本
2.4.5
本文搭建集群使用的版本为5.5,系统为CenterOS
本文搭建的环境所有节点同时是主节点和数据节点,集群较大时可以将主节点和数据节点分开,保证集群的稳定运行
官方文档
节点配置如下
cluster.name: bwjf_devnode.name: masternetwork.host: 192.168.5.185http.port: 9200http.cors.enabled: truehttp.cors.allow-origin: "*"node.master: truenode.data: truediscovery.zen.ping.unicast.hosts: ["192.168.5.185:9200","192.168.5.186:9200","192.168.5.187:9200"]#新增,仓库地址path.repo: ["/usr/hadoop/application/el_bak"]discovery.zen.minimum_master_nodes=2#CenterOS需要加入以下配置bootstrap.memory_lock: falsebootstrap.system_call_filter: false
cluster.name:集群名字
node.name:节点名字,不能和其他节点重复
network.host:当前地址
http.port:端口号,默认为9200
node.master:设置为True(默认)的时候,它有资格被选作为主节点,控制整个集群
node.data:在一个节点上node.data设置为True(默认)的时候。该节点保存数据和执行数据相关的操作,如增删改查,搜索,和聚合
discovery.zen.ping.unicast.hosts:配置为主节点地址(node.master=true)
discovery.zen.minimum_master_nodes:设置这个值的原则是:(主节点数 / 2)+ 1,原因参考Elasticsearch节点类型
最后两项因为CenterOS不支持,改为false,正常情况下推荐使用默认配置
elasticsearch配置文件详解
需要修改的配置有三项:node.name,network.host除以上配置外,还需要根据“遇到的问题”一节中来配置系统参数,以免浪费时间在启动重启上
/usr/hadoop/application/elasticsearch/bin/elasticsearch -d#日志tail -fn 100 /usr/hadoop/application/elasticsearch/logs/bwjf_dev.log
-d为后台启动
原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:切换到root用户,编辑/etc/security/limits.conf配置文件, 添加如下内容
* soft nofile 65536* hard nofile 131072* soft nproc 2048* hard nproc 4096
备注:* 代表Linux所有用户名称(比如 hadoop)
保存、退出、重新登录才可生效
原因:无法创建本地线程问题,用户最大可创建线程数太小
解决方案:切换到root用户,修改/etc/security/limits.d/90-nproc.conf 配置文件
找到如下内容:
* soft nproc 1024#修改为* soft nproc 2048
原因:最大虚拟内存太小
解决方案:切换到root用户下,修改配置文件/etc/sysctl.conf
添加下面配置:vm.max_map_count=655360
并执行命令:sysctl -p
然后重新启动elasticsearch,即可启动成功。
可以使用x-pack
elasticsearch-head采用单节点部署
1、安装nodejs和npm:yum -y install nodejs npm
2、下载代码并安装
git clone https://github.com/mobz/elasticsearch-head.gitcd elasticsearch-head/npm install
1、修改elasticsearch.yml,增加跨域的配置(需要重启es才能生效)。可以参考git上的文档加入登录验证
http.cors.enabled: truehttp.cors.allow-origin: "*"
2、编辑head/Gruntfile.js,修改服务器监听地址,增加hostname属性,将其值设置为*。
connect: {hostname: '*',server: {options: {port: 9100,base: '.',keepalive: true}}}
3、编辑head/_site/app.js,修改head连接es的地址,将localhost修改为es的IP地址,在head机器上有elasticsearch则不需要修改
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.5.185:9200";
cd elasticsearch-headnpm run start
kibana采用单节点部署
本文使用kibana-5.5.0-linux-x86_64.tar.gz安装,其他安装方法可以参考Install Kibana
文件位于$KIBANA_HOME/config/kibana.yml,具体配置项含义参考Kibana Configuration Settings
#当前服务端地址,默认值"localhost"server.host: "localhost"#服务端端口号,默认5601server.port: 5601#elasticsearch地址,默认值"http://localhost:9200"elasticsearch.url: "http://localhost:9200"
我配置时使用localhost时,kibana报无法连接错误,根据Kibana Fails to connect to Elasticsearch after the install of SearchGuard所述,可以在kibana系统上使用命令测试,如果返回结果,才可以使用。
[hadoop@ceshi185 bin]$ curl -k -s http://192.168.5.185:9200{"name" : "node-185","cluster_name" : "bwjf_dev","cluster_uuid" : "gY9TIJvlROC-sVqNPYtTZw","version" : {"number" : "5.5.0","build_hash" : "260387d","build_date" : "2017-06-30T23:16:05.735Z","build_snapshot" : false,"lucene_version" : "6.6.0"},"tagline" : "You Know, for Search"}
最终我的配置如下
server.host: "192.168.5.185"elasticsearch.url: "http://192.168.5.185:9200"
./bin/kibana
官方文档:X-Pack for the Elastic Stack
x-pack-5.5.0.zip下载地址
注意版本必须和ES、Kibana匹配
cd $EL_HOMEbin/elasticsearch-plugin install file:////usr/hadoop/application/x-pack-5.5.0.zipcd $KIBANA_HOMEbin/kibana-plugin install file:////usr/hadoop/application/x-pack-5.5.0.zip
如果安装后出现问题,可以尝试卸载后重装
elasticsearch-plugin remove x-packkibana-plugin remove x-pack
官方文档
elasticsearch修改密码,
curl -XPUT -u elastic:changeme http://ceshi185:9200/_xpack/security/user/elastic/_password -H "Content-Type: application/json" -d '{"password":"123456"}'curl -XPUT -u elastic:changeme http://ceshi185:9200/_xpack/security/user/kibana/_password -H "Content-Type: application/json" -d '{"password":"123456"}'
修改kibana.yml
elasticsearch.username: "elastic"elasticsearch.password: "123456"
创建文件,上传到elasticsearch节点
package org.elasticsearch.license;import java.nio.*;import java.util.*;import java.security.*;import org.elasticsearch.common.xcontent.*;import org.apache.lucene.util.*;import org.elasticsearch.common.io.*;import java.io.*;public class LicenseVerifier{public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {return true;}public static boolean verifyLicense(final License license) {return true;}}
执行命令,编译文件
javac -cp "/usr/hadoop/application/elasticsearch/lib/elasticsearch-5.5.0.jar:/usr/hadoop/application/elasticsearch/lib/lucene-core-6.6.0.jar:/usr/hadoop/application/elasticsearch/plugins/x-pack/x-pack-5.5.0.jar" LicenseVerifier.java
替换class文件
#解压cd /usr/hadoop/application/elasticsearch/plugins/x-pack/mkdir testmv x-pack-5.5.0.jar test/cd testjar xvf x-pack-5.5.0.jar#替换cd org/elasticsearch/licenserm -f LicenseVerifier.classcp /usr/hadoop/application/license/LicenseVerifier.class .#打包cd /usr/hadoop/application/elasticsearch/plugins/x-pack/testjar cvf x-pack-5.5.0.jar .mv x-pack-5.5.0.jar ../#删除临时文件cd /usr/hadoop/application/elasticsearch/plugins/x-pack/rm -fr test
替换其他节点的x-pack-5.5.0.jar,重启集群
申请license,并下载license文件
修改license文件:
{"license":{"uid":"d3cbbbee-9155-4e1a-a5ed-a7e8940d6564","type":"platinum","issue_date_in_millis":1499299200000,"expiry_date_in_millis":15698015999990,"max_nodes":1000,"issued_to":"guo dalu (eastmoney)","issuer":"Web Form","signature":"AAAAAwAAAA0C9L3AjL50eKgiW55YAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQB2gL4WXN64P0+c5q6TDyhqPllFvkboZMWjzJHid05qCtI86/I0aSsFgYF3AkVA1qoz7UHsjC/xBsoyhuXfmHn6LbsZYXweZ4LsllG8RJ8HH/bBYVTBt+Mag+wXE/QZUS7HnSA8iAReQ7tY//wyuEVrxFDeAI9cgwWN90RoZ3sAgkzGq0jVr2JoUYeYwNJ4GZ2GMDS7GsHBxNWBJVgfDkZXvLya/jOJhaKi2GvW8mIzFp19/FO+t2+ReUkbF3T35nVIZnqFDVhXtOz981By4ArffE8ythlI4X67Nabtzoy87V5gXanBvsSdHiHpYJMrYwn7DU+93Ie6t56Lesjkj//b","start_date_in_millis":1499299200000}}
platinum表示白金版,可以使用所有功能。其他的如expiry_date_in_millis、max_nodes等根据自己需要修改即可。
#查看licensecurl -XGET -u elastic:123456 http://192.168.5.185:9200/_xpack/license#注册新licensecurl -XPUT -u elastic:123456 http://192.168.5.185:9200/_xpack/license?acknowledge=true -H "Content-Type: application/json" -d @license.json#成功消息{"acknowledged":true,"license_status":"valid"}