一、前言
在日常数据库运维中,为连接多种数据库,经常要安装不同的客户端,非常繁琐,且占用大量存储空间。如果能有一种工具,可以不用在自己电脑上安装,而且能够同时连接多种数据库该多好。
恰好有一天,我看到一朋友在朋友圈发了一条朋友圈信息,说CloudQuery在进行有奖征文。最近我不是刚参加完openGauss有奖征文吗,趁热打铁,看看这东西是什么,写写文章,看看能否得奖 _。
于是点开了她发的朋友圈链接,里面只是描述文章征文的内容,并没有讲过多东西,没有讲解CloudQuery是干什么的,能做哪些事情,觉得好像也没啥啊,就有点失望了,正好也有事,就没再继续多看下去。
过了两天,正好无事,于是又打开了那链接,关注了公众号,登录下官网。我去,这才了解到了CloudQuery的一些知识,没想到这CloudQuery这么强大,竟然可以连接好多数据库,而且还有审计、提工单等作用。

于是,我决定好好使用了解下。
千里之行始于足下,先安装下试试,let’s go.
==本篇主要讲述如何安装部署CloudQuery及相关注意事项,因为篇幅,下一篇将讲述如何使用CloudQuery来连接数据库。
二、下载CloudQuery安装包
登录CloudQuery官网,打开下载链接: https://www.cloudquery.club/download,可下载当前最新的社区版 V2.3.0.,适合在RHEL/CentOS等操作系统安装。

