[关闭]
@zh350229319 2018-09-29T07:40:22.000000Z 字数 7135 阅读 813

elasticsearch kibana 集群搭建

elasticsearch


elasticsearch5.5 集群搭建

环境

elasticsearch5.x需要jdk1.8指出,如果使用jdk1.7可以下载2.4.5
最新版本
2.4.5
本文搭建集群使用的版本为5.5,系统为CenterOS
本文搭建的环境所有节点同时是主节点和数据节点,集群较大时可以将主节点和数据节点分开,保证集群的稳定运行
官方文档

配置

节点配置如下

  1. cluster.name: bwjf_dev
  2. node.name: master
  3. network.host: 192.168.5.185
  4. http.port: 9200
  5. http.cors.enabled: true
  6. http.cors.allow-origin: "*"
  7. node.master: true
  8. node.data: true
  9. discovery.zen.ping.unicast.hosts: ["192.168.5.185:9200","192.168.5.186:9200","192.168.5.187:9200"]
  10. #新增,仓库地址
  11. path.repo: ["/usr/hadoop/application/el_bak"]
  12. discovery.zen.minimum_master_nodes=2
  13. #CenterOS需要加入以下配置
  14. bootstrap.memory_lock: false
  15. bootstrap.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

除以上配置外,还需要根据“遇到的问题”一节中来配置系统参数,以免浪费时间在启动重启上

启动

  1. /usr/hadoop/application/elasticsearch/bin/elasticsearch -d
  2. #日志
  3. tail -fn 100 /usr/hadoop/application/elasticsearch/logs/bwjf_dev.log

-d为后台启动

遇到的问题

max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:切换到root用户,编辑/etc/security/limits.conf配置文件, 添加如下内容

  1. * soft nofile 65536
  2. * hard nofile 131072
  3. * soft nproc 2048
  4. * hard nproc 4096

备注:* 代表Linux所有用户名称(比如 hadoop)
保存、退出、重新登录才可生效

max number of threads [1024] for user [hadoop] is too low, increase to at least [2048]

原因:无法创建本地线程问题,用户最大可创建线程数太小
解决方案:切换到root用户,修改/etc/security/limits.d/90-nproc.conf 配置文件
找到如下内容:

  1. * soft nproc 1024
  2. #修改为
  3. * soft nproc 2048

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

原因:最大虚拟内存太小
解决方案:切换到root用户下,修改配置文件/etc/sysctl.conf
添加下面配置:vm.max_map_count=655360
并执行命令:sysctl -p
然后重新启动elasticsearch,即可启动成功。

elasticsearch集群管理工具head插件

可以使用x-pack
elasticsearch-head采用单节点部署

安装

1、安装nodejs和npm:yum -y install nodejs npm
2、下载代码并安装

  1. git clone https://github.com/mobz/elasticsearch-head.git
  2. cd elasticsearch-head/
  3. npm install

修改配置

1、修改elasticsearch.yml,增加跨域的配置(需要重启es才能生效)。可以参考git上的文档加入登录验证

  1. http.cors.enabled: true
  2. http.cors.allow-origin: "*"

2、编辑head/Gruntfile.js,修改服务器监听地址,增加hostname属性,将其值设置为*。

  1. connect: {
  2. hostname: '*',
  3. server: {
  4. options: {
  5. port: 9100,
  6. base: '.',
  7. keepalive: true
  8. }
  9. }
  10. }

3、编辑head/_site/app.js,修改head连接es的地址,将localhost修改为es的IP地址,在head机器上有elasticsearch则不需要修改

  1. this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.5.185:9200";

启动

  1. cd elasticsearch-head
  2. npm run start

kibana集群搭建

kibana采用单节点部署

安装

本文使用kibana-5.5.0-linux-x86_64.tar.gz安装,其他安装方法可以参考Install Kibana

配置

文件位于$KIBANA_HOME/config/kibana.yml,具体配置项含义参考Kibana Configuration Settings

  1. #当前服务端地址,默认值"localhost"
  2. server.host: "localhost"
  3. #服务端端口号,默认5601
  4. server.port: 5601
  5. #elasticsearch地址,默认值"http://localhost:9200"
  6. elasticsearch.url: "http://localhost:9200"

