美文网首页
Linux下elasticsearch的安装配置以及head插件

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

作者: yaya520 | 来源:发表于2017-07-14 21:01 被阅读0次

    注: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

    相关文章

      网友评论

          本文标题:Linux下elasticsearch的安装配置以及head插件

          本文链接:https://www.haomeiwen.com/subject/ylpohxtx.html