炼数成金 门户 大数据 运维 查看内容

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

2020-11-11 16:49| 发布者: 炼数成金_小数| 查看: 12968| 评论: 0|原作者: 民生运维|来自: 民生运维人

摘要: 随着云原生技术的蓬勃发展,为各种分布式集群环境的实施提供了非常便利的条件。Elastic Stack是一种非常优秀的分布式搜索解决方案,但是由于其组件较多且有很多配置,因此在搭建集群时存在一定难度。这里我们提供一 ...
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相关的大数据方面的工作。

声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!

欢迎加入本站公开兴趣群
软件开发技术群
兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流
QQ群:26931708

Hadoop源代码研究群
兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop
QQ群:288410967 

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2020-12-3 06:07 , Processed in 0.097299 second(s), 25 queries .