点击“立即下载”,将软件下载到本地,下载的后的软件名称为 cloudquery-club-V2.3.0.tar.gz
然后将下载的安装包上传到安装CloudQuery的服务器某个目录,我习惯放在/root/soft目录下。
三、安装CloudQuery
3.1 安装CloudQuery
使用root用户安装cloudquery
解压cloudquery-club-V2.3.0.tar.gz,然后进行安装,操作如下:
--- 解压安装包
[root@xsky-node2 ~]# cd /root/soft
[root@xsky-node2 soft]# tar -zxf cloudquery-club-V2.3.0.tar.gz
-- 执行安装
[root@xsky-node2 soft]# cd cloudquery-club-V2.2.0
[root@xsky-node2 cloudquery-club-V2.2.0]# ./deploy.sh install
完整安装结果如下,稍微有些长,为让大家看到整个安装过程,我把整个安装过程代码都附上,如下所示:
[root@xsky-node2 cloudquery-club-V2.2.0]# ./deploy.sh install
请输入cloudQuery安装绝对路径(默认为/opt/cloudquery): -- 此处可以直接按回车,默认安装在 /opt/cloudquery 目录
realpath: ‘’: No such file or directory
setenforce: SELinux is disabled
输入路径为无效文件夹,使用默认路径:/opt/cloudquery
开始安装docker与docker-compose
setenforce: SELinux is disabled
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/docker.service.
------docker install success-----
------docker-compose install success------
------installation is complete------
开始加载docker镜像
setenforce: SELinux is disabled
开始加载base_support镜像
Loaded image: basejdkpython:8-jdk-slim-buster
Loaded image: base-redis:5.0.0
Loaded image: base-terminal:latest
cb42413394c4: Loading layer [==================================================>] 72.51MB/72.51MB
1c44f9d6c008: Loading layer [==================================================>] 9.079MB/9.079MB
c9c81fb767cc: Loading layer [==================================================>] 3.584kB/3.584kB
e339e3812d99: Loading layer [==================================================>] 127.2MB/127.2MB
741b957481de: Loading layer [==================================================>] 340.5kB/340.5kB
6db8ffdd7458: Loading layer [==================================================>] 12.49MB/12.49MB
3da4783ff617: Loading layer [==================================================>] 36.54MB/36.54MB
1b56d8f0f28d: Loading layer [==================================================>] 3.072kB/3.072kB
Loaded image: base-zookeeper:3.6.2
b93c1bd012ab: Loading layer [==================================================>] 80.33MB/80.33MB
680d4ad25629: Loading layer [==================================================>] 80.66MB/80.66MB
7f7e8ccae681: Loading layer [==================================================>] 759.9MB/759.9MB
5f9f0ed99f1d: Loading layer [==================================================>] 578.6kB/578.6kB
06b4d412e3fe: Loading layer [==================================================>] 3.063MB/3.063MB
7e7548a12c69: Loading layer [==================================================>] 1.536kB/1.536kB
615b033a1040: Loading layer [==================================================>] 3.584kB/3.584kB
dd007340d02c: Loading layer [==================================================>] 9.728kB/9.728kB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
Loaded image: clickhouse/clickhouse-server:23.3.2.37
e8cf91efbcb0: Loading layer [==================================================>] 58.49MB/58.49MB
00f438525221: Loading layer [==================================================>] 10.44MB/10.44MB
53225373e343: Loading layer [==================================================>] 339.5kB/339.5kB
4d5f0af8bd5c: Loading layer [==================================================>] 4.174MB/4.174MB
7599efc97cb6: Loading layer [==================================================>] 17.1MB/17.1MB
f7ee3866e7fe: Loading layer [==================================================>] 1.425MB/1.425MB
717ce2a08388: Loading layer [==================================================>] 1.536kB/1.536kB
cdaa32d2ec3d: Loading layer [==================================================>] 9.216kB/9.216kB
535acdbb15a8: Loading layer [==================================================>] 197.7MB/197.7MB
919e5a1fcb6c: Loading layer [==================================================>] 56.32kB/56.32kB
52c5b1e57bcd: Loading layer [==================================================>] 2.048kB/2.048kB
72434b8f5e29: Loading layer [==================================================>] 3.072kB/3.072kB
f88c039d7fc6: Loading layer [==================================================>] 14.34kB/14.34kB
73321121ac16: Loading layer [==================================================>] 1.536kB/1.536kB
Loaded image: postgres:11.8
开始加载业务镜像
Sending build context to Docker daemon 144.1MB
Step 1/11 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/11 : MAINTAINER zhiyou "jian.huang@bintools.cn"
---> Running in a26680e23237
Removing intermediate container a26680e23237
---> d33533b24031
Step 3/11 : WORKDIR /opt/cloudquery
---> Running in 9f43335e0f92
Removing intermediate container 9f43335e0f92
---> a36c7d68ab49
Step 4/11 : ADD target/cloudquery-user*.jar ./cloudquery-user.jar
---> 7ce80605cccc
Step 5/11 : RUN mkdir config && mkdir -p /opt/cloudquery/dmc/modules && mkdir -p /opt/cloudquery/dmc/dms_home
---> Running in e1c7dc094ef6
Removing intermediate container e1c7dc094ef6
---> 2fb90af3cc3a
Step 6/11 : ADD ignore/dmc/modules /opt/cloudquery/dmc/modules
---> 64f5755ab83e
Step 7/11 : COPY target/classes/application-prod.yml ./config/application.yml
---> 024bbe6c6901
Step 8/11 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> a04332697017
Step 9/11 : EXPOSE 8002
---> Running in fb0652633b36
Removing intermediate container fb0652633b36
---> b5acf1ea6ecb
Step 10/11 : EXPOSE 8802
---> Running in bd5d1c34d64b
Removing intermediate container bd5d1c34d64b
---> c4b7fa6fc7e4
Step 11/11 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=8802","-jar","cloudquery-user.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in d51313e590d3
Removing intermediate container d51313e590d3
---> bf2a930020f5
Successfully built bf2a930020f5
Successfully tagged user:cloudquery-club-V2.2.0
Sending build context to Docker daemon 161MB
Step 1/11 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/11 : MAINTAINER lianjun "lianjun@bintools.cn"
---> Running in 23fb56316bbf
Removing intermediate container 23fb56316bbf
---> aa9481f7b501
Step 3/11 : WORKDIR /opt/cloudquery
---> Running in 1de42dc9c07d
Removing intermediate container 1de42dc9c07d
---> b7dd7ddcd9a3
Step 4/11 : RUN mkdir -p /opt/cloudquery/dmc/modules && mkdir -p /opt/cloudquery/dmc/dms_home && mkdir config
---> Running in 9e3e6b4156ce
Removing intermediate container 9e3e6b4156ce
---> 8afc18cc3e3b
Step 5/11 : ADD ignore/dmc/modules /opt/cloudquery/dmc/modules
---> 3f534f93c81f
Step 6/11 : ADD target/cloudquery-data-dict*.jar ./cloudquery-data-dict.jar
---> 7396e1a1ee6d
Step 7/11 : COPY target/classes/application-prod.yml ./config/application.yml
---> 2b94014373be
Step 8/11 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> cbcc86c8943d
Step 9/11 : EXPOSE 9191
---> Running in 33b7abe5fc19
Removing intermediate container 33b7abe5fc19
---> e90d22adf102
Step 10/11 : EXPOSE 9100
---> Running in 0d4e999a0d06
Removing intermediate container 0d4e999a0d06
---> ff61a94e587b
Step 11/11 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=9100","-jar","cloudquery-data-dict.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in 47f3b9409cf4
Removing intermediate container 47f3b9409cf4
---> 335f5fae4f74
Successfully built 335f5fae4f74
Successfully tagged data-dict:cloudquery-club-V2.2.0
Sending build context to Docker daemon 158.3MB
Step 1/11 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/11 : MAINTAINER zhiyou "jian.huang@bintools.cn"
---> Using cache
---> d33533b24031
Step 3/11 : WORKDIR /opt/cloudquery
---> Using cache
---> a36c7d68ab49
Step 4/11 : RUN mkdir -p /opt/cloudquery/dmc/modules && mkdir -p /opt/cloudquery/dmc/dms_home && mkdir config
---> Running in 17d4c5f7be69
Removing intermediate container 17d4c5f7be69
---> f9414ee93a6d
Step 5/11 : ADD ignore/dmc/modules /opt/cloudquery/dmc/modules
---> 931aea6894d9
Step 6/11 : ADD target/cloudquery-desens*.jar ./cloudquery-desens.jar
---> ca1bb6fd3e6d
Step 7/11 : COPY target/classes/application-prod.yml ./config/application.yml
---> 866c73123d19
Step 8/11 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> f63712fb10e2
Step 9/11 : EXPOSE 6202
---> Running in defa7e77cf08
Removing intermediate container defa7e77cf08
---> 10386a8c7eae
Step 10/11 : EXPOSE 6203
---> Running in 1d72029d8df3
Removing intermediate container 1d72029d8df3
---> 0b9517a32a3b
Step 11/11 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=6203","-jar","cloudquery-desens.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in a50584fed44f
Removing intermediate container a50584fed44f
---> 0c6285c465ef
Successfully built 0c6285c465ef
Successfully tagged desens:cloudquery-club-V2.2.0
Sending build context to Docker daemon 528MB
Step 1/12 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/12 : MAINTAINER zhiyou "jian.huang@bintools.cn"
---> Using cache
---> d33533b24031
Step 3/12 : WORKDIR /opt/cloudquery
---> Using cache
---> a36c7d68ab49
Step 4/12 : RUN mkdir -p /opt/cloudquery/dmc/modules && mkdir -p /opt/cloudquery/dmc/dms_home && mkdir config
---> Using cache
---> f9414ee93a6d
Step 5/12 : ADD ignore/dmc/modules /opt/cloudquery/dmc/modules
---> b6145b227132
Step 6/12 : ADD src/main/resources/DataSourceStatement.stg /opt/cloudquery/dmc/modules
---> e9ac4c90a5f1
Step 7/12 : ADD target/cloudquery-dms.jar ./cloudquery-dms.jar
---> b591a32bcb13
Step 8/12 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> ddac7fdd18ec
Step 9/12 : COPY target/classes/application-prod.yml ./config/application.yml
---> 83aa3f9a2058
Step 10/12 : EXPOSE 9001
---> Running in 601925e4e89d
Removing intermediate container 601925e4e89d
---> 4f692cd59da7
Step 11/12 : EXPOSE 9802
---> Running in 2a3eee066264
Removing intermediate container 2a3eee066264
---> db45a370b3c3
Step 12/12 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-jar","cloudquery-dms.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in a1cdfe8593f1
Removing intermediate container a1cdfe8593f1
---> 10490b0fb46d
Successfully built 10490b0fb46d
Successfully tagged dms:cloudquery-club-V2.2.0
Sending build context to Docker daemon 386.1MB
Step 1/11 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/11 : MAINTAINER zhiyou "jian.huang@bintools.cn"
---> Using cache
---> d33533b24031
Step 3/11 : WORKDIR /opt/cloudquery
---> Using cache
---> a36c7d68ab49
Step 4/11 : RUN mkdir -p /opt/cloudquery/dmc/modules && mkdir -p /opt/cloudquery/dmc/dms_home && mkdir config
---> Using cache
---> f9414ee93a6d
Step 5/11 : ADD ignore/dmc/modules /opt/cloudquery/dmc/modules
---> c546352c13ef
Step 6/11 : ADD target/cloudquery-export*.jar ./cloudquery-export.jar
---> 619df2c5cfe8
Step 7/11 : COPY target/classes/application-prod.yml ./config/application.yml
---> a08981a20c41
Step 8/11 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> 2cf3b93bad45
Step 9/11 : EXPOSE 9001
---> Running in d66a72bc0bc8
Removing intermediate container d66a72bc0bc8
---> dbd312de5ef8
Step 10/11 : EXPOSE 9803
---> Running in d48a09fc5521
Removing intermediate container d48a09fc5521
---> 7db16d4b5a28
Step 11/11 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=9803","-jar","cloudquery-export.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in 5d55134339fc
Removing intermediate container 5d55134339fc
---> 6a7df0842d60
Successfully built 6a7df0842d60
Successfully tagged export:cloudquery-club-V2.2.0
Sending build context to Docker daemon 121.8MB
Step 1/10 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/10 : MAINTAINER zhiyou "qipeng.lu@bintools.cn"
---> Running in 7d682f308838
Removing intermediate container 7d682f308838
---> 6d449362ae74
Step 3/10 : WORKDIR /opt/cloudquery
---> Running in 340ab95b7dd5
Removing intermediate container 340ab95b7dd5
---> d06ee0715f23
Step 4/10 : ADD target/cloudquery-flow*.jar ./cloudquery-flow.jar
---> f950a7a25d5f
Step 5/10 : RUN mkdir config
---> Running in d640caa4c469
Removing intermediate container d640caa4c469
---> bac2e203c398
Step 6/10 : COPY target/classes/application-prod.yml ./config/application.yml
---> 67537c5abd07
Step 7/10 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> 7a09048f8ee5
Step 8/10 : EXPOSE 9876
---> Running in cc25a20eca44
Removing intermediate container cc25a20eca44
---> 09e54c1ba1d7
Step 9/10 : EXPOSE 9877
---> Running in 738d017bd0e2
Removing intermediate container 738d017bd0e2
---> aca0e0a98d68
Step 10/10 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=9877","-jar","cloudquery-flow.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in 61bf43525a06
Removing intermediate container 61bf43525a06
---> 7c4d91244fe7
Successfully built 7c4d91244fe7
Successfully tagged flow:cloudquery-club-V2.2.0
Sending build context to Docker daemon 116.1MB
Step 1/11 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/11 : MAINTAINER zhiyou "jian.huang@bintools.cn"
---> Using cache
---> d33533b24031
Step 3/11 : WORKDIR /opt/cloudquery
---> Using cache
---> a36c7d68ab49
Step 4/11 : ADD target/cloudquery-message*.jar ./cloudquery-message.jar
---> 26170fd14fa8
Step 5/11 : RUN mkdir config
---> Running in 3a8c7b9a2443
Removing intermediate container 3a8c7b9a2443
---> 71c56c427e27
Step 6/11 : COPY target/classes/application-prod.yml ./config/application.yml
---> c9b4916ea0cc
Step 7/11 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> 39529834997e
Step 8/11 : EXPOSE 8899
---> Running in 2cef156e6fa7
Removing intermediate container 2cef156e6fa7
---> 61afeb9cc053
Step 9/11 : EXPOSE 8892
---> Running in b4d4410b5c74
Removing intermediate container b4d4410b5c74
---> e4ce66cdeb1f
Step 10/11 : EXPOSE 7090
---> Running in 31e541a6134c
Removing intermediate container 31e541a6134c
---> f1081157a8f6
Step 11/11 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=8892","-jar","cloudquery-message.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in 86ae64218e85
Removing intermediate container 86ae64218e85
---> cecf9f36db5d
Successfully built cecf9f36db5d
Successfully tagged message:cloudquery-club-V2.2.0
Sending build context to Docker daemon 113MB
Step 1/10 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/10 : MAINTAINER zhiyou "qipeng.lu@bintools.cn"
---> Using cache
---> 6d449362ae74
Step 3/10 : WORKDIR /opt/cloudquery
---> Using cache
---> d06ee0715f23
Step 4/10 : ADD target/cloudquery-gateway*.jar ./cloudquery-gateway.jar
---> ba68324cc4d6
Step 5/10 : RUN mkdir config
---> Running in 22222ec884d9
Removing intermediate container 22222ec884d9
---> 845c80c3fa4f
Step 6/10 : COPY target/classes/application-prod.yml ./config/application.yml
---> 67d133819769
Step 7/10 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> f282c4b50759
Step 8/10 : EXPOSE 8888
---> Running in e8e361bf6b84
Removing intermediate container e8e361bf6b84
---> ba7c8abbced9
Step 9/10 : EXPOSE 8889
---> Running in 1ff9e0083d20
Removing intermediate container 1ff9e0083d20
---> 67d08e686955
Step 10/10 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=8889","-jar","cloudquery-gateway.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in 0f468e451704
Removing intermediate container 0f468e451704
---> f7a9a73d3f9e
Successfully built f7a9a73d3f9e
Successfully tagged gateway:cloudquery-club-V2.2.0
Sending build context to Docker daemon 93.54MB
Step 1/9 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/9 : MAINTAINER zhiyou "jian.huang@bintools.cn"
---> Using cache
---> d33533b24031
Step 3/9 : WORKDIR /opt/cloudquery
---> Using cache
---> a36c7d68ab49
Step 4/9 : ADD target/cloudquery-debug*.jar ./cloudquery-debug.jar
---> fa561413a862
Step 5/9 : COPY target/classes/application.yml ./config/application.yml
---> 2afd7b4f0352
Step 6/9 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> 8c53b271460f
Step 7/9 : EXPOSE 8899
---> Running in 7a0294d3dfd0
Removing intermediate container 7a0294d3dfd0
---> 119203055625
Step 8/9 : EXPOSE 8890
---> Running in 44d30edea545
Removing intermediate container 44d30edea545
---> d2a9cb49d292
Step 9/9 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-Xdebug","-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=8890","-jar","cloudquery-debug.jar","--spring.config.location=/opt/cloudquery/config/application.yml"]
---> Running in 54b5edfa62fc
Removing intermediate container 54b5edfa62fc
---> c9b39ecfb814
Successfully built c9b39ecfb814
Successfully tagged debug:cloudquery-club-V2.2.0
unable to prepare context: path "./CloudQuery/audit-etl" not found
unable to prepare context: path "./CloudQuery/audit-display" not found
Sending build context to Docker daemon 140.7MB
Step 1/13 : FROM basejdkpython:8-jdk-slim-buster AS builder
---> ed637a4763c8
Step 2/13 : MAINTAINER zhiyou "yaolei.chen@bintools.cn"
---> Running in 11ff1a1b1c67
Removing intermediate container 11ff1a1b1c67
---> e88f813b16df
Step 3/13 : WORKDIR /opt/cloudquery
---> Running in 9f2a054b8c6e
Removing intermediate container 9f2a054b8c6e
---> 599c6759f30b
Step 4/13 : ADD target/cloudquery-analyze*.jar ./cloudquery-analyze.jar
---> f233c62166b2
Step 5/13 : RUN mkdir config
---> Running in 9296f1ce7aec
Removing intermediate container 9296f1ce7aec
---> e4789694c8e5
Step 6/13 : RUN mkdir script-path
---> Running in 1aff06afc22a
Removing intermediate container 1aff06afc22a
---> c4e8c16bc1c0
Step 7/13 : COPY target/classes/application-prod.yml ./config/application.yml
---> 45eb3f2c0acf
Step 8/13 : COPY target/classes/sql.properties ./config/sql.properties
---> 72abb64ac241
Step 9/13 : COPY target/classes/spring-context.xml ./config/spring-context.xml
---> 6ad9b295277a
Step 10/13 : COPY target/classes/script-path ./script-path
---> 9d638d4fed78
Step 11/13 : ADD target/sjt_agent.jar ./sjt_agent.jar
---> 36c2f83b8c95
Step 12/13 : EXPOSE 9007
---> Running in b4b5d7c648e8
Removing intermediate container b4b5d7c648e8
---> 9a5ee9b6be9d
Step 13/13 : ENTRYPOINT ["java","-javaagent:/opt/cloudquery/sjt_agent.jar","-jar","cloudquery-analyze.jar","--spring.config.location=file:/opt/cloudquery/config/application.yml"]
---> Running in 7e5695e3dc82
Removing intermediate container 7e5695e3dc82
---> 45be2be0d08b
Successfully built 45be2be0d08b
Successfully tagged analyze:cloudquery-club-V2.2.0
43b3c4e3001c: Loading layer [==================================================>] 83.87MB/83.87MB
3a8f99f3bd90: Loading layer [==================================================>] 62.03MB/62.03MB
9f803fac20f7: Loading layer [==================================================>] 3.072kB/3.072kB
42e6e8955651: Loading layer [==================================================>] 4.096kB/4.096kB
35f05d5547f4: Loading layer [==================================================>] 3.584kB/3.584kB
e36a14968fa3: Loading layer [==================================================>] 7.168kB/7.168kB
b823f0fa5eab: Loading layer [==================================================>] 76.6MB/76.6MB
Loaded image: base-web:cloudquery-club-V2.2.0
生成cloudquery运行目录
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
镜像加载完毕,正在启动...
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Creating network "resource_cloudquerynet" with driver "bridge"
Creating cloudquery-postgreSQL ... done
Creating cloudquery-clickhouse ... done
Creating cloudquery-redis ... done
Creating cloudquery-zookeeper ... done
开始初始化postgreSQL数据...
正在初始化postgreSQL数据....
初始化postgreSQL数据完成...
Creating cloudquery-desens ... done
cloudquery-desens is up-to-date
Creating cloudquery-dms ... done
Creating cloudquery-message ... done
Creating cloudquery-gateway ... done
Creating cloudquery-flow ... done
Creating cloudquery-debug ... done
Creating cloudquery-user ... done
Creating cloudquery-analyze ... done
Creating cloudquery-terminal ... done
Creating cloudquery-export ... done
Creating enterprise_web ... done
启动
3.2 查看进程
可通过如下两种方式查看进程
-- 通过docker命令查看
[root@xsky-node2 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68618d8a2b01 base-web:cloudquery-club-V2.2.0 "/docker-entrypoint.…" 56 minutes ago Up 56 minutes 80/tcp, 0.0.0.0:80->9898/tcp, 0.0.0.0:81->9999/tcp enterprise_web
3e4b39f8294b debug:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 8890/tcp, 8899/tcp cloudquery-debug
e8ee86fc4533 dms:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9001/tcp, 9802/tcp cloudquery-dms
5f1b1c152b52 user:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 8002/tcp, 8802/tcp cloudquery-user
b3eff991fc2e desens:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 6202-6203/tcp cloudquery-desens
3a849cda4bb7 export:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9001/tcp, 9803/tcp cloudquery-export
046eeb0f23a6 flow:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9876-9877/tcp cloudquery-flow
20e33e8f123b gateway:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 8888-8889/tcp cloudquery-gateway
fefd276df63a base-terminal:latest "/opt/cloudquery/ter…" 56 minutes ago Up 56 minutes 9950/tcp cloudquery-terminal
7366934b8802 analyze:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9007/tcp cloudquery-analyze
4c396281a6a1 message:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 7090/tcp, 8892/tcp, 8899/tcp cloudquery-message
a3f3edd22d74 base-redis:5.0.0 "docker-entrypoint.s…" 2 hours ago Up 58 minutes 6379/tcp cloudquery-redis
dabcf1209ac1 base-zookeeper:3.6.2 "/docker-entrypoint.…" 2 hours ago Up 58 minutes 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp cloudquery-zookeeper
20639899b5a0 clickhouse/clickhouse-server:23.3.2.37 "/entrypoint.sh" 2 hours ago Up 58 minutes 9000/tcp, 0.0.0.0:8123->8123/tcp, 9009/tcp cloudquery-clickhouse
bcc95d1519df postgres:11.8 "docker-entrypoint.s…" 2 hours ago Up 58 minutes 0.0.0.0:5432->5432/tcp cloudquery-postgreSQL
[root@xsky-node2 ~]#
[root@xsky-node2 ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68618d8a2b01 base-web:cloudquery-club-V2.2.0 "/docker-entrypoint.…" 56 minutes ago Up 56 minutes 80/tcp, 0.0.0.0:80->9898/tcp, 0.0.0.0:81->9999/tcp enterprise_web
3e4b39f8294b debug:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 8890/tcp, 8899/tcp cloudquery-debug
e8ee86fc4533 dms:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9001/tcp, 9802/tcp cloudquery-dms
5f1b1c152b52 user:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 8002/tcp, 8802/tcp cloudquery-user
b3eff991fc2e desens:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 6202-6203/tcp cloudquery-desens
3a849cda4bb7 export:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9001/tcp, 9803/tcp cloudquery-export
046eeb0f23a6 flow:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9876-9877/tcp cloudquery-flow
20e33e8f123b gateway:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 8888-8889/tcp cloudquery-gateway
fefd276df63a base-terminal:latest "/opt/cloudquery/ter…" 56 minutes ago Up 56 minutes 9950/tcp cloudquery-terminal
7366934b8802 analyze:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 9007/tcp cloudquery-analyze
4c396281a6a1 message:cloudquery-club-V2.2.0 "java -javaagent:/op…" 56 minutes ago Up 56 minutes 7090/tcp, 8892/tcp, 8899/tcp cloudquery-message
a3f3edd22d74 base-redis:5.0.0 "docker-entrypoint.s…" 2 hours ago Up 58 minutes 6379/tcp cloudquery-redis
dabcf1209ac1 base-zookeeper:3.6.2 "/docker-entrypoint.…" 2 hours ago Up 58 minutes 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp cloudquery-zookeeper
20639899b5a0 clickhouse/clickhouse-server:23.3.2.37 "/entrypoint.sh" 2 hours ago Up 58 minutes 9000/tcp, 0.0.0.0:8123->8123/tcp, 9009/tcp cloudquery-clickhouse
bcc95d1519df postgres:11.8 "docker-entrypoint.s…" 2 hours ago Up 58 minutes 0.0.0.0:5432->5432/tcp cloudquery-postgreSQL

还可以使用cloudquery.sh脚本来查看,如下所示:
-- root用户
[root@xsky-node2 ~]# cd /cloudquery/
[root@xsky-node2 cloudquery]# ./cloudquery.sh status
Name Command State Ports
---------------------------------------------------------------------------------------------------------------------
cloudquery-clickhouse /entrypoint.sh Up 0.0.0.0:8123->8123/tcp, 9000/tcp, 9009/tcp
cloudquery-postgreSQL docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp
cloudquery-redis docker-entrypoint.sh redis ... Up 6379/tcp
cloudquery-zookeeper /docker-entrypoint.sh zkSe ... Up 0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp
Name Command State Ports
-------------------------------------------------------------------------------------------
cloudquery-analyze java -javaagent:/opt/cloud ... Up 9007/tcp
cloudquery-debug java -javaagent:/opt/cloud ... Up 8890/tcp, 8899/tcp
cloudquery-desens java -javaagent:/opt/cloud ... Up 6202/tcp, 6203/tcp
cloudquery-dms java -javaagent:/opt/cloud ... Up 9001/tcp, 9802/tcp
cloudquery-export java -javaagent:/opt/cloud ... Up 9001/tcp, 9803/tcp
cloudquery-flow java -javaagent:/opt/cloud ... Up 9876/tcp, 9877/tcp
cloudquery-gateway java -javaagent:/opt/cloud ... Up 8888/tcp, 8889/tcp
cloudquery-message java -javaagent:/opt/cloud ... Up 7090/tcp, 8892/tcp, 8899/tcp
cloudquery-terminal /opt/cloudquery/terminal - ... Up 9950/tcp
cloudquery-user java -javaagent:/opt/cloud ... Up 8002/tcp, 8802/tcp
Name Command State Ports
------------------------------------------------------------------------------------------------------------
enterprise_web /docker-entrypoint.sh ngin ... Up 80/tcp, 0.0.0.0:80->9898/tcp, 0.0.0.0:81->9999/tcp
状态

3.3 启停CloudQuery
可以使用如下方式启停CloudQuery
-- root用户
[root@xsky-node2 cloudquery]# ./cloudquery.sh stop
Stopping enterprise_web ... done
Removing enterprise_web ... done
Network resource_cloudquerynet is external, skipping
Stopping cloudquery-terminal ... done
Stopping cloudquery-export ... done
Stopping cloudquery-analyze ... done
Stopping cloudquery-user ... done
Stopping cloudquery-message ... done
Stopping cloudquery-debug ... done
Stopping cloudquery-flow ... done
Stopping cloudquery-gateway ... done
Stopping cloudquery-dms ... done
Stopping cloudquery-desens ... done
Removing cloudquery-terminal ... done
Removing cloudquery-export ... done
Removing cloudquery-analyze ... done
Removing cloudquery-user ... done
Removing cloudquery-message ... done
Removing cloudquery-debug ... done
Removing cloudquery-flow ... done
Removing cloudquery-gateway ... done
Removing cloudquery-dms ... done
Removing cloudquery-desens ... done
Network resource_cloudquerynet is external, skipping
停止除resource之外的服务
[root@xsky-node2 cloudquery]#
[root@xsky-node2 cloudquery]# ./cloudquery.sh start
cloudquery-clickhouse is up-to-date
cloudquery-zookeeper is up-to-date
cloudquery-postgreSQL is up-to-date
cloudquery-redis is up-to-date
等待postgreSQL数据库启动...
postgreSQL数据库启动完成...
Creating cloudquery-message ... done
Creating cloudquery-analyze ... done
Creating cloudquery-flow ... done
Creating cloudquery-export ... done
Creating cloudquery-gateway ... done
Creating cloudquery-dms ... done
Creating cloudquery-terminal ... done
Creating cloudquery-debug ... done
Creating cloudquery-desens ... done
Creating cloudquery-user ... done
Creating enterprise_web ... done
启动

3.4 排查日志
可以通过如下方法来查看应用相关日志
[root@xsky-node2 ~]# docker logs -f --tail 200 cloudquery-dms

四、登录CloudQuery
CloudQuery安装部署后,默认使用80端口,可通过http://IP:端口(默认 80)进行页面登录。
使用如下默认账号和密码登录控制台。
默认帐号: admin001
默认密码: Hello123$

登录后的控制台主界面如下:

五、附录
安装部署过程中,可能会遇到如下问题
5.1 服务器上原已安装redis
我初次安装时其中一台服务器出现了如下报错。
ERROR: for redis Cannot start service redis: driver failed programming external connectivity on endpoint cloudquery-redis (c9d193b21566f6174e7328a8b214b37e0df0e86088f9057f1aab441aa0f5ab17): Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use
ERROR: Encountered errors while bringing up the project.
CloudQuery内部通讯需要使用Redis,如果已安装了Redis,会因端口导致冲突,为此,可通过如下方式进行调整:
# cd /cloudquery/resource/
--修改 docker-compose.yml 文件
-- 注释 redis的端口,如下所示

然后通过:cloudquery.sh stop/start 启停服务
5.2 docker版本过低
如果安装CloudQuery的服务器已安装了Docker,但版本过低,会导致安装失败,如下所所示。
[root@xsky-node2 cloudquery-club-V2.2.0]# ./deploy.sh install
请输入cloudQuery安装绝对路径(默认为/opt/cloudquery):
/opt/cloudquery
setenforce: SELinux is disabled
输入路径为无效文件夹,使用默认路径:/opt/cloudquery
docker 已安装
docker版本小于19,无法运行cloudQuery。请安装新版本docker与docker-compose。
[root@xsky-node2 cloudquery-club-V2.2.0]# docker --version
Docker version 18.09.9, build 039a7df9ba

安装新版CloudQuery V2 要求Docker 版本不能低于 19.03.12,如果服务器未安装Docker,安装CloudQuery后安装的Docker版本是19.03.12。
此时可有两种解决办法:
一是升级docker版本,二是完全卸载当前docker,使用软件自动安装的Docker.
5.3 服务器未安装docker-compose
如果服务器安装了Docker,且版本不低于CloudQuery要求的版本,但未安装docker-compose,也会导致安装失败
此时可以采用完全卸载服务器上的Docker,或者单独安装docker-compose至合适版本,然后重新执行deploy.sh进行软件安装
5.4 软件安装后无法页面登录
有时会遇到软件安装后,进程也都正常,但使用http://IP:端口 却无法访问:

此时通过netstat -ano|grep 80 看到 80端口未被监听

通过telnet IP:80 也无法登录。
此时可通过如下方法解决:
1) 编辑 /etc/sysconfig/network 文件
修改NETWORKING_IPV6=no
2) 编辑 /etc/default/grub 文件, 在GRUB_CMDLINE_LINUX=“添加ipv6.disable=1 后面保存不变”,如下所示:
[root@xsky-node2 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
3) 重启网卡和服务器
service network restart
shutdown -r 0
如上操作后,正常情况可打开控制台页面。




