欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ES(V) ElasticSearch+Kibana+IK 安装 - ES 集群

最编程 2024-03-06 15:40:52
...

一、安装前的准备

    准备三台Linux主机,可以是物理机、虚拟机、云主机

        ① 三台主机要保证可相互通信,尽量配置SSH免密登录
        ② 三台主机均安装同一版本的JDK,建议JDK8+
        ③ 三台主机的名称和IP-主机名映射尽量配置一下
        ④ 主机的单机内存最少2GB,这是自己玩儿,如若是生产环境,配置要详细计算

    小白这边使用的是三台Centos6.x虚拟主机,安装的jdk8,ES集群环境规划如下:

ES集群环境规划图

二、下载、解压

    按照【ES集群环境规划图】下载相应的组件包,要保持版本一致,并解压放置在对应的机器目录中(注意Kibana此处只部署了一台),小白的三个目录分别为:

    /opt/module/elasticsearch-6.6.0
    /opt/module/kibana-6.6.0-linux-x86_64
    /opt/module/elasticsearch-6.6.0/plugins/ik

    由于前两篇文章中已经细致的阐述过单机版的安装过程,此处不再赘述,只是再贴一次资源地址

    官网下载ES的Linux版本的tar包:https://www.elastic.co/cn/downloads/elasticsearch

    官网下载Kibana的Linux版本的tar包:https://www.elastic.co/cn/downloads/kibana

    GitHub下载IK分词器的ZIP包:https://github.com/medcl/elasticsearch-analysis-ik/releases

三、ElasticSearch与Linux配置

1、分别修改各主机上ElasticSearch的配置文件 

Linux命令  vi /opt/module/elasticsearch-6.6.0/config/elasticsearch.yml

elasticsearch.yml

2、分别修改各主机Linux系统配置

       为什么要修改linux配置?

       默认elasticsearch是单机访问模式,就是只能自己访问自己。但是我们之后一定会设置成允许应用服务器通过网络方式访问。这时,elasticsearch就会因为嫌弃单机版的低端默认配置而报错,甚至无法启动。所以我们在这里就要把服务器的一些限制打开,能支持更多并发。当然了,不出问题的话也可以不改!

       问题一:启动日志出现 

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

        将系统允许 Elasticsearch 打开的最大文件数修改成65536

   vi /etc/security/limits.conf    修改Centos系统的配置

         添加内容:

        * soft nofile 65536
        * hard nofile 131072
        * soft nproc 2048
        * hard nproc 65536

        注意:“*” 不要省略掉

       问题二: 启动日志出现 

        max number of threads [1024] for user [judy2] likely too low, increase to at least [2048]  (CentOS7.x  不用改)

        将允许最大进程数修改成4096

   vi /etc/security/limits.d/90-nproc.conf   修改Centos系统的配置

        修改如下内容:

        * soft nproc 1024  => * soft nproc 2048

        问题二中其实已经改过一次了,小白这边2048就解决问题了,再不行的话就修改为4096 

        问题三: 启动日志出现 

        max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] (CentOS7.x  不用改)

        可临时提高vm.max_map_count的大小,进而提高一个进程可以拥有的虚拟内存区域的数量。

   sysctl -w vm.max_map_count=262144      临时生效,重启虚拟机则失效

   vim  /etc/sysctl.conf    在文件最后添加一行 vm.max_map_count=262144    永久生效

        修改完需重启linux,如果是较新版本的linux,也可以使用 sysctl -p 命令去生效。

四、配置Kibana

 Linux命令 vi /opt/module/kibana-6.6.0-linux-x86_64/config/kibana.yml

kibana.yml

五、配置IK分词器

       其实这个不需要配置,只要解压到/opt/module/elasticsearch-6.6.0/plugin目录下(如果解压后的文件没有目录,就新建一个,如/opt/module/elasticsearch-6.6.0/plugin/ik/),ES启动时会自动扫描加载,至于其作用,此处不做深入说明,下一篇将会用到,到时再叙。

六、集群启动测试

    1、启动集群

        启动方式一:

        第一步:在各节点上分别执行ES启动命令,注意先启动主节点

   /opt/module/elasticsearch-6.6.0/bin/elasticsearch

        第二步:在kibana所在节点上执行启动命令

    /opt/module/kibana-6.6.0-linux-x86_64/bin/kibana

        启动方式二:

        在用户家目录下的bin目录中新建一个shell脚本并赋予执行权限

        小白的脚本名为 elk.sh,代码如下

   #!/bin/bash
   es_home=/opt/module/elasticsearch-6.6.0
   kibana_home=/opt/module/kibana-6.6.0-linux-x86_64
   case $1  in
   "start") {
         for i in hadoop02 hadoop03 hadoop04
         do
           echo "----------$i 启动elasticsearch----------"
           ssh $i  "source /etc/profile;${es_home}/bin/elasticsearch >/dev/null 2>&1 &"
          done
          echo "----------启动kibana----------"
          nohup ${kibana_home}/bin/kibana >/opt/module/kibana-6.6.0-linux-x86_64/kibana.log 2>&1 &
   };;
   "stop") {
         echo "----------关闭kibana----------"
         ps -ef|grep ${kibana_home} |grep -v grep|awk '{print $2}'|xargs kill
         for i in hadoop02 hadoop03 hadoop04
         do
           echo "----------$i 关闭elasticsearch----------"
           ssh $i "ps -ef|grep $es_home |grep -v grep|awk '{print \$2}'|xargs kill" >/dev/null 2>&1
         done
   };;
   esac

  启动ES集群及kibana命令:elk.sh start

  关闭ES集群及kibana命令:elk.sh stop

    注意:
        此文本中ssh $i需要事先配置ssh免密登录,否则需要手动输入密码。

    2、测试集群

        到这里,ES集群和kibana都已经启动了

        浏览器输入 http://hadoop02:5601  此处hadoop02是Kibana所在的机器IP

        出现如下页面,并查看集群状态,则说明集群正常启动了

集群健康状况
集群节点状态

七、总结

      ES集群算是大数据领域安装部署比较简单的,但是还有更简单的!此时你想到的一定也是Docker,快速部署开发、测试环境,就像maven管理依赖那般,舒服了~

    最后,ES及其相关组件的配置参数有很多,详情还是参照官网比较好!

    https://www.elastic.co/guide/index.html





ES(四) FileBeat+LogStash安装与测试                                           ES(六) ElasticSearch搜索原理