Elastic ECE平台的离线安装流程
引言
Elastic Cloud 企业版 (ECE) 能够简化 Elastic Stack 资产的管理,让用户通过集中方式轻松地配置、管理和监测多个 Elastic Stack 部署并调整其规模,以便公司/组织从单一位置便能控制所有部署。
ECE 2.0 的部分新功能和优势包括:
• 部署控制和优化 - 全新的主机标记和标记筛选功能可帮助用户控制部署与其底层硬件之间的映射方式,从而优化性能并降低成本
• 模板化的基础架构和配置 - ECE 针对常用的基础架构模式提供全新的实例配置和部署模板,以简化和控制集群的构建和配置方式
• 冷热节点部署模板 - ECE 的冷热节点部署模板和自动化索引管理功能可让您轻松部署冷热节点集群并相应调整规模,此类集群是适用于诸如日志和指标等时序用例的常见拓扑结构
• 异常检测和预测 - ECE 现在配有全新的专用 Machine Learning 节点,方便用户轻松地向 Elasticsearch 集群添加异常检测和预测功能
• SAML 安全身份验证 - 用户如今可以选择使用其首选的 SAML 身份提供商,通过 SAML 身份验证来确保通过 ECE 所推出的 Elasticsearch 集群的安全性
图1 Elastic ECE角色分配示意图
准备条件
机器:3台虚机(8C/32G),作为ECE管理服务节点,包括 directors、coordinators和proxy等服务;6台物理机(24C/256G),作为allocator角色节点。
搭建具有3个高可用区的中等规模的ECE平台,至少需要6台机器,其中3台为ECE管理节点,其他机器作为allocator角色,运行Elasticsearch/Kibana实例,如图1所示。另外,还需要一台连接外网,并且安装了docker的机器,用于联网拉取docker的ECE相关镜像。
系统:Red Hat Enterprise Linux Server release 7.5
Docker:1.13
User: elastic,要求user在docker和sudo的用户组,且UID/GID必须大于1000,不能以root用户直接安装。
Docker镜像:
- Elastic Cloud Enterprise 2.0.1
- Elastic Cloud Enterprise 2.0.1
- Elasticsearch 6.5.1-0 and Kibana 6.5.1-0
- Elasticsearch 5.6.13-0 and Kibana 5.6.13-0
一、安装docker 1.13并创建私有Docker Registry
1、root登录第1台主机,打开httpd服务
# systemctl start httpd
# systemctl enable httpd
2、root登录第1台主机,离线安装docker 1.13,安装完成后,执行docker info查看。如果没问题,将所需的所有依赖包,打包放到/var/www/html/,自建docker yum源。
# cd /var/www/html/
# mkdir docker_1.13
# 将所有依赖包放到docker_1.13目录下
# createrepo docker_1.13
3、重点,必须在一台能够连接外网的机器上,拉取docker镜像并上传到第1台主机上
(1) 联网拉取镜像
docker pull docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:2.0.1
docker pull docker.elastic.co/cloud-assets/elasticsearch:6.5.1-0
docker pull docker.elastic.co/cloud-assets/kibana:6.5.1-0
docker pull docker.elastic.co/cloud-assets/elasticsearch:5.6.13-0
docker pull docker.elastic.co/cloud-assets/kibana:5.6.13-0
(2) 保存镜像为.tar文件
docker save -o ece.2.0.1.tar docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:2.0.1
docker save -o es.6.5.1-0.tar docker.elastic.co/cloud-assets/elasticsearch:6.5.1-0
docker save -o kibana.6.5.1-0.tar docker.elastic.co/cloud-assets/kibana:6.5.1-0
docker save -o es.5.6.13-0.tar docker.elastic.co/cloud-assets/elasticsearch:5.6.13-0
docker save -o kibana.5.6.13-0.tar docker.elastic.co/cloud-assets/kibana:5.6.13-0
(3) 将.tar文件,上传到第1台主机上
(4) root登录第1台主机,load镜像到docker中
docker load < FILE_PATH/ece.2.0.1.tar
docker load < FILE_PATH/es.6.5.1-0.tar
docker load < FILE_PATH/kibana.6.5.1-0.tar
docker load < FILE_PATH/es.5.6.13-0.tar
docker load < FILE_PATH/kibana.5.6.13-0.tar
需要注意的是,需要registry的镜像,用于搭建私有Docker Registry
docker load < FILE_PATH/registry.tar
4、创建私有的Docker registry
创建私有的Docker仓库非常简单,只需要运行一个Registry容器即可。
# docker run -d -p 5000:5000 -v /opt/app/registry/:/var/lib/registry registry
-d 是后台启动容器。
-p 将容器的5000端口映射到 Host 的 5000 端口。5000是 registry 服务端口。
-v 将容器 /var/lib/registry目录映射到宿主机的/opt/app/registry,用于存放镜像数据。
5、打标签,并将ECE镜像push到私有Docker registry
(1) 打标签,与本地私有registry匹配
docker tag docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:2.0.1 REGISTRY/cloud-enterprise/elastic-cloud-enterprise:2.0.1
docker tag docker.elastic.co/cloud-assets/elasticsearch:6.5.1-0 REGISTRY/cloud-assets/elasticsearch:6.5.1-0
docker tag docker.elastic.co/cloud-assets/kibana:6.5.1-0 REGISTRY/cloud-assets/kibana:6.5.1-0
docker tag docker.elastic.co/cloud-assets/elasticsearch:5.6.13-0 REGISTRY/cloud-assets/elasticsearch:5.6.13-0
docker tag docker.elastic.co/cloud-assets/kibana:5.6.13-0 REGISTRY/cloud-assets/kibana:5.6.13-0
(2) Push到私有Docker registry
docker push REGISTRY/cloud-enterprise/elastic-cloud-enterprise:2.0.1
docker push REGISTRY/cloud-assets/elasticsearch:6.5.1-0
docker push REGISTRY/cloud-assets/kibana:6.5.1-0
docker push REGISTRY/cloud-assets/elasticsearch:5.6.13-0
docker push REGISTRY/cloud-assets/kibana:5.6.13-0
注意:其中REGISTRY为第1台主机ip:5000
(3) 查看Registry中所有镜像信息
curl http://<ip>:5000/v2/_catalog
此语句会返回一个json,包含当前Registry中存储的镜像信息。
6、root登录每一台机器,配置docker yum源,安装docker,并配置docker 私有registry
# vim /etc/yum.repos.d/yum.repo
[DOCKER]
name=DOCKER
baseurl=http://ip/docker_1.13/
enabled=1
gpgcheck=0
# yum install docker -y
# vim /etc/docker/daemon.json
添加如下内容:
{
"bip": "docker_ip/24","insecure-registries": ["第1台主机ip:5000"]
}
# systemctl start docker
# systemctl enable docker
二、添加用户组,修改系统参数
1、root登录每一台主机,为elastic添加sudo权限,并加入docker组
(1) 新建用户elastic,并加到elastic组中,并保证elastic的UID/GID大于1000
# useradd elastic
# groupadd -g 1201 elastic
# usermod -aG elastic elastic
# id -ru
# id -rg
(2) 添加sudo权限
#vim /etc/sudoers
添加 elastic ALL=(ALL) NOPASSWD:ALL
(3) 把elastic加到docker用户组
# groupadd -g 1001 docker
# usermod -aG dockerroot elastic
# usermod -aG docker elastic
# cat /etc/group|grep elastic
# systemctl restart docker
# chmod a+rw /var/run/docker.sock
# docker images
2、修改系统vm.max_map_count参数,要求>=262144
# sysctl -w vm.max_map_count=262144
# sysctl -a|grep vm.max_map_count
# vim /etc/sysctl.conf
添加vm.max_map_count=262144,永久修改
三、安装ECE平台
1、elastic用户登录每一台主机,新建目录
# sudo mkdir /mnt/data
# sudo chown elastic:elastic /mnt/data
# 下载elastic-cloud-enterprise.sh安装脚本文件,并上传到每一台主机的home目录下
# curl -L -O https://download.elastic.co/cloud/elastic-cloud-enterprise.sh
2、elastic用户登录第1台主机,其中REGISTRY为第1台主机ip:5000
# bash elastic-cloud-enterprise.sh install --docker-registry 第1台主机ip:5000 --availability-zonea MY_ZONE-1 --memory-settings '{"runner":{"xms":"1G","xmx":"1G"},"proxy":{"xms":"8G","xmx":"8G"},"zookeeper":{"xms":"4G","xmx":"4G"},"director":{"xms":"1G","xmx":"1G"},"constructor":{"xms":"4G","xmx":"4G"},"admin-console":{"xms":"4G","xmx":"4G"}}'
第1台主机作为第一个高可用分区的管理节点,包含所有角色信息,以方便进行后续安装,但在最后的安装步骤中,需要删除allocator角色。安装完成后,保存以下输出信息: admin:password;coordinator host IP address;user credentials and roles token 信息等。
3、elastic用户登录第1台主机,enable director, coordinator and proxy runner roles,并记录下新的token信息:
#curl -k -H 'Content-Type: application/json' -u admin:PASSWORD https://localhost:12443/api/v1/platform/configuration/security/enrollment-tokens -d '{ "persistent": false, "roles": ["director", "coordinator", "proxy"] }'
4、在第2、第3台主机上,以elastic用户登录,安装ECE,并分配director,coordinator和proxy角色。使用第2步生成的coordinator ip和第3步生成的token信息。
# bash elastic-cloud-enterprise.sh install --docker-registry 第1台主机ip:5000 --coordinator-host HOST_IP --roles-token 'MY_TOKEN' --roles "director,coordinator,proxy" --availability-zone MY_ZONE-2 --memory-settings '{"runner":{"xms":"1G","xmx":"1G"},"proxy":{"xms":"8G","xmx":"8G"},"zookeeper":{"xms":"4G","xmx":"4G"},"director":{"xms":"1G","xmx":"1G"},"constructor":{"xms":"4G","xmx":"4G"},"admin-console":{"xms":"4G","xmx":"4G"}}'
# bash elastic-cloud-enterprise.sh install --docker-registry 第1台主机ip:5000 --coordinator-host HOST_IP --roles-token 'MY_TOKEN' --roles "director,coordinator,proxy" --availability-zone MY_ZONE-3 --memory-settings '{"runner":{"xms":"1G","xmx":"1G"},"proxy":{"xms":"8G","xmx":"8G"},"zookeeper":{"xms":"4G","xmx":"4G"},"director":{"xms":"1G","xmx":"1G"},"constructor":{"xms":"4G","xmx":"4G"},"admin-console":{"xms":"4G","xmx":"4G"}}'
5、在剩下的6台物理机上,安装ECE,并分配allocator角色,依次执行以下命令,平均分配到三个可用区内,使用第2步生成的coordinator ip和 allocator roles token信息
# bash elastic-cloud-enterprise.sh install --docker-registry 第1台主机ip:5000 --coordinator-host HOST_IP --roles-token 'ALLOCATOR_TOKEN' --roles "allocator" --availability-zone MY_ZONE-1 --memory-settings '{"runner":{"xms":"1G","xmx":"1G"},"allocator":{"xms":"4G","xmx":"4G"}}'
# bash elastic-cloud-enterprise.sh install --docker-registry 第1台主机ip:5000 --coordinator-host HOST_IP --roles-token 'ALLOCATOR_TOKEN' --roles "allocator" --availability-zone MY_ZONE-2 --memory-settings '{"runner":{"xms":"1G","xmx":"1G"},"allocator":{"xms":"4G","xmx":"4G"}}'
# bash elastic-cloud-enterprise.sh install --docker-registry 第1台主机ip:5000 --coordinator-host HOST_IP --roles-token 'ALLOCATOR_TOKEN' --roles "allocator" --availability-zone MY_ZONE-3 --memory-settings '{"runner":{"xms":"1G","xmx":"1G"},"allocator":{"xms":"4G","xmx":"4G"}}'
6、登录Cloud UI,移除第1台主机的allocator角色。
(1) 利用第2步生成的admin:password,登录https://第1台主机ip:12443

(2) 打开第1台主机allocator的维护模式,并移除elasticsearch/kibana实例
Platform -> Allocators -> 第1台主机ip -> Enable maintenance mode -> Move nodes -> 依次选中elasticsearch/kibana实例,依次删除

(3) 到此,三台虚机,也即前3台机器,作为ECE3个高可用区的的管理节点,包含coordinator, director 和 proxy 角色,后6台物理机分配allocator角色,运行elasticsearch/kibana实例,并均匀分布在3个高可用区,安装完成。
(4) 创建deploment部署,elastic用户登录deploment的kibana

参考文献:
https://www.elastic.co/guide/en/cloud-enterprise/current/index.html
https://www.elastic.co/guide/en/cloud-enterprise/current/ece-installing-offline.html
https://www.elastic.co/guide/en/cloud-enterprise/current/ece-playbook.html
浙公网安备 33010602011771号