集群健康状态表示:
green/yellow/red 状态是一个概览你的集群状态的直观办法
green:所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
yellow:所有的主分片已经分片了,但至少还有一个副本是缺失的。
不会有数据丢失,所以搜索结果依然是完整的。不过,你的高可用性在某种程度上被弱化。
如果 更多的 分片消失,你就会丢数据了。把 yellow 想象成一个需要及时调查的警告。
red:至少一个主分片(以及它的全部副本)都在缺失中。这意味着你在缺少数据:
搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。
实验环境
主机:server154 ip:192.168.121.154 角色:node154
主机:server155 ip:192.168.121.155 角色:node155
主机:server157 ip:192.168.121.157 角色:node157
下载好源码包以后 其它不多介绍了
直接开始实验
首先三台机器都要有jdk环境
然后都下载elasticsearch安装包
rpm -ivh elasticsearch-6.8.22.rpm
三台都要这样配置
# vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
* hard memlock unlimited
* soft memlock unlimited
# vim /etc/sysctl.conf
vm.max_map_count = 262144
net.core.somaxconn = 65535
net.ipv4.ip_forward = 1
vm.swappiness = 0
都加载一下配置
sysctl -p
给每个节点都创建一个elast用户
useradd elast
然后到各台机子的配置文件配置
154机器的配置
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk
node.name: node154
#机柜 差异
#node.attr.rack: r1
#
path.data: /usr/share/elasticsearch/data/elasticsearch
path.logs: /usr/share/elasticsearch/logs/elasticsearch
bootstrap.memory_lock: true
#
network.host: 192.168.121.154
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.121.154", "192.168.121.155","192.168.121.157"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
155机子的配置
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk
node.name: node155
#机柜 差异
#node.attr.rack: r1
#
path.data: /usr/share/elasticsearch/data/elasticsearch
path.logs: /usr/share/elasticsearch/logs/elasticsearch
bootstrap.memory_lock: true
#
network.host: 192.168.121.155
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.121.154", "192.168.121.155","192.168.121.157"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
157机子的配置
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk
node.name: node157
#机柜 差异
#node.attr.rack: r1
#
path.data: /usr/share/elasticsearch/data/elasticsearch
path.logs: /usr/share/elasticsearch/logs/elasticsearch
bootstrap.memory_lock: true
#
network.host: 192.168.121.157
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.121.154", "192.168.121.155","192.168.121.157"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
然后每台创建日志文件存放目录
mkdir /usr/share/elasticsearch/data
mkdir /usr/share/elasticsearch/logs
每台都更改目录的所属用户
chown -R elast:elast /etc/elasticsearch
chown -R elast:elast /usr/share/elasticsearch
chown elast:elast /etc/sysconfig/elasticsearch
然后三台机子都切换到elast用户下,然后运行elasticsearch
记得一定要切换用户,root用户启动会被拒绝的
su - elast
/usr/share/elasticsearch/bin/elasticsearch
也可以运行到后台 我这里是为了看启动信息而已
随便访问其中一台,154,155,157都可以
[root@server154 ~]# curl 192.168.121.154:9200/_cluster/health?pretty
{
"cluster_name" : "elk",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 10,
"active_shards" : 20,
"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.0
}
能看到这样的结果就是集群运行起来了,三个节点
感兴趣的可以用kibana或者elasticsearch-header插件安装
来查看信息
这是我之前的实验用到的,所以下载过,而且我的其它博文也有介绍kibana的安装,用那个也是可以的,日志数据采取的话可以用filebeat,那个是轻量级的,用来测试比较方便
效果就是这样 可以看到我们的集群安装成功了