物联网网关神器 Kong ( 三 ) - 图形化管理界面 Konga
前言
上文我们我们讲了 Kong 的安装和利用 Kong 的 HTTP/REST API 来进行配置。但总是使用 CURL 命令去调用 HTTP 接口来进行配置却又太过复杂。
读到这,不知道你是否和我有一样的想法:
可以开发一个图形化管理界面,通过调用接口来实现简便操作的功能。
Konga 就帮我们来实现了这个功能,通过搭建 Konga 服务器可以管理多个 Kong ,并实现图形化界面配置。下文我们将会讲解如何安装 Konga,并通过 Konga 配置来讲解 Kong 的各个模块的功能与设计。
利用 Docker 安装 Konga
下面我们将利用 Docker 来安装 Konga, 如果你没有或者不知道什么是Docker,请点击传送门
获取 Konga 镜像
docker pull pantsel/konga
准备数据库
由于 Konga 需要数据库支持,在这里我们使用 Postgres 来进行配置其数据库。
docker run -d \
--name kong-db \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
- network=kong-net 该网络在创建 Kong 的时候创建的,使得 Konga 和 Kong 在同一网络内。
准备初始化数据库
在运行 Konga 前,我们需要把 Konga 运行所需要的一些表结构创建出来。
docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:kong@< your ip >:5432/konga_db
排坑指南:
这里有指定Postgres 的版本是 9.6,由于版本兼容问题,如果你使用最新版本的 Postgres 在初始化数据库的时候会报错。
运行 Konga
经过繁杂的准备工作,我们终于要运行 Konga 了。
docker run -d -p 1337:1337 \
--network {{kong-network}} \ // 可选的
--name konga \
-e "NODE_ENV=production" \ // or "development" | defaults to 'development'
-e "TOKEN_SECRET={{somerandomstring}}" \
pantsel/konga
- network : 最好和 Kong 在同一网络
- TOKEN_SECRET : 一串随机字符串
登陆 Web 页面
经过复杂繁琐的过程,我们已经将 Konga 安装完毕。 接下来我们访问 1337 端口来看一下 Konga 的图形化界面。
创建管理员账户
当我们打开 Konga 的 Web 页面,迎面而来的就是让你创建一个管理员帐号。
- Email : 日后如果有需要,会将报警内容发送至该邮箱。
登陆
当注册成功后,会自动跳转登陆界面。你需要输入刚才注册的用户名和密码。
主界面
登陆成功后我们将看到其主界面的欢迎页面。
左侧边栏简单介绍讲解:
- DASHBOARD : Konga 的仪表盘,当我们接下来绑定了 Kong 以后将会展示。
- USERS : 用户管理
- CONNECTIONS : Kong 的连接管理,也就是说一个 Konga 可以管理多个 Kong API Gateway.
- SNAPSHOTS : 现存的节点的快照
- SETTING 设置
绑定 Kong
由图可见,我们可选择四种方式来连接我们的Kong API Gateway。由于直接暴露管理端口存在风险,所以我们可以采取多种措施来保护管理端口,进行安全连接。
- 默认 :直接通过调用Kong 暴露出的 admin 管理接口来进行连接。( 不推荐 )
- Key AUTH : 使用 Kong 的 Key Authentication 插件来进行验权。
- JWT :使用 Kong 的 JWT 插件来进行验权。
- BASIC AUTH :使用 Kong 的 BASIC AUTH 插件来进行验权。
默认连接
我们首先使用默认连接的方式来连接我们的 Kong 服务。
首先输入名称和管理端口的URL。
连接成功后会自动跳转至 Dashboard 界面。
Dashboard 界面讲解
仪表盘 ( Dashboard )就像汽车的显示台一样,展示出一些对现有数据和信息的汇总分析。可以帮助快速了解服务情况。
- CONNECTIONS : 该模块展示了现在所有连接的数量统计,例如总共连接数、现在正在连接的连接数等。
- NODE INFO : 该模块展示了 Kong 服务的基本信息。 如 Kong 版本、Lua 脚本版本、监听端口等。
- TIMERS : 该模块展示了现在各计时器的数量和所处的状态。
- DATASTORE INFO :该模块展示了 Konga 所连接的数据库基本信息。如数据库名称、用户名等。
- PLUGINS : 该模块展示了 Kong 服务所使用的插件。
总结
本篇文章对 Kong 的GUI 图形化界面 Konga 进行了简要的讲解,并讲解了利用 Docker 进行安装 Konga。 安装成功后使用默认连接连接到 Kong。
但是这种默认连接是不安全的。我们下篇文章将会介绍如何在生产环境中连接 Konga,并介绍几种插件的使用。