Py学习  »  Elasticsearch

快速搭建容器化Elasticsearch集群环境

云技术 • 5 年前 • 1658 次点击  
请点击上方“云技术” 添加订阅!



01

前言


1.1 目标

随着云原生技术的蓬勃发展,为各种分布式集群环境的实施提供了非常便利的条件。

Elastic Stack是一种非常优秀的分布式搜索解决方案,但是由于其组件较多且有很多配置,因此在搭建集群时存在一定难度。这里我们提供一种基于docker容器化的部署方案,实现集群的一键快速部署。


该方案也可以用于其他分布式集群的搭建,同时该环境具有搭建快速、易于恢复的特点。


1.2 硬件

CPU:没有具体要求

内存:8GB+

硬盘:20GB+

网络:能够连接到互联网


1.3 软件

Windows 7/10(搭建Ubuntu-20.04 虚拟机)

VMware workstation(搭建Ubuntu-20.04 虚拟机)

Docker(搭建ES集群)

Docker-compose(搭建ES集群)

Elasticsearch

Kibana

APM server/client

beats


1.4 搭建步骤

1、 利用VMware搭建一个Ubuntu 20.04虚拟机作为宿主机

2、 利用docker-compose快速搭建ES集群


1.5 适用人群

所有需要学习、使用分布式集群技术的人员

本环境非生产环境,仅用于开发、测试用途



02

集群搭建



2.1 搭建VMware虚拟机


2.1.1. VMware软件的安装

互联网上有很多相关教程,这里就不再赘述。


2.1.2. 设置虚拟机NAT网络

编辑->虚拟网络编辑器


2.1.3. 新建虚拟机

Ubuntu ISO下载地址:

https://ubuntu.com/download/desktop

我使用的是ubuntu-20.04-desktop-amd64.iso 


2.1.4.  安装基本软件及设置:

进入Xwindow,打开terminal,设置Vmware虚拟机网络地址

vi /etc/netplan/01-network-manager-all.yaml

# Let NetworkManager manage all devices on this system

network:

  version: 2

  ethernets:

       ens32:

           addresses: [192.168.42.101/24]

           gateway4: 192.168.42.2

           nameservers:

             addresses: [192.168.42.2]

netplan apply

ip a s

设置华为apt安装源

sudo sed -i ‘s/us.archive.ubuntu.com/mirrors.huaweicloud.com\/repository/g’ /etc/apt/sources.list

sudo apt update

sudo apt -y install openssh-server

 

使用终端工具连接Ubuntu虚拟机,并安装必要软件

sudo apt -y install net-tools git docker.io docker-compose curl ntpdate

 

设置本地时区:

sudo timedatectl set-timezone Asia/Shanghai

sudo hwclock --systohc

sudo ntpdate cn.pool.ntp.org


将当前用户加入docker用户组,使当前用户可以正常执行docker命令(当前用户为zhanyl)

sudo gpasswd -a zhanyl docker


退出当前用户,重新登录

检查docker版本:

docker version


检查docker-compose版本:

docker-compose version


2.2. 搭建ES集群


该集群拥有两个ES节点、一个kibana节点、一个APM server节点、一个APM client节点、一个filebeat节点、一个metricbeat节点、一个heartbeat节点、一个packetbeat节点


git clone https://github.com/zhan-yl/esindocker.git

cd esindocker


在.env中进行版本及口令的设置,可根据需要进行设置:

cat .env


修改核心参数:

echo "vm.max_map_count = 262144 " | sudo tee -a /etc/sysctl.conf

sudo sysctl -w vm.max_map_count=262144

sudo sysctl -a | grep max_map_count


由于集群搭建过程中需要下载多种docker image,比较耗时,因此可以事先下载:

docker-compose pull


启动集群:

docker-compose up -d


检查运行状态:

watch docker-compose ps


第一次启动集群需要设置ES密码,口令设置与用户名相同:

docker-compose exec es01 bin/elasticsearch-setup-passwords interactive


再次检查集群状态:

watch docker-compose ps


检查ES集群状态:

curl -uelastic:elastic localhost:9200


curl -uelastic:elastic localhost:9200/_cluster/health?pretty


关闭集群:

docker-compose down



03

基本使用



04

附录


4.1.  参考文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html


 

詹玉林

中国民生银行信息科技部开源软件支持组工程师。曾经担任过银行核心系统开发工程师,IBM informix数据库L2支持工程师,民生银行数据库DBA等角色。目前主要负责与elasticsearch相关的大数据方面的工作。


本文转载自公众号:民生运维人点击查看原文


↓↓ 点击"阅读原文" 【加入云技术社区】

相关阅读:

快速搭建Kubernetes集群环境

ES千万级TPS写入性能翻倍,400台物理机因此下线

最新最全 2020 云状态报告「69页PDF下载」

RightScale 2019年云状况调查报告:35% 的云支出被浪费「附50页PDF下载」

更多文章请关注


文章好看点这里[在看]👇

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/75114