From 817cb68463fa9c0e84da7500e949705af636a0a4 Mon Sep 17 00:00:00 2001 From: Vchanger Date: Wed, 17 May 2023 18:54:22 +0800 Subject: [PATCH] Refactor doc and adding support of aarch64 for deploy tool --- README.md | 205 +++++++++++++++++++++++++++++++- deploy/README.en.md | 36 ------ deploy/README.md | 207 --------------------------------- deploy/deploy.sh | 45 +++---- deploy/download_offline_res.sh | 43 +++---- 5 files changed, 250 insertions(+), 286 deletions(-) delete mode 100644 deploy/README.en.md delete mode 100644 deploy/README.md diff --git a/README.md b/README.md index ab5cbfd..b86bac9 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,210 @@ gala-ops还依赖一些开源软件,包括kafka、arangodb、prometheus等。 ## gala-ops系统安装 -Gala提供了集成式部署工具Gala-Deploy-Tools以便用户快速部署gala-ops组件以及其依赖的中间件,并且同时支持离线部署与在线部署方式。部署工具的约束限制与具体部署指导参见[Gala-Deploy-Tools部署工具手册](./deploy#gala-deploy-tools)。 +Gala提供了集成式部署工具[Gala-Deploy-Tools](./deploy)以便用户快速部署gala-gopher、gala-ops(gala-spider/gala-inference/gala-anteater)组件、kafka/prometheus/arangodb/es/logstash/pyroscope中间件、grafana前端页面展示相关组件,并同时支持离线/在线部署两种模式。 + +### 约束限制 + +1. 当前本工具仅支持如下OS版本:openEuler 20.03 LTS SP1、openEuler 22.03 LTS、openEuler 22.03 LTS SP1、Kylin V10(x86) +2. 在线部署模式下,本工具运行过程中会从openEuler repo源安装rpm或者从外网下载源码资源,因此内网环境在使用工具前需要提前配置好代理,便于访问外网环境,工具使用结束后建议将代理取消。 +3. 在线部署模式下,gala-gopher、gala-ops组件支持rpm包部署以及容器部署两种方式,其中gala-ops组件的rpm包部署方式仅支持openEuler 22.03 LTS SP1 版本。 +4. 离线部署模式下,gala-gopher会以rpm包的方式安装部署,gala-ops组件会以容器方式安装部署。 + +### 环境准备说明 + +准备至少两台符合OS版本与架构要求(见约束限制1)的机器(物理机、虚拟机均可)并保证机器间网络可以正常连通(在线部署模式下需要连接外网)。 + +- 机器A:**生产节点**,即需要监控运维的目标节点,上面一般运行着业务进程(如数据库、redis、Java应用),用于部署观测组件gala-gopher。 + + ***注:如果有多台生产节点,则每个节点都需要部署gala-gopher*** + + + +- 机器B:**管理节点**,用于部署kafka等中间件以及gala的异常检测、根因定位组件。这些组件的部署相对灵活,可以准备多台管理节点分开部署,只要节点之间网络通即可。 + + ***注:管理节点的机器规格建议至少为8U8G*** + + + +### 离线部署 + +gala组件的运行依赖各个中间件,因此建议按照如下顺序(中间件->gala-gopher/gala-ops->grafana)进行安装部署。 + +#### 管理节点:部署中间件 + +当前涉及的中间件包括kafka、prometheus、arangodb、elasticsearch/logstash、pyroscope共6个组件,其中elasticsearch和logstash存在依赖关系,需要绑定部署。 + +1. 离线安装包下载 + +离线部署前,需要在可连接外网的机器上下载6个中间件的安装包。本工具提供了[离线资源下载脚本](./deploy/download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源的下载,下载内容会存放在当前目录的子目录gala_deploy_middleware下。 + +```xml +sh download_offline_res.sh middleware +``` + +*注:由于kafka运行依赖java,因此下载kafka安装包时也会同时下载java-1.8.0-openjdk及其依赖包;arangodb组件需要下载容器镜像tar包,因此下载机器上需要安装docker组件。* + +2. 工具一键部署 + +将gala_deploy_middleware下的所有文件和[部署脚本](./deploy/deploy.sh)上传到目标管理节点机器上,执行如下命令安装、配置、启动kafka/prometheus/elasticsearch/logstash/arangodb/pyroscope服务,**-K/-P/-E/-A/-p选项支持分开使用单独部署对应组件**,-S选项来指定离线安装包所在的目录。 + +```css +sh deploy.sh middleware -K <部署节点管理IP> -P -E <部署节点管理IP> -A -p -S <中间件安装包所在目录> +``` + +选项详细说明 + +| 选项 | 参数说明 | 是否必配 | +| :--------------: | :----------------------------------------------------------: | :----------------------------------: | +| -K\|--kafka | 使用该选项用于部署kafka服务器,并配置指定的监听IP地址(一般来说是当前节点的管理IP)。当不使用该选项时,不部署kafka服务 | 需要部署kafka服务时为必 | +| -P\|--prometheus | 使用该选项用于部署prometheus服务器,并配置指定的抓取消息来源(即部署gala-gopher的生产节点)地址列表,每个地址之间用英文逗号分隔,地址后可以跟随“:端口号”来指定抓取端口,当不指定时,使用默认端口8888;地址前可以加上”主机名-“来标识该地址。
例如:-P 192.168.0.1,192.168.0.2:18001,vm01-192.168.0.3:18002。当不使用该选项时,不部署prometheus服务 | 需要部署prometheus服务器时为必配 | +| -A\|--arangodb | 使用该选项用于部署并启动arangodb数据库服务,该服务默认监听全IP,因此无需指定监听IP。 | 需要部署arangodb时为必配 | +| -p\|--pyroscope | 使用该选项用于部署并启动pyroscope服务,该服务默认监听全IP,因此无需指定监听IP。 | 需要部署pyroscope服务端时必配 | +| -E\|--elastic | 使用该选项用于部署elasticsearch、logstash服务,并指定logstash读取消息的elasticsearch服务器地址(一般来说是当前节点的管理IP)。当不使用该选项时,不部署elaticsearch服务 | 需要部署elasticsearch/logstash为必配 | +| -S\|--srcdir | 离线部署时使用该选项来指定离线安装包所在的目录 | 离线部署时必配 | + +#### 生产节点:部署gala-gopher + +1. 对应版本gala-gopher及依赖包下载 + +离线部署前,需要在可连接外网的机器上下载对应版本的gala-gopher包以及其依赖的rpm包。本工具提供了[离线资源下载脚本](./deploy/download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源下载,下载内容会存放在当前目录的子目录gala_deploy_gopher下。 + +```xml +sh download_offline_res.sh gopher +``` + +2. 工具一键部署 + +将gala_deploy_gopher目录下的所有文件和[部署脚本](./deploy/deploy.sh)上传到目标生产节点机器上,执行如下命令安装、配置、启动gala-gopher服务,-S选项来指定离线安装包所在的目录。 + +```xml +sh deploy.sh gopher -K -p -S <离线安装包所在目录> +``` + +选项详细说明: + +| 选项 | 参数说明 | 是否必配 | +| :-------------: | :----------------------------------------------------------: | :------------: | +| -K\|--kafka | 指定gala-gopher上报采集数据的目标kakfa服务器地址,当不配置该选项时,kafka服务器地址使用localhost | 否 | +| -p\|--pyroscope | 指定gala-gopher开启火焰图功能后火焰图上传到的pyroscope服务器地址(用于对接前端界面显示),当不配置该选项时,pyroscope服务器地址使用localhost | 否 | +| -S\|--srcdir | 离线部署时使用该选项来指定gala-gopher以及其依赖包所在的目录 | 离线部署时必配 | + +#### 管理节点:部署gala-ops + +1. gala-ops容器镜像下载 + +离线部署前,需要在可连接外网的机器上下载gala-ops(gala-anteater/gala-spider/gala-inference)容器镜像tar包。本工具提供了[离线资源下载脚本](./deploy/download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源下载,下载内容会存放在当前目录的子目录gala_deploy_ops下。 + +```xml +sh download_offline_res.sh ops +``` + +2. 工具一键部署 + +将gala_deploy_ops目录下的所有文件和[部署脚本](./deploy/deploy.sh)上传到目标管理节点机器上,执行如下命令安装、配置、启动gala-ops服务,-S选项来指定容器镜像tar包所在的目录。 + +```shell +sh deploy.sh ops -K -P -A -S +``` + +选项详细说明: + +| 选项 | 参数说明 | 是否必配 | +| :--------------: | :----------------------------------------------------------: | :------------: | +| -K\|--kafka | 指定gala-ops读取消息的kakfa服务器地址,当不配置该选项时,kafka服务器地址使用localhost | 否 | +| -P\|--prometheus | 指定gala-ops读取消息的prometheus服务器地址,当不配置该选项时,prometheus服务器地址使用localhost | 否 | +| -A\|--arangodb | 指定gala-ops存储关系图数据的的arangodb服务器地址,当不配置该选项时,arangodb服务器地址使用localhost | 否 | +| -S\|--srcdir | 离线部署时使用该选项来指定gala-ops容器镜像tar包所在的目录 | 离线部署时必配 | + +#### 管理节点:部署grafana + +1. grafana容器镜像与依赖python库下载 + +离线部署前,需要在可连接外网的机器上下载grafana容器镜像与arangodb2es.py依赖的python库。本工具提供了[离线资源下载脚本](./deploy/download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源下载,下载内容会存放在当前目录的子目录gala_deploy_grafana下: + +```xml +sh download_offline_res.sh grafana +``` + +*注:arangodb2es.py用于将arangodb中的图关系数据转换上传到elasticsearch服务器,以便支持grafana页面上显示拓扑图。* + +2. 工具一键部署 + +将gala_deploy_grafana下的所有文件、[arangodb2es.py](./deploy/arangodb2es.py)和[部署脚本](./deploy/deploy.sh)上传到目标管理节点,执行如下命令完成部署,grafana会以容器实例方式运行。 + +```xml +sh deploy.sh grafana -P -p -E -S +``` + +选项详细说明: + +| 选项 | 参数说明 | 是否必配 | +| :--------------: | :----------------------------------------------------------: | :------------: | +| -P\|--prometheus | 指定grafana中的prometheus数据源地址,当不配置该选项时,prometheus数据源使用localhost | 否 | +| -p\|--pyroscope | 指定grafana中读取火焰图的pyroscope数据源地址,当不配置该选项时,pyroscope数据源使用localhost | 否 | +| -E\|--elastic | 指定grafana中读取异常检测、拓扑图、根因定位结果的elasticsearch数据源地址。当不使用该选项时,elasticsearch数据源使用localhost | 否 | +| -S\|--srcdir | 离线部署时使用该选项来指定grafana安装包所在的目录 | 离线部署时必配 | + +### 在线部署 + +#### 获取部署脚本 + +下载单独的[部署脚本](./deploy/deploy.sh),无需下载整个工具,可以直接通过如下命令下载到待部署机器上: + +``` +wget https://gitee.com/Vchanger/gala-docs/raw/master/deploy/deploy.sh --no-check-certificate +``` + +#### 管理节点:部署中间件 + +执行如下命令安装、配置、启动kafka/prometheus/elasticsearch/logstash/arangodb/pyroscope服务,**-K/-P/-E/-A/-p选项支持分开使用单独部署对应组件**,其中-P用于配置prometheus服务端抓取消息的来源地址(即部署gala-gopher的生产节点)列表,每个地址之间用英文逗号分隔;elasticsearch/logstash由于存在依赖关系,通过-E选项统一控制、绑定安装。 + +```css +sh deploy.sh middleware -K <部署节点管理IP> -P -E <部署节点管理IP> -A -p + +``` + +#### 生产节点:部署gala-gopher + +通过如下命令来安装、配置、启动gala-gopher服务: + +1. rpm方式 + +```xml +sh deploy.sh gopher -K -p +``` + +2. 容器镜像方式: + +```css +sh deploy.sh gopher -K -p --docker +``` + +#### 管理节点:部署gala-ops + +gala-ops组件支持rpm、容器镜像两种部署方式,部署时需要指定kafka、prometheus、arangodb服务器地址,当不指定时,这些中间件的地址默认使用localhost。 + +1. rpm方式(仅支持openEuler 22.03 LTS SP1) + +```shell +sh deploy.sh ops -K -P -A +``` + +2. 容器镜像方式: + +```css +sh deploy.sh ops -K -P -A --docker +``` + +#### 管理节点:部署grafana + +将[arangodb2es.py](./arangodb2es.py)下载上传到目标管理节点上,并和部署脚本放在同一个目录,执行如下命令完成前端页面部署,grafana会以容器实例方式运行。 + +```xml +sh deploy.sh grafana -P -E +``` + + [gala-ops部署演示视频](https://gitee.com/openeuler/gala-docs/blob/master/demo/5.%20A-Ops%E7%BB%84%E4%BB%B6%E9%83%A8%E7%BD%B2.mp4)中以openEuler 22.03 LTS版本为例演示了使用部署工具完成在生成节点上的gala-gopher以及在管理节点上的gala-ops组件部署的过程。 diff --git a/deploy/README.en.md b/deploy/README.en.md deleted file mode 100644 index dbd68e3..0000000 --- a/deploy/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# A-Ops-Tools - -#### Description -A-Ops测试部署脚本仓库 - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/deploy/README.md b/deploy/README.md deleted file mode 100644 index f186c0b..0000000 --- a/deploy/README.md +++ /dev/null @@ -1,207 +0,0 @@ -# Gala-Deploy-Tools - -## 介绍 - -GALA组件部署工具仓,支持快速部署gala-gopher、gala-ops(gala-spider/gala-inference/gala-anteater)组件、kafka/prometheus/arangodb/es/logstash/pyroscope中间件、grafana前端页面展示相关组件,并同时支持离线/在线部署两种模式。 - -## 约束限制 - -1. 当前本工具仅支持x86架构与如下OS版本:openEuler 20.03 LTS SP1、openEuler 22.03 LTS、openEuler 22.03 LTS SP1、Kylin V10 -2. 在线部署模式下,本工具运行过程中会从openEuler repo源安装rpm或者从外网下载源码资源,因此内网环境在使用工具前需要提前配置好代理,便于访问外网环境,工具使用结束后建议将代理取消。 -3. 在线部署模式下,gala-gopher、gala-ops组件支持rpm包部署以及容器部署两种方式,其中gala-ops组件的rpm包部署方式仅支持openEuler 22.03 LTS SP1 版本。 -4. 离线部署模式下,gala-gopher会以rpm包的方式安装部署,gala-ops组件会以容器方式安装部署。 - -## 环境准备说明 - -准备至少两台符合OS版本与架构要求(见约束限制1)的机器(物理机、虚拟机均可)并保证机器间网络可以正常连通(在线部署模式下需要连接外网)。 - -- 机器A:**生产节点**,即需要监控运维的目标节点,上面一般运行着业务进程(如数据库、redis、Java因应用),用于部署高保真采集组件gala-gopher。 - - ***注:如果有多台生产节点,则每个节点都需要部署gala-gopher*** - - - -- 机器B:**管理节点**,用于部署kafka等中间件以及gala的异常检测、根因定位组件。这些组件的部署相对灵活,可以准备多台管理节点分开部署,只要节点之间网络通即可。 - - ***注:管理节点的机器规格建议至少为8U8G*** - - - -## 离线部署教程 - -gala组件的运行依赖各个中间件,因此建议按照如下顺序(中间件->gala-gopher/gala-ops->grafana)进行安装部署。 - -### 管理节点:部署中间件 - -当前涉及的中间件包括kafka、prometheus、arangodb、elasticsearch/logstash、pyroscope共6个组件,其中elasticsearch和logstash存在依赖关系,需要绑定部署。 - -#### 离线安装包下载 - -离线部署前,需要在可连接外网的机器上下载6个中间件的安装包。本工具提供了[离线资源下载脚本](./download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源的下载,下载内容会存放在当前目录的子目录gala_deploy_middleware下。 - -```xml -sh download_offline_res.sh middleware -``` - -*注:由于kafka运行依赖java,因此下载kafka安装包时也会同时下载java-1.8.0-openjdk及其依赖包;arangodb组件需要下载容器镜像tar包,因此下载机器上需要安装docker组件。* - -#### 工具一键部署 - -将gala_deploy_middleware下的所有文件和[部署脚本](./deploy.sh)上传到目标管理节点机器上,执行如下命令安装、配置、启动kafka/prometheus/elasticsearch/logstash/arangodb/pyroscope服务,**-K/-P/-E/-A/-p选项支持分开使用单独部署对应组件**,-S选项来指定离线安装包所在的目录。 - -```css -sh deploy.sh middleware -K <部署节点管理IP> -P -E <部署节点管理IP> -A -p -S <中间件安装包所在目录> -``` - -选项详细说明 - -| 选项 | 参数说明 | 是否必配 | -| :--------------: | :----------------------------------------------------------: | :----------------------------------: | -| -K\|--kafka | 使用该选项用于部署kafka服务器,并配置指定的监听IP地址(一般来说是当前节点的管理IP)。当不使用该选项时,不部署kafka服务 | 需要部署kafka服务时为必 | -| -P\|--prometheus | 使用该选项用于部署prometheus服务器,并配置指定的抓取消息来源(即部署gala-gopher的生产节点)地址列表,每个地址之间用英文逗号分隔,地址后可以跟随“:端口号”来指定抓取端口,当不指定时,使用默认端口8888;地址前可以加上”主机名-“来标识该地址。
例如:-P 192.168.0.1,192.168.0.2:18001,vm01-192.168.0.3:18002。当不使用该选项时,不部署prometheus服务 | 需要部署prometheus服务器时为必配 | -| -A\|--arangodb | 使用该选项用于部署并启动arangodb数据库服务,该服务默认监听全IP,因此无需指定监听IP。 | 需要部署arangodb时为必配 | -| -p\|--pyroscope | 使用该选项用于部署并启动pyroscope服务,该服务默认监听全IP,因此无需指定监听IP。 | 需要部署pyroscope服务端时必配 | -| -E\|--elastic | 使用该选项用于部署elasticsearch、logstash服务,并指定logstash读取消息的elasticsearch服务器地址(一般来说是当前节点的管理IP)。当不使用该选项时,不部署elaticsearch服务 | 需要部署elasticsearch/logstash为必配 | -| -S\|--srcdir | 离线部署时使用该选项来指定离线安装包所在的目录 | 离线部署时必配 | - -### 生产节点:部署gala-gopher - -#### 对应版本gala-gopher及依赖包下载 - -离线部署前,需要在可连接外网的机器上下载对应版本的gala-gopher包以及其依赖的rpm包。本工具提供了[离线资源下载脚本](./download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源下载,下载内容会存放在当前目录的子目录gala_deploy_gopher下。 - -```xml -sh download_offline_res.sh gopher -``` - -#### 工具一键部署 - -将gala_deploy_gopher目录下的所有文件和[部署脚本](./deploy.sh)上传到目标生产节点机器上,执行如下命令安装、配置、启动gala-gopher服务,-S选项来指定离线安装包所在的目录。 - -```xml -sh deploy.sh gopher -K -p -S <离线安装包所在目录> -``` - -选项详细说明: - -| 选项 | 参数说明 | 是否必配 | -| :-------------: | :----------------------------------------------------------: | :------------: | -| -K\|--kafka | 指定gala-gopher上报采集数据的目标kakfa服务器地址,当不配置该选项时,kafka服务器地址使用localhost | 否 | -| -p\|--pyroscope | 指定gala-gopher开启火焰图功能后火焰图上传到的pyroscope服务器地址(用于对接前端界面显示),当不配置该选项时,pyroscope服务器地址使用localhost | 否 | -| -S\|--srcdir | 离线部署时使用该选项来指定gala-gopher以及其依赖包所在的目录 | 离线部署时必配 | - -### 管理节点:部署gala-ops - -#### gala-ops容器镜像下载 - -离线部署前,需要在可连接外网的机器上下载gala-ops(gala-anteater/gala-spider/gala-inference)容器镜像tar包。本工具提供了[离线资源下载脚本](./download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源下载,下载内容会存放在当前目录的子目录gala_deploy_ops下。 - -```xml -sh download_offline_res.sh ops -``` - -#### 工具一键部署 - -将gala_deploy_ops目录下的所有文件和[部署脚本](./deploy.sh)上传到目标管理节点机器上,执行如下命令安装、配置、启动gala-ops服务,-S选项来指定容器镜像tar包所在的目录。 - -```shell -sh deploy.sh ops -K -P -A -S -``` - -选项详细说明: - -| 选项 | 参数说明 | 是否必配 | -| :--------------: | :----------------------------------------------------------: | :------------: | -| -K\|--kafka | 指定gala-ops读取消息的kakfa服务器地址,当不配置该选项时,kafka服务器地址使用localhost | 否 | -| -P\|--prometheus | 指定gala-ops读取消息的prometheus服务器地址,当不配置该选项时,prometheus服务器地址使用localhost | 否 | -| -A\|--arangodb | 指定gala-ops存储关系图数据的的arangodb服务器地址,当不配置该选项时,arangodb服务器地址使用localhost | 否 | -| -S\|--srcdir | 离线部署时使用该选项来指定gala-ops容器镜像tar包所在的目录 | 离线部署时必配 | - - - -### 管理节点:部署grafana - -#### grafana容器镜像与依赖python库下载 - -离线部署前,需要在可连接外网的机器上下载grafana容器镜像与arangodb2es.py依赖的python库。本工具提供了[离线资源下载脚本](./download_offline_res.sh)一键全量下载,将该脚本上传到机器上后执行如下命令完成相关离线资源下载,下载内容会存放在当前目录的子目录gala_deploy_grafana下: - -```xml -sh download_offline_res.sh grafana -``` - -*注:arangodb2es.py用于将arangodb中的图关系数据转换上传到elasticsearch服务器,以便支持grafana页面上显示拓扑图。* - -#### 工具一键部署 - -将gala_deploy_grafana下的所有文件、[arangodb2es.py](./arangodb2es.py)和[部署脚本](./deploy.sh)上传到目标管理节点,执行如下命令完成部署,grafana会以容器实例方式运行。 - -```xml -sh deploy.sh grafana -P -p -E -S -``` - -选项详细说明: - -| 选项 | 参数说明 | 是否必配 | -| :--------------: | :----------------------------------------------------------: | :------------: | -| -P\|--prometheus | 指定grafana中的prometheus数据源地址,当不配置该选项时,prometheus数据源使用localhost | 否 | -| -p\|--pyroscope | 指定grafana中读取火焰图的pyroscope数据源地址,当不配置该选项时,pyroscope数据源使用localhost | 否 | -| -E\|--elastic | 指定grafana中读取异常检测、拓扑图、根因定位结果的elasticsearch数据源地址。当不使用该选项时,elasticsearch数据源使用localhost | 否 | -| -S\|--srcdir | 离线部署时使用该选项来指定grafana安装包所在的目录 | 离线部署时必配 | - -## 在线部署教程 - -### 获取部署脚本 - -下载单独的[部署脚本](./deploy.sh),无需下载整个工具,可以直接通过如下命令下载到待部署机器上: - -``` -wget https://gitee.com/Vchanger/gala-docs/raw/master/deploy/deploy.sh --no-check-certificate -``` - -### 管理节点:部署中间件 - -执行如下命令安装、配置、启动kafka/prometheus/elasticsearch/logstash/arangodb/pyroscope服务,**-K/-P/-E/-A/-p选项支持分开使用单独部署对应组件**,其中-P用于配置prometheus服务端抓取消息的来源地址(即部署gala-gopher的生产节点)列表,每个地址之间用英文逗号分隔;elasticsearch/logstash由于存在依赖关系,通过-E选项统一控制、绑定安装。 - -```css -sh deploy.sh middleware -K <部署节点管理IP> -P -E <部署节点管理IP> -A -p -``` - -### 生产节点:部署gala-gopher - -通过如下命令来安装、配置、启动gala-gopher服务: - -1. rpm方式 - -```xml -sh deploy.sh gopher -K -p -``` - -2. 容器镜像方式: - -```css -sh deploy.sh gopher -K -p --docker -``` - -### 管理节点:部署gala-ops - -gala-ops组件支持rpm、容器镜像两种部署方式,部署时需要指定kafka、prometheus、arangodb服务器地址,当不指定时,这些中间件的地址默认使用localhost。 - -1. rpm方式(仅支持openEuler 22.03 LTS SP1) - -```shell -sh deploy.sh ops -K -P -A -``` - -2. 容器镜像方式: - -```css -sh deploy.sh ops -K -P -A --docker -``` - -### 管理节点:部署grafana - -将[arangodb2es.py](./arangodb2es.py)下载上传到目标管理节点上,并和部署脚本放在同一个目录,执行如下命令完成前端页面部署,grafana会以容器实例方式运行。 - -```xml -sh deploy.sh grafana -P -E -``` \ No newline at end of file diff --git a/deploy/deploy.sh b/deploy/deploy.sh index b603901..ab4d9df 100755 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -375,36 +375,40 @@ function parse_arg_gopher() { download_gopher_deps() { DOWNLOAD_DIR=$1 - gala_wget https://mirrors.aliyun.com/openeuler/openEuler-20.03-LTS-SP3/update/x86_64/Packages/libbpf-0.3-4.oe1.x86_64.rpm ${DOWNLOAD_DIR} - gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/EPOL/main/x86_64/Packages/flamegraph-1.0-1.oe2203sp1.noarch.rpm ${DOWNLOAD_DIR} - gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/x86_64/Packages/cadvisor-0.37.0-2.oe1.x86_64.rpm ${DOWNLOAD_DIR} - gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/everything/x86_64/Packages/cjson-1.7.15-1.oe2203sp1.x86_64.rpm ${DOWNLOAD_DIR} - gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/x86_64/Packages/python3-libconf-2.0.1-1.oe1.noarch.rpm ${DOWNLOAD_DIR} + gala_wget https://mirrors.aliyun.com/openeuler/openEuler-20.03-LTS-SP3/update/$(uname -m)/Packages/libbpf-0.3-4.oe1.$(uname -m).rpm ${DOWNLOAD_DIR} + gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/EPOL/main/$(uname -m)/Packages/flamegraph-1.0-1.oe2203sp1.noarch.rpm ${DOWNLOAD_DIR} + gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/$(uname -m)/Packages/cadvisor-0.37.0-2.oe1.$(uname -m).rpm ${DOWNLOAD_DIR} + gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/everything/$(uname -m)/Packages/cjson-1.7.15-1.oe2203sp1.$(uname -m).rpm ${DOWNLOAD_DIR} + gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/$(uname -m)/Packages/python3-libconf-2.0.1-1.oe1.noarch.rpm ${DOWNLOAD_DIR} } download_gopher() { echo_info "- Download gala-gopher rpm" DOWNLOAD_DIR=$1 + if ! cat /etc/yum.conf | grep -q 'sslverify=false' ; then + echo 'sslverify=false' >> /etc/yum.conf + fi + if [ "$OS_VERSION" == "openEuler-22.03-LTS-SP1" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala/openeuler-22.03_LTS_SP1-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2203sp1/openeuler-22.03_LTS_SP1-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203sp1.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203sp1.*$(uname -m).rpm) yum_download $gopher_local_rpm elif [ "$OS_VERSION" == "openEuler-22.03-LTS" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2203/openeuler-22.03_LTS_SP1-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2203/openeuler-22.03_LTS_SP1-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203.*$(uname -m).rpm) yum_download $gopher_local_rpm elif [ "$OS_VERSION" == "openEuler-20.03-LTS-SP1" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2003sp1/openeuler-20.03_LTS_SP3-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2003sp1/openeuler-20.03_LTS_SP3-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe1.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe1.*$(uname -m).rpm) download_gopher_deps ${DOWNLOAD_DIR} elif [ "$OS_VERSION" == "kylin" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-kylin/openeuler-20.03_LTS_SP3-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-kylin/openeuler-20.03_LTS_SP3-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*ky10.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*ky10.*$(uname -m).rpm) download_gopher_deps ${DOWNLOAD_DIR} else echo_err_exit "Unsupported openEuler version, aborting!" @@ -428,9 +432,9 @@ function deploy_gopher_rpm() { install_rpm librdkafka install_rpm libmicrohttpd yum install ${WORKING_DIR}/gala-gopher-rpms/python3-libconf-2.0.1-1.oe1.noarch.rpm \ - ${WORKING_DIR}/gala-gopher-rpms/cadvisor-0.37.0-2.oe1.x86_64.rpm \ + ${WORKING_DIR}/gala-gopher-rpms/cadvisor-0.37.0-2.oe1.$(uname -m).rpm \ ${WORKING_DIR}/gala-gopher-rpms/flamegraph-1.0-1.oe2203sp1.noarch.rpm \ - ${WORKING_DIR}/gala-gopher-rpms/libbpf-0.3-4.oe1.x86_64.rpm \ + ${WORKING_DIR}/gala-gopher-rpms/libbpf-0.3-4.oe1.$(uname -m).rpm \ $gopher_local_rpm -y fi fi @@ -840,7 +844,9 @@ function deploy_arangodb() { fi if [ $(uname -m) != 'x86_64' ] ; then - echo_err_exit "Arangodb only available on x86_64 in rpm mode, try adding --docker" + echo_err_exit "Arangodb only available on x86_64 in rpm mode, try deploying with docker" + deploy_arangodb_docker + return fi if [ "$OFFICIAL_RELEASE" == "no" ] ; then @@ -902,7 +908,7 @@ function deploy_logstash() { else LOGSTASH_LOCAL_RPM="./logstash-8.5.3-$(uname -m).rpm" if [ ! -f "$LOGSTASH_LOCAL_RPM" ] ; then - wget https://mirrors.aliyun.com/elasticstack/8.x/yum/8.5.3/logstash-8.5.3-$(uname -m).rpm --no-check-certificate + wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.3-$(uname -m).rpm --no-check-certificate [ $? -ne 0 ] && echo_err_exit "Error: fail to download logstash rpm from official website, check proxy!" fi fi @@ -1188,16 +1194,13 @@ function detect_openEuler_version() { } function detect_os() { - if [ "$(uname -m)" != "x86_64" ] ; then - echo_err_exit "Deployment Tool now only support x86_64, aborting!" - fi - OS_TYPE=$(cat /etc/os-release | grep '^ID=' | awk -F '\"' '{print $2}') [ -z "$OS_TYPE" ] && echo_err_exit "Unsupport OS type, aborting!" if [ "x$OS_TYPE" == "xopenEuler" ] ; then detect_openEuler_version elif [ "x$OS_TYPE" == "xkylin" ] ; then + [ $(uname -m) != "x86_64" ] && echo_err_exit "Unsupported on Kylin aarch64" OS_VERSION="$OS_TYPE" REMOTE_REPO_PREFIX="$REMOTE_REPO_PREFIX/openEuler-20.03-LTS" OFFICIAL_RELEASE="no" diff --git a/deploy/download_offline_res.sh b/deploy/download_offline_res.sh index 54997bf..61fe0a2 100755 --- a/deploy/download_offline_res.sh +++ b/deploy/download_offline_res.sh @@ -158,7 +158,7 @@ download_kafka_tarball() { wget https://mirrors.aliyun.com/apache/kafka/2.8.2/${KAFKA_VERSION}.tgz -P ${DOWNLOAD_DIR} --no-check-certificate fi - if [ ! -f ${DOWNLOAD_DIR}/java-1.8.0-openjdk*.rpm ] ; then + if ! ls ${DOWNLOAD_DIR} | grep -q java-1.8.0-openjdk ; then yum_download java-1.8.0-openjdk install_rpm createrepo createrepo ${DOWNLOAD_DIR} @@ -182,8 +182,8 @@ download_es_logstash() { echo_info "- Download logstash(8.5.3) rpm" if [ ! -f ${DOWNLOAD_DIR}/logstash-8.5.3-$(uname -m).rpm ] ; then - echo " Executing \"wget https://mirrors.aliyun.com/elasticstack/8.x/yum/8.5.3/logstash-8.5.3-$(uname -m).rpm\"" - wget https://mirrors.aliyun.com/elasticstack/8.x/yum/8.5.3/logstash-8.5.3-$(uname -m).rpm -P ${DOWNLOAD_DIR} --no-check-certificate + echo " Executing \"wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.3-$(uname -m).rpm\"" + wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.3-$(uname -m).rpm -P ${DOWNLOAD_DIR} --no-check-certificate fi } @@ -227,11 +227,11 @@ download_grafana_image() { } download_gopher_deps() { - gala_wget https://mirrors.aliyun.com/openeuler/openEuler-20.03-LTS-SP3/update/x86_64/Packages/libbpf-0.3-4.oe1.x86_64.rpm ${DOWNLOAD_DIR} - gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/EPOL/main/x86_64/Packages/flamegraph-1.0-1.oe2203sp1.noarch.rpm ${DOWNLOAD_DIR} - gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/x86_64/Packages/cadvisor-0.37.0-2.oe1.x86_64.rpm ${DOWNLOAD_DIR} - gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/everything/x86_64/Packages/cjson-1.7.15-1.oe2203sp1.x86_64.rpm ${DOWNLOAD_DIR} - gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/x86_64/Packages/python3-libconf-2.0.1-1.oe1.noarch.rpm ${DOWNLOAD_DIR} + gala_wget https://mirrors.aliyun.com/openeuler/openEuler-20.03-LTS-SP3/update/$(uname -m)/Packages/libbpf-0.3-4.oe1.$(uname -m).rpm ${DOWNLOAD_DIR} + gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/EPOL/main/$(uname -m)/Packages/flamegraph-1.0-1.oe2203sp1.noarch.rpm ${DOWNLOAD_DIR} + gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/$(uname -m)/Packages/cadvisor-0.37.0-2.oe1.$(uname -m).rpm ${DOWNLOAD_DIR} + gala_wget https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP1/everything/$(uname -m)/Packages/cjson-1.7.15-1.oe2203sp1.$(uname -m).rpm ${DOWNLOAD_DIR} + gala_wget http://121.36.84.172/dailybuild/openEuler-20.03-LTS-SP1/openEuler-20.03-LTS-SP1/EPOL/main/$(uname -m)/Packages/python3-libconf-2.0.1-1.oe1.noarch.rpm ${DOWNLOAD_DIR} yum_download log4cplus \ python3-requests \ python3-psycopg2 \ @@ -247,25 +247,29 @@ download_gopher() { echo_info "- Download gala-gopher rpm" gopher_local_rpm="" + if ! cat /etc/yum.conf | grep -q 'sslverify=false' ; then + echo 'sslverify=false' >> /etc/yum.conf + fi + if [ "$OS_VERSION" == "openEuler-22.03-LTS-SP1" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala/openeuler-22.03_LTS_SP1-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2203sp1/openeuler-22.03_LTS_SP1-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203sp1.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203sp1.*$(uname -m).rpm) yum_download $gopher_local_rpm elif [ "$OS_VERSION" == "openEuler-22.03-LTS" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2203/openeuler-22.03_LTS_SP1-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2203/openeuler-22.03_LTS_SP1-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe2203.*$(uname -m).rpm) yum_download $gopher_local_rpm elif [ "$OS_VERSION" == "openEuler-20.03-LTS-SP1" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2003sp1/openeuler-20.03_LTS_SP3-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-oe2003sp1/openeuler-20.03_LTS_SP3-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe1.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*oe1.*$(uname -m).rpm) download_gopher_deps elif [ "$OS_VERSION" == "kylin" ] ; then - yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-kylin/openeuler-20.03_LTS_SP3-x86_64/" gala-gopher \ + yumdownloader --repofrompath="gala_eur,https://eur.openeuler.openatom.cn/results/Vchanger/gala-kylin/openeuler-20.03_LTS_SP3-$(uname -m)/" gala-gopher \ --destdir=${DOWNLOAD_DIR} -b - gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*ky10.*.rpm) + gopher_local_rpm=$(ls ${DOWNLOAD_DIR}/gala-gopher*ky10.*$(uname -m).rpm) download_gopher_deps else echo_err_exit "Unsupported openEuler version, aborting!" @@ -289,19 +293,16 @@ function detect_openEuler_version() { } function detect_os() { - if [ "$(uname -m)" != "x86_64" ] ; then - echo_err_exit "Deployment Tool now only support x86_64, aborting!" - fi - OS_TYPE=$(cat /etc/os-release | grep '^ID=' | awk -F '\"' '{print $2}') [ -z "$OS_TYPE" ] && echo_err_exit "Unsupport OS type, aborting!" if [ "x$OS_TYPE" == "xopenEuler" ] ; then detect_openEuler_version elif [ "x$OS_TYPE" == "xkylin" ] ; then + [ $(uname -m) != "x86_64" ] && echo_err_exit "Unsupported on Kylin aarch64" + OS_VERSION="$OS_TYPE" REMOTE_REPO_PREFIX="$REMOTE_REPO_PREFIX/openEuler-20.03-LTS-SP1" - OFFICIAL_RELEASE="no" else echo_err_exit "Unsupport OS type, aborting" fi -- Gitee