我配置时使用localhost时,kibana报无法连接错误,根据Kibana Fails to connect to Elasticsearch after the install of SearchGuard所述,可以在kibana系统上使用命令测试,如果返回结果,才可以使用。

  1. [hadoop@ceshi185 bin]$ curl -k -s http://192.168.5.185:9200
  2. {
  3. "name" : "node-185",
  4. "cluster_name" : "bwjf_dev",
  5. "cluster_uuid" : "gY9TIJvlROC-sVqNPYtTZw",
  6. "version" : {
  7. "number" : "5.5.0",
  8. "build_hash" : "260387d",
  9. "build_date" : "2017-06-30T23:16:05.735Z",
  10. "build_snapshot" : false,
  11. "lucene_version" : "6.6.0"
  12. },
  13. "tagline" : "You Know, for Search"
  14. }

最终我的配置如下

  1. server.host: "192.168.5.185"
  2. elasticsearch.url: "http://192.168.5.185:9200"

启动

  1. ./bin/kibana

X-Park安装

官方文档:X-Pack for the Elastic Stack
x-pack-5.5.0.zip下载地址
注意版本必须和ES、Kibana匹配

安装命令

  1. cd $EL_HOME
  2. bin/elasticsearch-plugin install file:////usr/hadoop/application/x-pack-5.5.0.zip
  3. cd $KIBANA_HOME
  4. bin/kibana-plugin install file:////usr/hadoop/application/x-pack-5.5.0.zip

如果安装后出现问题,可以尝试卸载后重装

  1. elasticsearch-plugin remove x-pack
  2. kibana-plugin remove x-pack

配置

官方文档
elasticsearch修改密码,

  1. curl -XPUT -u elastic:changeme http://ceshi185:9200/_xpack/security/user/elastic/_password -H "Content-Type: application/json" -d '{"password":"123456"}'
  2. curl -XPUT -u elastic:changeme http://ceshi185:9200/_xpack/security/user/kibana/_password -H "Content-Type: application/json" -d '{"password":"123456"}'

修改kibana.yml

  1. elasticsearch.username: "elastic"
  2. elasticsearch.password: "123456"

破解x-pack

创建文件,上传到elasticsearch节点

  1. package org.elasticsearch.license;
  2. import java.nio.*;
  3. import java.util.*;
  4. import java.security.*;
  5. import org.elasticsearch.common.xcontent.*;
  6. import org.apache.lucene.util.*;
  7. import org.elasticsearch.common.io.*;
  8. import java.io.*;
  9. public class LicenseVerifier
  10. {
  11. public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
  12. return true;
  13. }
  14. public static boolean verifyLicense(final License license) {
  15. return true;
  16. }
  17. }

执行命令,编译文件

  1. 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文件

  1. #解压
  2. cd /usr/hadoop/application/elasticsearch/plugins/x-pack/
  3. mkdir test
  4. mv x-pack-5.5.0.jar test/
  5. cd test
  6. jar xvf x-pack-5.5.0.jar
  7. #替换
  8. cd org/elasticsearch/license
  9. rm -f LicenseVerifier.class
  10. cp /usr/hadoop/application/license/LicenseVerifier.class .
  11. #打包
  12. cd /usr/hadoop/application/elasticsearch/plugins/x-pack/test
  13. jar cvf x-pack-5.5.0.jar .
  14. mv x-pack-5.5.0.jar ../
  15. #删除临时文件
  16. cd /usr/hadoop/application/elasticsearch/plugins/x-pack/
  17. rm -fr test

替换其他节点的x-pack-5.5.0.jar,重启集群
申请license,并下载license文件
修改license文件:

  1. {"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等根据自己需要修改即可。

  1. #查看license
  2. curl -XGET -u elastic:123456 http://192.168.5.185:9200/_xpack/license
  3. #注册新license
  4. curl -XPUT -u elastic:123456 http://192.168.5.185:9200/_xpack/license?acknowledge=true -H "Content-Type: application/json" -d @license.json
  5. #成功消息
  6. {"acknowledged":true,"license_status":"valid"}
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注