Centos7部署kong、konga、postgresql及adminApi

环境: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/Centos7部署kong、konga、postgresql及adminApi_第1张图片

(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项配置修改为如下:

  Centos7部署kong、konga、postgresql及adminApi_第2张图片

  如果考虑到集群或者外网都能访问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

          Centos7部署kong、konga、postgresql及adminApi_第3张图片

  (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和端口,安全性是要慎重考虑)

           Centos7部署kong、konga、postgresql及adminApi_第4张图片

          ② 修改psql通讯连接部分

          Centos7部署kong、konga、postgresql及adminApi_第5张图片

    (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/

      Centos7部署kong、konga、postgresql及adminApi_第6张图片

六、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/ ,选择最新地址进行下载
          Centos7部署kong、konga、postgresql及adminApi_第7张图片

           ② 环境变量配置,需要在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

                Centos7部署kong、konga、postgresql及adminApi_第8张图片

             ⑥ 启动运行(根据个人喜好的方式,以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后,如下页面:

Centos7部署kong、konga、postgresql及adminApi_第9张图片

   七、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

Centos7部署kong、konga、postgresql及adminApi_第10张图片

你可能感兴趣的:(系统运维)