OpenResty XRay™ 自主部署版 (docker-compose)
名称
OpenResty XRay 自主部署 docker-compose 版本安装与部署说明
目录
概览
其中控制台服务端运行在 docker 容器中,使用 docker-compose
进行管理,所有服务运行在单台物理或虚拟机上,而 Agent 端则是运行在目标机器上。
XRay 的服务端分为三个组件,其中每个组件中又有一些子服务
OpenResty XRay Console
:- xray-console: console 的 web 服务,提供 XRay 的管理界面
- xray-console-pg: console 的数据库,作为 web 服务的数据库后端
OpenResty XRay BuildBox
:- build-box-[dist]: 构建 XRay 工具的后端服务。其中
dist
代表对应的操作系统发行版。 - xray-tenant-db: 对
xray-console
服务和build-box-[dist]
提供查询接口,会按照 ‘私有库 -> 公共库’ 的顺寻进行查询。该服务只会向公共库发起查询请求,而不会有数据上传到公有库 - xray-tenant-db-pl: 提供客户私有的软件数据库
- xray-tenang-db-pg: 作为客户私有软件数据库的数据库后端
- build-box-[dist]: 构建 XRay 工具的后端服务。其中
安装
控制台服务
1. 硬件需求
- 网络:不必具有公网 IP 或暴露监听端口,但需要能够访问互联网,并且运行 Agent 的机器可以访问该机器
- 内存: >= 4G,推荐 16GB
- CPU: >= 2C,推荐 4核
- 硬盘: >= 500GB,推荐 1TB 以上。持久化数据存储在
/data
目录下,会随着使用时长不断增长。
关于硬盘使用量的说明:根据目前的经验,1 台 Agent 周期采样的数据,30 天的数据增长量约为 10GB
2. 访问公网的说明
控制台服务需要连接互联网,用来访问 XRay PkgDB 服务。该服务提供了对常见 Linux 发行版软件仓库的查询与下载服务,从而使 XRay 支持对系统中绝大部分开源软件和开源库的分析。
特别说明:访问公网过程中仅涉及查询和下载的动作,没有任何私有数据会被控制台服务上传到公网的服务端。
3. OS
因为使用了 docker 服务,这里推荐使用原生支持 docker 的 linux 发行版,如下:
ubuntu >= 16.04
centos >= 7
fedora >= 28
debian >= 8
rhel == 7
4. docker-compose
关于 docker 的安装文档,详见:https://docs.docker.com/engine/install/
安装 docker 后,记得启用 docker 服务
关于 docker-compose 的安装文档,详见:https://docs.docker.com/compose/install/
5. 部署证书(可选)
如果需要使用自定义的证书,则需执行此步骤。如果跳过此步骤,console会使用内置的自签证书。
将 XRay 服务端对应域名的证书放在 /data/orxray-console/cert/ssl.crt
和 /data/orxray-console/cert/ssl.key
路径,此证书将用于:
- 使用浏览器通过 https 访问控制台服务
- Agent 端与控制台服务通信
配置控制端服务端访问域名,修改 docker-compose.yml
文件的 services -> xray-console -> environment -> CONSOLE_HOST
字段为访问域名。
大致结构如下,替换其中的 example.com 即可:
# ...
services:
# ...
xray-console:
# ...
environment:
# ...
CONSOLE_HOST: example.com
也可以使用 sed
命令进行替换,假设要使用的域名为 example.com
,则执行:
sed -i 's/\bCONSOLE_HOST:\s*\S\+/CONSOLE_HOST: example.com/g' /opt/orxray/docker-compose.yml
6. 部署与启动
首先,使用邮件中提供的 docker-registry 用户名密码,登录我们提供的私有 docker registry。
docker login registry.openresty.com.cn
这里使用邮件附件中提供的 docker-compose.yml
作为配置文件,推荐放在 /opt/orxray/docker-compose.yml
位置。
启动命令:
$ cd /opt/orxray && docker-compose config -q && docker-compose up -d
检查启动状态,执行下列命令,查看输出的 State
字段是否都为 UP
$ cd /opt/orxray && docker-compose ps
至此,控制台服务端部署完毕,可以使用配置好的域名进行访问了。如:https://example.com
注意:如果通过反向代理服务器访问管理后台,需要做如下改动:
- 需要在反向代理服务上开启 websocket 支持,不然会影响 Agent 和控制台服务端的通信。
- 需要在反向代理服务器上启用
X-Real-IP
来传递访问 IP 地址给后端,这样可以让控制台服务端获取到 Agent 端 IP 地址。
Agent
XRay Agent 端运行在目标机器上,Agent 安装后与自主部署的控制台服务端进行通信,而 Agent 安装也是由控制台服务端配合完成的:
在浏览器访问控制端服务端后台,使用邮件中提供的用户名密码来进行登录。登录后,可以看到安装向导,及支持的操作系统,按照安装向导的提示,进行 Agent 的安装即可。
安装 Agent 后可在左侧 User
页签修改密码及新增用户。
运维
控制台服务日志查看
$ cd /opt/orxray && docker-compose logs -t
检查配置文件合法性
$ cd /opt/orxray && docker-compose config -q
升级服务
升级服务会通过邮件发送附件 docker-compose.upgrade.yml
,执行以下操作:
$ cp docker-compose.upgrade.yml /opt/orxray/docker-compose.yml
$ cd /opt/orxray && docker-compose config -q && docker-compose up -d
检查服务状态
$ cd /opt/orxray && docker-compose ps
此租户不存在
如果使用浏览器访问 console 发现其提示“此租户不存在”,请检查访问域名或 IP 是否于 docker-compose.yml
中的 CONSOLE_HOST
变量值一致。
如访问地址为 http://xray.example.com
而 CONSOLE_HOST
的值不是 xray.example.com
则会有此提示。