Skip to main content

快速入门

依赖

建议使用64位操作系统,建议使用Linux/MacOS
JDK版本:17

1、Checkout源代码

从Github上获取主分支代码:

git clone https://github.com/hitsz-ids/argus.git
cd argus
export ARGUS_HOME=$(pwd)

2、配置证书

Argus的扩展模块与Server之间的通信使用证书加密,在服务启动前,需要生成并配置好证书。一般来说,CA证书仅生成一次,后续不同的扩展使用该CA生成即可。

2.1 生成证书

生成证书脚本在argus/certificate下,执行脚本即可生成对应的证书,证书输出目录在argus/output目录里。

./certificate/generate.sh

2.2 配置证书

将生成的扩展证书文件COPY到Server证书目录下,需要在Server证书目录下新建module目录,然后在module目录下创建扩展目录。

mkdir -p output/center/module/demo
cp output/module/module.pem output/center/module/demo

3、配置Argus Http Server

Argus HTTP Server同时接收外部请求和处理转发内部请求。底层使用Spring Boot接收外界请求,需要配置application.yml。

export ARGUS_RESOURCES_PATH='argus-http-server/src/main/resources'

cp ${ARGUS_RESOURCES_PATH}/application.yml.template ${ARGUS_RESOURCES_PATH}/application.yml

同时也需要配置argus-center.properties,执行以下命令或使用Vim等工具进行编辑:

cp ${ARGUS_RESOURCES_PATH}/argus-center.properties.template ${ARGUS_RESOURCES_PATH}/argus-center.properties

echo '' > ${ARGUS_RESOURCES_PATH}/argus-center.properties
echo "ca.public=${ARGUS_HOME}/output/ca/ca.pem" >> ${ARGUS_RESOURCES_PATH}/argus-center.properties
echo "server.port=9999" >> ${ARGUS_RESOURCES_PATH}/argus-center.properties
echo "server.public=${ARGUS_HOME}/output/center/center.pem" >> ${ARGUS_RESOURCES_PATH}/argus-center.properties
echo "server.pkcs8=${ARGUS_HOME}/output/center/center-pkcs8.key" >> ${ARGUS_RESOURCES_PATH}/argus-center.properties
echo "server.module.pub.dir=${ARGUS_HOME}/output/center/module" >> ${ARGUS_RESOURCES_PATH}/argus-center.properties
echo "modules=module://demo?version=1.0.0;2.0.0" >> ${ARGUS_RESOURCES_PATH}/argus-center.properties

4、配置扩展 - demo

接入的功能扩展需要配置argus-module.properties内容:

export ARGUS_DEMO_RESOURCES_PATH='extension/demo/src/main/resources'

cp ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties.template ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties

echo '' > ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties
echo "center.host=127.0.0.1" >> ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties
echo "center.port=9999" >> ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties
echo "module.name=demo" >> ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties
echo "module.version=1.0.0" >> ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties
echo "module.public=${ARGUS_HOME}/output/module/module.pem" >> ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties
echo "module.pkcs8=${ARGUS_HOME}/output/module/module-pkcs8.key" >> ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties
echo "ca.public=${ARGUS_HOME}/output/ca/ca.pem" >> ${ARGUS_DEMO_RESOURCES_PATH}/argus-module.properties

5、编译

使用Maven编译Argus源码:

mvn clean install -DskipTests

如果您的JDK版本不是17,将会编译失败,请确保版本正确。如果您不知道当前JDK版本,可以执行以下命令查看:

mvn -v

6、启动

在编译成功后,可以启动Argus Server和Demo扩展。启动脚本在bin目录下,需要进入到该目录执行脚本。

6.1 启动Argus Server

bin/argus start

6.2 启动Demo扩展

bin/argus startExtension

7、访问

启动成功后,使用curl访问Argus的demo插件扩展,查看返回结果:

curl -X POST -H "Content-Type: application/json" -d "{\"path\":\"demo/1.0.0/api/test/returns\",\"params\":{\"foo\":\"bar\"}}" http://localhost:9000/argus/entry && echo

8、IDE启动

建议使用IntelliJ IDEA查看和运行Argus代码。 使用IDEA运行代码同样需要经过上述配置证书、配置Argus Http Server、配置扩展几个步骤。

8.1 启动类说明

目前的Argus的启动类主要有两类:Argus Server和扩展插件。在使用时,可以启动Demo扩展插件测试Argus。启动类如下:

  • ArgusServer启动类:io.ids.argus.entry.Application
  • Demo插件扩展启动类:io.ids.argus.extension.demo.DemoApplication

依次启动上述两个启动类,等待启动成功日志打印即可。

8.2 访问调用

可参考第7点或者使用Postman等工具进行访问测试,目前WebUI正在规划中,后续将可以直接启动WebUI进行测试。
如果您使用Postman,可以Post请求:http://localhost:9000/argus/entry
参数为JSON格式,测试参数如下:

{
"path": "demo/1.0.0/api/test/returns",
"params": {
"key": "value"
},
"customized": {
"foo": "bar"
}
}