# A-Ops-Tools
**Repository Path**: workadmin/a-ops-tools
## Basic Information
- **Project Name**: A-Ops-Tools
- **Description**: A-Ops测试部署脚本仓库
- **Primary Language**: Shell
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2023-05-18
- **Last Updated**: 2023-05-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# A-Ops-Tools
#### 介绍
A-Ops组件部署工具仓,支持快速部署gala-gopher、gala-ops(gala-spider/gala-inference/gala-anteater)组件、openGauss服务端、kafka/prometheus/arangodb/es/logstash中间件、grafana/前端页面展示相关组件。
#### 软件架构
NA
#### 约束限制
1. 本工具运行过程中会从openEuler repo源安装rpm或者从外网下载源码资源,因此内网环境在使用工具前需要提前配置好代理,便于访问外网环境,工具使用结束后建议将代理取消。
2. gala-gopher、gala-ops组件支持rpm包部署以及容器部署两种方式,其中rpm包部署方式目前仅支持openEuler 22.03 LTS/openEuler 22.03 LTS SP1 两个openEuler版本。
#### 安装教程
1. 下载部署工具压缩包:wget https://gitee.com/Vchanger/a-ops-tools/repository/archive/master.zip --no-check-certificate (内网用户需要配置代理)
2. 使用unzip解压压缩包后进入对应目录即可使用
#### 使用说明
##### 部署gala-gopher
1. 部署命令: sh deploy.sh gopher [-K|--kafka kafka服务器地址] [-p|--pyroscope pyroscope服务器地址] [-U|--update] [--docker] [-t|--tag 容器镜像tag] [--proxy]
2. 选项说明:
| 选项 | 参数说明 | 是否必配 |
| :-------------: | :----------------------------------------------------------: | :------------------------------: |
| -K\|--kafka | 指定gala-gopher上报采集数据的目标kakfa服务器地址,当不配置该选项时,kafka服务器地址使用localhost | 否 |
| -p\|--pyroscope | 指定gala-gopher开启火焰图功能后火焰图上传到的pyroscope服务器地址(用于对接前端界面显示),当不配置该选项时,pyroscope服务器地址使用localhost | 否 |
| -U\|--update | rpm部署方式下指定升级gala-gopher版本,当不配置该选项时,系统会基于当前已安装的版本进行部署
注:使用--docker选项时本选项无效 | 否 |
| --proxy | 针对内网用户:容器方式部署时在docker服务内配置单独的代理,其配置方法有一定的复杂度,因此提供该选项简化用户操作
注:使用该选项前请先手动修改deploy.sh文件开头DOCKER_HTTPS_PROXY变量为具体的代理地址(密码中的特殊字符需要转义) | 当使用--docker选项时内网用户必配 |
| --docker | 指定使用容器方式部署gala-gopher,当不配置该选项时,默认采用rpm包部署方式 | 否 |
| -t\|--tag | 由于gala-gopher中的ebpf等技术依赖内核,因此针对不同的内核(系统)版本需要使用对应的gala-gopher容器镜像,当前支持的镜像tag列表:euleros-v2r9, 20.03-lts, 20.03-lts-sp1, 22.03-lts, 22.03-lts-sp1 | 当使用--docker选项时为必配 |
##### 部署gala-ops
1. 部署命令:sh deploy.sh ops [-K|--kafka kafka服务器地址] [-P|--prometheus Prometheus服务器地址] [-A|--arangodb arangodb地址] [-U|--update] [--docker] [--proxy]
2. 选项说明:
| 选项 | 参数说明 | 是否必配 |
| :--------------: | :----------------------------------------------------------: | :------------------------------: |
| -K\|--kafka | 指定gala-ops读取消息的kakfa服务器地址,当不配置该选项时,kafka服务器地址使用localhost | 否 |
| -P\|--prometheus | 指定gala-ops读取消息的prometheus服务器地址,当不配置该选项时,prometheus服务器地址使用localhost | 否 |
| -A\|--arangodb | 指定gala-ops存储关系图数据的的arangodb服务器地址,当不配置该选项时,arangodb服务器地址使用localhost | 否 |
| -U\|--update | rpm部署方式下指定升级gala-ops版本,当不配置该选项时,系统会基于当前已安装的版本进行部署 注:使用--docker选项时本选项无效 | 否 |
| --proxy | 针对内网用户:容器方式部署时在docker服务内配置单独的代理,其配置方法有一定的复杂度,因此提供该选项简化用户操作
注:使用该选项前请先手动修改deploy.sh文件开头DOCKER_HTTPS_PROXY变量为具体的代理地址(密码中的特殊字符需要转义) | 当使用--docker选项时内网用户必配 |
| --docker | 指定使用容器方式部署gala-ops,当不配置该选项时,默认采用rpm包部署方式 | 否 |
##### 部署中间件
当前中间件部署涉及kafka、prometheus、arangodb、elasticsearch以及elasticsearch依赖的logstash共五个组件,其中elasticsearch和logstash会绑定部署。
1. 部署命令:sh deploy.sh middleware [-K|--kafka kafka服务器监听地址>] [-P|--prometheus prometheus抓取地址1[,prometheus抓取地址2,prometheus抓取地址3,...]] [-E|--elastic es服务器地址] [-A|--arangodb]
2. 选项说明
| 选项 | 参数说明 | 是否必配 |
| :--------------: | :----------------------------------------------------------: | :------------------------------: |
| -K\|--kafka | 使用该选项用于部署kafka服务器,并配置指定的监听IP地址(一般来说是当前节点的管理IP)。当不使用该选项时,不部署kafka服务 | 需要部署kafka服务时为必 |
| -P\|--prometheus | 使用该选项用于部署prometheus服务器,并配置指定的抓取消息来源地址列表,每个地址之间用英文逗号分隔,地址后可以跟随“:端口号”来指定抓取端口,当不指定时,使用默认端口8888;地址前可以加上”主机名-“来标识该地址。
例如:-P 192.168.0.1,192.168.0.2:18001,vm01-192.168.0.3:18002。当不使用该选项时,不部署prometheus服务 | 需要部署prometheus服务器时为必配 |
| -A\|--arangodb | 使用该选项用于部署arango数据库,arangodb服务器地址默认使用localhost | 需要部署arangodb时为必配 |
| -E\|--elastic | 使用该选项用于部署elasticsearch、logstash服务,并指定logstash读取消息的elasticsearch服务器地址(一般来说是当前节点的管理IP)。当不使用该选项时,不部署elaticsearch服务 | 需要部署elasticsearch为必配 |
##### 部署grafana
grafana部署时会先部署页面火焰图依赖的pyroscope,然后拉取grafana容器镜像进行部署,部署完成后可以通过浏览器访问 "http://[部署节点IP]:3000" 来登录grafana页面,默认用户名、密码均为admin。
1. 部署命令:sh deploy.sh grafana [-P|--prometheus Prometheus服务器地址] [-p|--pyroscope pyroscope服务器地址] [-E|--elastic es服务器地址] [--proxy]
2. 选项说明:
| 选项 | 参数说明 | 是否必配 |
| :--------------: | :----------------------------------------------------------: | :----------: |
| --proxy | 针对内网用户:grafana当前采用容器方式部署,内网需要在docker服务内配置单独的代理,其配置方法有一定的复杂度,因此提供该选项简化用户操作。
注:使用该选项前请先手动修改deploy.sh文件开头DOCKER_HTTPS_PROXY变量为具体的代理地址(密码中的特殊字符需要转义) | 内网用户必配 |
| -P\|--prometheus | 指定grafana中的prometheus数据源地址,当不配置该选项时,prometheus数据源使用localhost | 否 |
| -p\|--pyroscope | 指定grafana中读取火焰图的pyroscope数据源地址,当不配置该选项时,pyroscope数据源使用localhost | 否 |
| -E\|--elastic | 指定grafana中读取异常检测、拓扑图、根因定位结果的elasticsearch数据源地址。当不使用该选项时,elasticsearch数据源使用localhost | 否 |
##### 部署openGauss服务器
1. 部署命令:sh deploy.sh opengauss [-D|--datadir openGauss数据目录] [--proxy]
2. 选项说明:
| 选项 | 参数说明 | 是否必配 |
| :-----------: | :----------------------------------------------------------: | :----------: |
| --proxy | 针对内网用户:opengauss服务器目前采用容器部署,内网需要在docker服务内配置单独的代理,其配置方法有一定的复杂度,因此提供该选项简化用户操作。
注:使用该选项前请先手动修改deploy.sh文件开头DOCKER_HTTPS_PROXY变量为具体的代理地址(密码中的特殊字符需要转义) | 内网用户必配 |
| -D\|--datadir | 指定部署的openGauss服务器数据库存放的目录,不指定时默认使用/目录 | 否 |
注:openGauss服务器仅用于模拟数据库场景对A-Ops进行功能验证,非A-Ops的必要组件