zoukankan      html  css  js  c++  java
  • 【Elasticsearch全文搜索引擎实战】之集群搭建及配置

    文中Elasticsearch版本为6.0.1

    1. 环境配置

    把环境配置放在第一节来讲,是因为很多人按官网的Getting Started安装运行会有各种错误。其实都是因为一些配置不正确引起的。
    首先,Elasticsearch不能以root账号运行,所以我们需要单独建立用户授权运行。
    对于非root账号Linux可以进行并发操作,但是文件、线程都有限制,所以,部署Elasticsearc的机器需要进行相应配置。

    • 修改文件限制
    # 修改系统文件
    vi /etc/security/limits.conf
    
    # 增加的内容
    
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 2048
    * hard nproc 4096
    
    • 调整进程数
    # 修改系统文件
    vi /etc/security/limits.d/90-nproc.conf
    
    # 调整成以下配置
    *          soft    nproc     4096
    root       soft    nproc     unlimited
    
    • 调整虚拟内存&最大并发连接
    # 修改系统文件
    vi /etc/sysctl.conf
    
    # 增加的内容
    vm.max_map_count=655360
    fs.file-max=655360
    

    保存之后执行 sysctl -p 生效

    • 创建Elasticsearch专用用户
    useradd es
    
    
    • 创建ELK相关目录并赋权
    #创建Elasticsearch APP目录
    mkdir /usr/elasticsearch
    #创建Elasticsearch日志目录 数据目录
    mkdir var/lib/elasticsearch
    #创建Elasticsearch日志目录
    mkdir var/logs/elasticsearch
    
    
    #更改目录Owner
    chown -R es:es /usr/elasticsearch
    chown -R es:es var/lib/elasticsearch
    chown -R es:es var/logs/elasticsearch
    
    • 下载Elasticsearch包并解压
    https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html
    #打开文件夹
    cd /home/download
    
    #下载
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.tar.gz
    
    #解压
    tar -zvxf elasticsearch-6.0.0.tar.gz
    
    

    2. Elasticsearch 部署

    本次一共要部署两个Elasticsearch节点,所有文中没有指定机器的操作都表示每个Elasticsearch机器都要执行该操作

    • 移动Elasticsearch到统一目录
    #移动目录
    mv /home/download/elasticsearch-6.0.1 /usr/elasticsearch
    #赋权
    chown -R elk:elk /usr/elasticsearch/
    
    • 开放端口(CentOS7+)
    # 增加端口
    firewall-cmd --add-port=9200/tcp --permanent
    firewall-cmd --add-port=9300/tcp --permanent
    
    • 重新加载防火墙规则(CentOS7+)
    firewall-cmd --reload
    
    • 切换账号
    #账号切换到 es
    su - es
    

    2. Elasticsearch集群配置

    • 修改配置
    #打开目录
    cd /usr/elasticsearch
    
    #修改配置
    
    vi config/elasticsearch.yml
    
    • 主节点配置(192.168.180.1)
    cluster.name: es 
    node.name: node-1
    path.data: /var/lib/elasticsearch
    path.logs: /var/logs/elasticsearch
    network.host: 192.168.180.1
    http.port: 9200
    node.master: true
    node.data: true
    discovery.zen.ping.unicast.hosts: ["192.168.180.1:9300","192.168.180.2:9300"]
    discovery.zen.minimum_master_nodes: 2
    
    • 从节点配置(192.168.180.2)
    cluster.name: es 
    node.name: node-2
    path.data: /var/lib/elasticsearch
    path.logs: /var/logs/elasticsearch
    network.host: 192.168.180.2
    http.port: 9200
    node.master: false
    node.data: true
    discovery.zen.ping.unicast.hosts: ["192.168.1.31:9300","192.168.1.32:9300"]
    discovery.zen.minimum_master_nodes: 2
    
    • 配置参数说明
    参数 说明
    cluster.name 集群名
    node.name 节点名
    path.data 数据保存目录
    path.logs 日志保存目录
    network.host 节点host/ip
    http.port HTTP访问端口
    node.master 是否允许作为主节点
    node.data 是否保存数据
    discovery.zen.ping.unicast.hosts 集群中的主节点的初始列表,当节点(主节点或者数据节点)启动时使用这个列表进行探测
    discovery.zen.minimum_master_nodes master选举最少的节点数,这个一定要设置为N/2+1,其中N是:N是具有master资格的节点的数量,而不是整个集群节点个数

    3. 启动Elasticsearch

    • 运行
    #进入elasticsearch根目录
    cd /usr/elasticsearch
    #启动 (-d 为后台运行)
    ./bin/elasticsearch -d
    
    • 验证

    访问http://192.168.180.1:9200/,可以看到如下内容则表示成功:

    {     
    name: "node-1",    
    cluster_name: "es",    
    cluster_uuid: "Tum8l98uQfK0LdS-KnsWxg",    
    version: {    
    number: "6.0.1",    
    build_hash: "601be4a",  
    build_date: "2017-12-04T09:29:09.525Z",    
    build_snapshot: false,    
    lucene_version: "7.0.1",    
    minimum_wire_compatibility_version: "5.6.0",    
    minimum_index_compatibility_version: "5.0.0"    
    },    
    tagline: "You Know, for Search"    
    }   
    
    • 健康状态检查

    访问http://192.168.180.1:9200/,status返回green则表示正常。

    {
    cluster_name: "es",
    status: "green",
    timed_out: false,
    number_of_nodes: 2,
    number_of_data_nodes: 2,
    active_primary_shards: 16,
    active_shards: 32,
    relocating_shards: 0,
    initializing_shards: 0,
    unassigned_shards: 0,
    delayed_unassigned_shards: 0,
    number_of_pending_tasks: 0,
    number_of_in_flight_fetch: 0,
    task_max_waiting_in_queue_millis: 0,
    active_shards_percent_as_number: 100
    }
    

    4. Head插件

    Elasticsearch head是一个用浏览器跟ES集群交互的插件,可以查看集群状态、集群的doc内容、执行搜索和普通的Rest请求等。
    具体安装配置请参考另外一篇博文:http://www.cnblogs.com/mantoudev/p/8269345.html

  • 相关阅读:
    记录cacti时间筛选bug的解决办法
    mysql开启远程访问权限
    Mysql 5.7.32 安装cacti-0.8.8h出错
    记录Apache无法解析PHP代码解决方法
    zabbix5.0安装问题:Time zone for PHP is not set
    数据库以及数据表的创建
    小程序框架wepy
    通用的代码总结
    html网页什么样的字体最好看,css设置各种中文字体样式代码
    vue中使用BetterScroll(网上)
  • 原文地址:https://www.cnblogs.com/mantoudev/p/8506204.html
Copyright © 2011-2022 走看看