社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

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

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



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
 
1396 次点击