文章目录
场景
- elasticsearch在生产环境都是集群使用的,
- kibana 提供了elasticsearch的界面化监控
elasticsearch的安装
- 安装java环境
- apt install default-jre
- apt install default-jdk
- wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- sudo apt-get install apt-transport-https
- echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
- sudo apt-get update && sudo apt-get install elasticsearch
- sudo -i service elasticsearch restart
elasticsearch的集群配置
- 在每一台的节点机器上都要进行如下配置, 唯一不同的是节点的名字
cluster.name: wechat-es-cluster #集群的名字
node.name: es-node-1 #节点的名字 每个节点都不一样
node.master: true # 是否有资格成为主节点 我的机器是都可以成为主节点的
node.data: true # 是否可以成为数据节点 (主节点也可以成为数据节点)
path.data: /home/carsonlius/elasticsearch/data // 数据存储路径
path.logs: /home/carsonlius/elasticsearch/logs // 日志存储路径
network.host: 0.0.0.0 # 设置访问的地址和端口, 默认无法公开访问
http.port: 9200 # 设置访问的地址和端口
discovery.zen.ping.unicast.hosts: ["172.17.0.4", "172.17.0.2", "172.17.0.3", "172.17.0.5"] #集群的主机地址
discovery.zen.minimum_master_nodes: 3 # 防止脑裂 通常为 (可成为主节点的主机数目 / 2) + 1
gateway.recover_after_nodes: 3 # 最好3个节点 回应之后集群就可以继续工作
cluster.initial_master_nodes: ["es-node-4", "es-node-3", "es-node-2", "es-node-1"] #通过为 cluster.initial_master_nodes 参数设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群
- 集群的结果
- curl -XGET ‘http://localhost:9200/_cluster/state?pretty’
- curl -XGET ‘http://localhost:9200/_cluster/state?pretty’
elasticsearch集群的工作原理
-
主节点
- 主节点的主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是群集的一部分,并决定哪些分片分配给相关的节点, 默认任何节点都可以成为主节点
-
数据节点
- 数据节点主要是存储索引数据的节点,主要对文档进行增删改查操作,聚合操作等。数据节点对 CPU、内存、IO 要求较高,在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点。
数据节点和主节点不冲突, 有资格成为主节点的节点在平常就是数据节点; 在主节点挂掉之后,他们内部进行选举生成新的主节点; 是否够资格 有node.master控制
-
负载均衡节点
这个暂时不知道怎么用
当一个节点既不配置为主节点,也不配置为数据节点时,该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器
-
预处理节点
没有用过
-
主分片
- 原数据分片
-
副本分片
- 主分片的副本, 这个数量可以自定义, 默认是一个; 当某个节点宕机了,其他节点上的副本分片自动生成成为主分片, 维持数据的完整性
-
索引
- 相当于数据库
-
类型
- 数据表
-
字段
- 字段
安装 kibana
- wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- sudo apt-get install apt-transport-https
- echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
- sudo apt-get update && sudo apt-get install kibana
- 修改server.host:0.0.0.0, 然后可以通过 $ip:5601 访问
- sudo -i service kibana start
- 运行图