【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