环境:centos7
目标:kong【v2.1.0】,postgresql【v10.13】,konga(kong开放管理),AdminApi(psql监控管理)
一、安装依赖包
(1)安装gcc编译环境
$ yum install -y gcc gcc-c++
(2)pcre安装(nginx 的 http 库使用 pcre 解析正则表达式)
$ yum install -y pcre pcre-devel
(3)zlib安装(zlib 库提供多种压缩和加压缩的方式)
$ yum install -y zlib zlib-devel
(4)openssl安装(openssl 是一个请打的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议)
$ yum install -y openssl openssl-devel
二、postgresql 部署
PostgreSQL是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本。可靠性是PostgreSQL的最高优先级。Kong 默认使用 postgresql 作为数据库。
注意:这里安装kong的版本是2.1.0,选择官网最新的一个版本,官网对0.14对应的psql版本需要在v10+,否则启动kong会报错;
(1)先打开psql的官网:https://www.postgresql.org/download/linux/redhat/
(2)按照官网中选择与系统匹配的参数,得到按照步骤
(3)安装存储库RPM:yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
(4)下载并安装postgresql10-server版本:yum install postgresql10-server
(5)初始化数据库:/usr/pgsql-10/bin/postgresql-10-setup initdb
(6)设置成centos7开机自启动:systemctl enable postgresql-10.service
(7)启动postgresql服务:systemctl start postgresql-10.service
(8)查看psql运行状态:systemctl status postgresql-10.service
三、postgresql(kong数据库初始化)
(1)上面第二步【postgresql部署】部署任务的postgresql初始化的过程会自动创建两个用户和一个数据库:
① linux 系统用户 postgres(管理数据库的系统用户,修改初始密码:passwd postgres,输入: postgres);
② postgresql 用户 postgres(数据库超级管理员);
③ 数据库 postgres(用户postgres的默认数据库);
密码由于是默认生成的,需要在系统中修改一下。
(2)创建kong用户(为了安全以及满足 Kong 初始化的需求,需要在建立一个 postgre 用户 kong 和对应的 linux 用户 kong,并新建数据库 kong)
① 新建 linux kong 用户:adduser kong
② 使用管理员账号登录 psql 创建用户和数据库;
# 切换 postgres 用户后,提示符变成 `-bash-4.3$`
$ su postgres
# 进入psql控制台,此时会进入到控制台(系统提示符变为'postgres=#')
bash-4.2$ psql
# 建立新的数据库用户(和之前建立的系统用户要一样)
postgres=# create user kong with password 'kong';
# 为新用户建立数据库
postgres=# create database kong owner kong;
# 把新建的数据库权限赋予 kong
postgres=# grant all privileges on database kong to kong;
# 退出控制台
postgres=# \q
bash-4.2$ exit;
注意:在 psql 控制台下执行命令,一定记得在命令后添加分号。
四、postgresql核心配置(修改点,需要关注)
(1)postgres的对外访问策略
认证权限配置文件为 /var/lib/pgsql/10/data/pg_hba.conf,将6项配置修改为如下:
如果考虑到集群或者外网都能访问psql需要增加一行配置,如下:
host all all 0.0.0.0/0 trust
0.0.0.0/0 是没有绑定IP和端口,安全性是要慎重考虑
(2)pgsql开启远程访问
修改配置文件 /var/lib/pgsql/10/data/postgresql.conf,将 listen_address去掉注释并设置值为 '*'
$ vim var/lib/pgsql/10/data/postgresql.conf
listen_addresses = '*' # what IP address(es) to listen on;
(3)修改以上两个配置文件后,重启postgresql服务:
$ systemctl restart postgresql-10.service (若起不来,删除它的/root/data/postmaster.pid文件重试)
(4)检查数据库是否正常
$ psql -U kong -d kong -h 127.0.0.1 -p 5432
kong=> \q 然后\q退出
五、kong部署
(1)收索kong版本包URL,找到最新的2.1.0版本(这块坑很多,我没按照官网的来)
网站:https://kong.bintray.com/kong-rpm ,在最下面找到下载的URL
(2)根据第一步获取的URL执行下载操作:
yum install https://kong.bintray.com/kong-rpm/centos/7/kong-2.1.0.el7.amd64.rpm
(3)新建并修改 kong 的配置文件(默认配置文件位于 /etc/kong/kong.conf.default):
$ cp /etc/kong/kong.conf.default /etc/kong/kong.conf
将之前安装配置好的 postgresql 信息填入 kong 配置文件中:
$ vi /etc/kong/kong.conf
① 开放管理API的IP和端口(0.0.0.0/0 是没有绑定IP和端口,安全性是要慎重考虑)
② 修改psql通讯连接部分
(4)初始化生成数据库表
$ kong migrations up -c /etc/kong/kong.conf
(5)启动kong服务(--vv 可以打印更多的启动日志)
$ kong start -c /etc/kong/kong.conf --vv
(6)测试kong是否正确启动
$ curl 127.0.0.1:8001
(7)停止 KONG
$ kong stop
注意:kong的端口大全 https://docs.konghq.com/enterprise/2.1.x/deployment/default-ports/
六、konga部署
Konga是使用NodeJS开发的项目,因此需要下载源码并安装。受网速影响,整个安装配置过程大约持续30~90分钟之间。
(1)npm环境安装
$ npm install npm@latest -g
(2)nodeJS环境安装
$ n 12.18.3 (比如:官网最新版本号是V12.18.3,不建议这种按照,konga不想用root去安装)
采用自定义安装方式如下:
① nodeJS官网下载:http://nodejs.cn/download/ ,选择最新地址进行下载
② 环境变量配置,需要在root环境和public用户(public用户是来作为konga部署的账户)
$ vi /etc/profile (root用户下配置)
$ vi .bash_profile (public用户下配置)
export NODE_HOME=/home/public/node-v12.18.3-linux-x64
export PATH=$NODE_HOME/bin:$PATH
③ 验证版本号(npm -v ; node -v)
(3)konga安装
① 安装前准备
$ sudo npm install -g gulp
$ sudo npm install -g bower
$ sudo npm install -g sails
② 下载及安装
$ git clone https://github.com/pantsel/konga.git
$ cd konga
$ npm install konga
③ konga管理kong是需要数据库,数据库可以现在mysql或者postgressql,以下用postgressql举例:
# 切换 postgres 用户后,提示符变成 `-bash-4.3$`
$ su postgres
# 进入psql控制台,此时会进入到控制台(系统提示符变为'postgres=#')
bash-4.2$ psql
# 建立新的数据库用户(和之前建立的系统用户要一样)
postgres=# CREATE USER konga WITH PASSWORD 'konga';
# 为新用户建立数据库
postgres=# CREATE DATABASE konga OWNER konga;
# 把新建的数据库权限赋予 kong
postgres=# grant all privileges on database kong to konga;
# 退出控制台
postgres=# \q
bash-4.2$ exit;
④ postgressql数据库的初始化
$ node ./bin/konga.js prepare --adapter postgres --uri postgresql://konga:[email protected]:5432/konga
⑤ 配置konga的配置文件
# 进入目录
$ cd konga/
# 复制配置文件模板为.env
$ cp -r .env_example .env
# 配置文件中配置数据库连接信息,工程启动IP和端口等信息
$ vi .env
⑥ 启动运行(根据个人喜好的方式,以npm命令运行)
$ npm run production & (&后台启动)
启动成功后打开http://localhost:1377 能正常访问,如果需要停止运行则如下操作:
(4)注意:启动后可能会遇到如下几种错误;
① sass相关的错误,一般是node与npm版本过低,需要更新,注意环境变量;
② 很多网上建议采用pm2安装模式,经过验证都没有成功,不建议使用,最后跟着是问题一引起;
③ 下载konga后执行npm install时会遇到编译卡死或者其它网络异常,可以采用如下代理配置:
1. 查看当前镜像: npm config get registry (原始的下载地址 https://registry.npmjs.org/)
2. 如果不是淘宝的,更换为淘宝镜像:npm config set registry https://registry.npm.taobao.org
最终是有个界面登录成功后,配置kong的8001开放URL后,如下页面:
七、postgresql的监控服务adminApi部署
参考官网https://www.pgadmin.org/download/pgadmin-4-rpm/ 的操作说明,这里仅对英文做相应的翻译:
(1)Redhat or CentOS下载地址:
sudo rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-1-1.noarch.rpm
(2) 以下三种选择一种即可
① 桌面和Web模式安装(首选)
sudo yum install pgadmin4
② 仅在桌面模式下安装
sudo yum install pgadmin4-desktop
③ 仅在Web模式下安装
sudo yum install pgadmin4-web
(3)最后,如果已安装pgadmin4或pgadmin4-web,请运行Web设置脚本以将系统配置为以Web模式运行:
sudo /usr/pgadmin4/bin/setup-web.sh