Ubuntu 20.04 搭建 Elasticsearch 7.x 小集群(qbit)
环境
- ES 节点硬件:3 台 AWS m5.4xlarge(16 vCPU/64GB 内存)
- Kibana 硬件:1 台 AWS m5.large(2 vCPU/8GB 内存)
- 操作系统:Ubuntu 20.04 LTS
- Elasticsearch 7.9.3
- Kibana 7.9.3
机器示意图
操作系统
- 这里主要讲 EBS 的挂载和 XFS 格式化
- 可参考官方文档: https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ebs-using-v...
- 用
lsblk
命令查看磁盘概况:32G 系统盘/300G 数据盘,数据盘尚未挂载 检查卷上是否有文件系统
$ sudo file -s /dev/nvme1n1 /dev/nvme1n1: data # 显示为 data 即为无文件系统
创建
xfs
文件系统$ sudo mkfs -t xfs /dev/nvme1n1 # 强制格式化 $ sudo mkfs.xfs -f /dev/nvme0n1
再次查看磁盘
$ sudo file -s /dev/nvme1n1 /dev/nvme1n1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
创建 /data 目录
sudo mkdir /data
将新目录挂载到新卷上
sudo mount /dev/nvme1n1 /data
- 再次用
lsblk
命令查看磁盘概况 - 使用
lsblk -f
命令查看磁盘UUID
编辑
/etc/fstab
,添加以下条目UUID=dc1eecfc-0295-44ad-97fe-d55893312f68 /data xfs defaults,nofail 0 2
重新挂载
/data
,以确认/etc/fstab
是否正确配置sudo umount /data sudo mount -a
重启检查
sudo init 6
文件准备
- Elasticsearch、Kibana:https://www.elastic.co/cn/downloads/past-releases
- IK 插件: https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.9.3
Elasticsearch
安装
- 官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/d...
文件检查
$ shasum -a 512 -c elasticsearch-7.9.3-amd64.deb.sha512 elasticsearch-7.9.3-amd64.deb: OK
安装
sudo dpkg -i elasticsearch-7.9.3-amd64.deb
设置开机启动
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service
通用设置
- 通用设置对 node-1/node-2/node-3 三个节点同时适用
设置 elasticsearch 可打开的最大文件数
# 修改 systemctl 编辑器:update-alternatives --config editor sudo systemctl edit elasticsearch
添加如下内容(
/etc/systemd/system/elasticsearch.service.d/override.conf
)[Service] LimitMEMLOCK=infinity
重载
sudo systemctl daemon-reload
- 禁用交换文件:编辑
/etc/fstab
,注释掉所有含swap
的行 - 虚拟内存(Virtual memory)
vm.max_map_count
在 Ubuntu 20.04 上用deb
包安装时已自动配置,无需更多设置 - 线程数量(Number of threads,
ulimit
)在systemd
上无需单独设置 设置
jvm
堆大小(/etc/elasticsearch/jvm.options)-Xms30g -Xmx30g
创建目录并更改所有者
sudo mkdir -p /data/elasticsearch/data /data/elasticsearch/log sudo chown -R elasticsearch:elasticsearch /data/elasticsearch
编辑
/etc/elasticsearch/elasticsearch.yml
文件# 添加或修改 cluster.name: esapi path.data: /data/elasticsearch/data path.logs: /data/elasticsearch/log http.port: 9200 discovery.seed_hosts: ["172.31.0.1", "172.31.0.2", "172.31.0.3"] cluster.initial_master_nodes: ["node01", "node02", "node03"] node.roles: [master, data, ingest]
个性化设置
node01 编辑
/etc/elasticsearch/elasticsearch.yml
文件# 添加或修改 node.name: node01 network.host: 172.31.0.1
node02 编辑
/etc/elasticsearch/elasticsearch.yml
文件# 添加或修改 node.name: node02 network.host: 172.31.0.2
node03 编辑
/etc/elasticsearch/elasticsearch.yml
文件# 添加或修改 node.name: node03 network.host: 172.31.0.3
组网问题
- ES node 之间通信的端口是 9300,记得防火墙要放行
一直报下面的错误找了很多原因,最后发现是 AWS AMI 镜像模板把 data 服务也复制了一份,把 data 目录清空重启就好了。
{ "error" : { "root_cause" : [ { "type" : "master_not_discovered_exception", "reason" : null } ], "type" : "master_not_discovered_exception", "reason" : null }, "status" : 503 }
查看组网成功的节点
$ curl http://172.31.8.192:9200/_cat/nodes 172.31.0.2 0 53 0 0.00 0.15 0.34 dilmrt - node02 172.31.0.3 1 52 0 0.00 0.16 0.30 dilmrt - node03 172.31.0.1 1 52 0 0.08 0.25 0.32 dilmrt * node01
插件安装
安装官方插件
/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
安装本地插件
/usr/share/elasticsearch/bin/elasticsearch-plugin install file:///home/ubuntu/es_down/elasticsearch-analysis-ik-7.9.3.zip
插件安装了哪些插件
# /usr/share/elasticsearch/bin/elasticsearch-plugin list analysis-hao analysis-ik analysis-stconvert
查找安装主目录
settings.path.home
,插件目录一般在安装主目录/plugins
curl 127.0.0.1:9200/_nodes/settings?pretty=true
- Elasticsearch 自身和插件配置文件一般都在
/etc/elasticsearch
目录下
IK 分词器
- 添加同义词
- 添加远程词典
Kibana
安装
- 官方文档:https://www.elastic.co/guide/en/kibana/7.9/deb.html#install-deb
文件检查
$ shasum -a 512 -c kibana-7.9.3-amd64.deb.sha512 kibana-7.9.3-amd64.deb: OK
安装
sudo dpkg -i kibana-7.9.3-amd64.deb
设置开机启动
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable kibana.service
设置
编辑
/etc/kibana/kibana.yml
文件# 添加或修改 server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://172.31.0.1:9200", "http://172.31.0.2:9200", "http://172.31.0.3:9200"]
本文出自 qbit snap
qbit snap
开箱即用,拿走不谢。
262 声望
276 粉丝
推荐阅读
Postman 发送 RSA 签名请求(qbit)
前言Postman 版本 10.13.6qbit 将 RSAForPostman 压缩拷贝到了码云便于国内访问Postman 脚本示例Pre-request Script {代码...} Postman 内置库官方文档:[链接] {代码...} 本文出自 qbit snap
qbit阅读 143
git/pip/easy_install/apt代理/源设置
在公司内网环境中,访问公网往往需要经过公司的代理,对于浏览器、IDE等开发工具,都提供了设置代理的配置,而git、pip、easy_install等CLI工具,则需要通过命令或配置文件进行代理设置;对于Python、Ubuntu、Mav...
乘着风赞 1阅读 5.5k
Laravel入门及实践,快速上手ThinkSNS+二次开发
【摘要】自从ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都说技术门槛抬高了,其实你与TS+的距离仅仅只是学习一个新框架而已,所以,我们今天来说说Laravel的入门。
ThinkSNS赞 1阅读 2.4k
confluence7.2.1的部署与迁移---呕心沥血版
Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。 到官网下载最新版本,截止目前...
暗涌阅读 7.8k
C++编译器和链接器的完全指南
C++是一种强类型语言,它的编译和链接是程序开发过程中不可或缺的两个环节。编译器和链接器是两个非常重要的概念。本文将详细介绍C++中的编译器和链接器以及它们的工作原理和使用方法。
小万哥赞 2阅读 1k
Ubuntu 20.04 读写 Windows 10 共享目录(qbit)
本文实验环境中,Windows 操作系统版本为 Windows Server 2016,应该对 Windows 10 和 Windows Server 2019 同样适用
qbit赞 1阅读 6.3k
elasticsearch(2)- DQL 用法
Query DSL:ElasticSearch提供了一个可以执行的JSON风格的DSL(domain-specific language 领域特定语言),这个被称为Query DSL。
KerryWu赞 1阅读 1.2k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。