前戏
Elasticsearch(简称ES)是一个开源的分布式搜索引擎,Elasticsearch还是一个分布式文档数据库。所以它提供了大量数据的存储功能,快速的搜索与分析功能。
elasticsearch简介
关闭防火墙和selinux
# systemctl stop firewalld
# systemctl disable firewalld
# iptables -F
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
时间同步
# yum -y install ntp
# systemctl restart ntpd
# systemctl enable ntpd
安装jdk环境
yum install java-1.8.0-openjdk* -y
ES单机部署
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.rpm
rpm -ivh elasticsearch-6.5.2.rpm
单机ES的配置与服务启动
cluster.name: elk-cluster 可以自定义一个集群名称,不配置的话默认会取名为elasticsearch
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0 打开注释,并修改为监听所有
http.port: 9200 打开注释,监听端口9200
systemctl start elasticsearch
systemctl enable elasticsearch
[root@test2 ~]# netstat -ntlup |grep java
tcp6 0 0 :::9200 :::* LISTEN 2598/java
tcp6 0 0 :::9300 :::* LISTEN 2598/java
9200则是数据传输端口
9300端口是集群通信端口(我们暂时还没有配置集群,现在是单点elasticsearch)
查看状态
使用curl命令或浏览器访问http://IP:9200/_cluster/health?pretty地址(IP为ES服务器IP)
ES集群部署
集群部署主要注意以下几个方面
- 集群配置参数:
- discovery.zen.ping.unicast.hosts,Elasticsearch默认使用Zen Discovery来做节点发现机制,推荐使用unicast来做通信方式,在该配置项中列举出Master节点。
- discovery.zen.minimum_master_nodes,该参数表示集群中Master节点可工作Master的最小票数,默认值是1。为了提高集群的可用性,避免脑裂现象。官方推荐设置为(N/2)+1,其中N是具有Master资格的节点的数量。
- discovery.zen.ping_timeout,表示节点在发现过程中的等待时间,默认值是30秒,可以根据自身网络环境进行调整,一定程度上提供可用性。
- 集群节点:
- 节点类型主要包括Master节点和data节点(client节点和ingest节点不讨论)。通过设置两个配置项node.master和node.data为true或false来决定将一个节点分配为什么类型的节点。
- 尽量将Master节点和Data节点分开,通常Data节点负载较重,需要考虑单独部署。
- 内存:
- Elasticsearch默认设置的内存是1GB,对于任何一个业务部署来说,这个都太小了。通过指定ES_HEAP_SIZE环境变量,可以修改其堆内存大小,服务进程在启动时候会读取这个变量,并相应的设置堆的大小。建议设置系统内存的一半给Elasticsearch,但是不要超过32GB。
- 硬盘空间:
- Elasticsearch默认将数据存储在/var/lib/elasticsearch路径下,随着数据的增长,一定会出现硬盘空间不够用的情形,大环境建议把分布式存储挂载到/var/lib/elasticsearch目录下以方便扩容。
配置参考文档: https://www.elastic.co/guide/en/elasticsearch/reference/index.html
首先在ES集群所有节点都安装ES(步骤省略)
可以使用两台或两台以上ES做集群, 以下就是两台ES做集群的配置
[root@test1 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v "#"
cluster.name: elk-cluster
node.name: 192.168.100.40 本机IP或主机名
node.master: false 指定不为master节点
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.100.40", "192.168.100.41"] 集群所有节点IP
cluster.name: elk-cluster
node.name:192.168.100.41
node.master: true 指定为master节点
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.100.40", "192.168.100.41"]
查看状态
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77323.html