Apusic文档中心
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
文档中心
  • 金蝶Apusic应用服务器

  • 金蝶Apusic负载均衡器

    • 产品白皮书
    • 产品更新说明
    • V2.0.5企业版(最新)

    • V2.0.5标准版(最新)

    • V2.0.2标准版

    • V2.0.2敏捷版

    • V2.0.1标准版

    • V2.0.1敏捷版

    • V2.0.0标准版

      • 产品简介
      • 产品白皮书
      • 安装手册
      • 用户手册
      • 快速入门
      • 运维手册
    • V2.0.0敏捷版

    • V2.0.2服务网关

  • 金蝶Apusic分布式消息队列

  • 金蝶Apusic分布式缓存

  • 金蝶Apusic分布式配置中心

  • 金蝶Apusic Java开发工具包软件

  • 金蝶Apusic全文检索

运维手册

# ALB快速入门运维

本快速入门指南介绍了金蝶Apusic负载均衡软件v2.0标准版产品安装、启动、卸载、管理与使用等基本操作,为用户快速使用本产品提供指导

# ALB产品介绍

金蝶Apusic负载均衡软件(Apusic Load Balance,ALB)是一款具备高性能、高可用性和可扩展性的流量治理软件。ALB能够应对大规模的集群、云平台在面向客户端提供服务时,对客户端访问请求和流量管理的需求,实现访问请求的验证、处理、转换和分发等操作,从而隔离客户端访问对提供服务的应用系统、平台以及资源的直接影响,达到对服务集群访问流量控制、访问管理和负载均衡的目的。

基本概念

在正确使用应用服务器来部署、管理应用之前,需要先理解以下几个基本概念:

ALB:Apusic Load Balance,金蝶Apusic负载均衡软件。

  • 安装与使用
  • 安装前准备
  • 获取安装包

从http://www.apusic.com/下载金蝶Apusic负载均衡软件v2.0安装包,或从金蝶Apusic负载均衡软件产品光盘中获得相应的安装包文件。

支持的环境

平台类型 系统类型
芯片类型 鲲鹏、飞腾、龙芯、兆芯、X86等
国产操作系统 银河麒麟系列、中标麒麟系列、中科红旗、深度等
其他Linux系列 RedHat系列、CentOS、Suse Linux系列等

# 产品安装

下面以ARM架构下Kylin系统上安装ALB为例,下载好安装文件alb-standard-2.0-arm.tar.gz后,其安装步骤有:

  1. 解压安装包
  2. 导入license
  3. 启动

# 解压安装包到指定目录

  1. 解压安装包并安装
  2. 切换至root用户。
  3. 上传安装包至安装服务器的/opt目录下。
  4. 解压安装包:tar -zvxf alb-standard-2.0-arm.tar.gz 获得alb-standard-2.0文件夹。
  5. 进入解压后的文件夹: cd alb-standard-2.0-arm。

备注:默认的安装路径为/opt/目录(支持安装在任意目录)。

# 导入license

ALB标准版支持金蝶天燕认证、金蝶KBC认证、金蝶统一授权三种模式,默认授权类型为金蝶KBC授权。。

金蝶KBC授权和本地授权,请把授权文件放置在安装目录/alb-standard文件夹下,

  1. 授权类型配置

alb授权类型的配置文件为:安装目录/alb-standard/conf/alb_license.conf

license kbc license.lic;  # 使用KBC授权模式,授权文件为license.lic
1
  1. 授权类型配置格式

语句格式规范: license [授权类型] [授权文件或地址];

  1. 不同授权类型及其配置说明
  • local: 表示金蝶天燕本地授权,后面需要紧跟授权文件。
    • 如:license local license.xml;,
    • 把本地授权文件license.xml放置在安装目录/alb-standard文件夹下。
  • kbc: 表示金蝶KBC授权,后面需要紧跟授权文件。如:license kbc license.lic;,
    • KBC特征码获取:1、直接启动,2、授权配置文件写:license kbc;
    • 执行ALB启动./bin/start-alb.sh脚本,获取授权码: KBC auth: Auth Code is: SZTY2500879438。
    • 授权码为SZTY开头的内容,如上为:SZTY2500879438
    • 使用授权码在KBC系统中申请授权文件。
    • 获取授权文件后,放入安装目录/alb-standard,并确认授权文件名和alb_license.conf配置一致(如上为license.lic文件),重启ALB即可。
    • 注:在多网卡多ip环境中,可以通过-ac参数指定网卡或ip,如license kbc license-file.lic -ac eth0
  • center: 表示金蝶天燕统一授权中心,后面需要跟授权服务器地址(IP:端口)、租户名称和命名空间。如:license center 172.21.33.33:6789 tenant namespace;
    • 如果租户名称不确定,可以填写为public。
  1. 通过环境变量设置统一授权配置 alb支持环境变量中设置统一授权的配置,如下关键项:
export apusic_acls_enable=true                 # 开启变量统一授权
export apusic_acls_authUrls=172.24.3.116:6869  # 统一授权中心地址
export apusic_acls_ns=后付费                    # 命名空间 
export apusic_acls_tenant=user_env中文          # 租户名称 
1
2
3
4

# 启动、停止、重新加载

  • 启动: ./bin/start-alb.sh
  • 停止: ./bin/stop-alb.sh
  • 重新加载: ./bin/reload-alb.sh

# 常见问题解决

# 产品端口修改

若系统已有服务占用了80、443、9000端口,会导致alb启动失败,可以通过配置修改端口。

# 修改http或https的端口

  1. 修改配置文件:安装目录/alb-standard/conf/config.yaml
  2. 修改配置文件内容:
soft: ALB/2.0.1
alb:
  admin_key:
    - name: "admin"
      key: edd1c9f034335f136f87ad84b625c8f1  # using fixed API token has security risk, please update it when you deploy to production environment
      role: admin
  node_listen: 80       # http默认的网关访问入口

  ssl:
    listen_port: 443    # https访问网关的入口
1
2
3
4
5
6
7
8
9
10
  1. 如上,修改对应的node_listen、ssl.listen_port端口即可。
  2. 重新启动ALB: ./bin/start-alb.sh

# 修改WEB管理控制台端口

  1. 修改配置文件:安装目录/alb-dashboard/conf/config.yaml
  2. 修改配置文件内容:
conf:
  listen:
    host: 0.0.0.0
    port: 9000  # WEB管理控制台默认端口
1
2
3
4
  1. 如上,修改对应的listen.port端口即可。
  2. 重新启动ALB: ./bin/start-alb.sh

# DNS is Empty(缺失dns服务器)

所在机器环境无DNS,则需要手动开启内置的DNS配置。

配置文件地址:安装目录/alb-standard/conf/config.yaml

去掉前面的注释,即可开启DNS。

注意dns_resolver对齐到上面的enable_control

alb:
  enable_control: false  #开启会监听9090端口。

# 如果出现 local DNS is empty,那么把下面三行注释去掉即可,注意对齐到上面的enable_control。
  dns_resolver:
    - 8.8.8.8
    - 114.114.114.114
php:
  php_enable: false
1
2
3
4
5
6
7
8
9

# ALB迁移nginx配置文件

ALB支持兼容nginx的server、upstream等配置内容,可以直接把对应匹配提取问单独的配置,并开启alb导入nginx配置,进行导入即可。

# 开启支持导入nginx的配置文件

  • 修改配置文件,支持导入nginx配置文件
nginx_config_include:
  nginx_config_include_enable: true     # 开启nginx配置导入
  nginx_config_include_path: "安装目录/alb-standard/conf/nginx_conf/*.conf"  #待导入的nginx配置文件存放文件夹
1
2
3
  • 创建安装目录/alb-standard/conf/nginx_conf目录,mkdir conf/nginx_conf

# 导入nginx配置文件

根据上面创建的nginx配置存放文件夹:安装目录/alb-standard/conf/nginx_conf/,把nginx的upstream或者server块内容的配置文件即可。如下配置 nginx_test.conf

注:

  1. 配置文件仅支持server和upstream块内容。

# 国密支持

国密算法仅可通过Nginx配置文件实现,具体操作方法为:

  1. 开启ALB支持Nginx Server配置块导入
  2. 编写国密证书的Server内容文件并放入配置文件夹
  3. 重启ALB

# 开启ALB支持Nginx Server配置块导入

  1. 进入ALB安装目录,编辑安装目录/alb-standard/conf/config.yaml文件,设置nginx_conf_include_enable 修改为true,并确定nginx配置文件目录

  1. 创建配置导入目录: mkdir 安装目录/alb-standard/conf/nginx_conf

# 编写国密证书的Server内容文件并放入配置文件夹

编写国密双证书的server.conf文件,并放入安装目录/alb-standard/conf/nginx_conf,如下图为样例:

导入完后,重启ALB生效

# 非root启动ALB

很多客户要求使用非root启动alb,在使用root用户安装完毕alb标准版后,可以通过修改安装包的权限使得alb可以使用非root用户启动。

  1. 使用root用户安装完毕alb标准版
  2. 安装目录使用chown修改权限
  3. 修改alb进程配置的用户为非root
  4. 修改alb进程权限,支持非root监听80端口
  5. 导入license并启动。

# 安装目录使用chown修改权限

  1. 使用useradd创建用户alb_app,如果已经有用户,则使用已经有的用户名
  2. 使用chown修改alb安装目录拥有者为目标用户
chown -R alb_app:alb_app alb-2.0-kylin-x86
chown -R alb_app:alb_app /opt/alb-apusic
1
2

# 修改alb进程配置的用户为非root用户名

  1. 切换到非root用户alb_app,su alb_app
  2. 使用vim修改文件: vim 安装目录/alb-standard/conf/config-default.yaml

# 修改alb进程权限,支持非root监听80端口

  1. 切换到root用户
  2. 使用命令: setcap cap_net_bind_service=+eip /opt/alb-apusic/openresty/nginx/sbin/nginx
  3. 切换回目标用户alb_app
  4. 重启ALB即可

# http配置项的导入

由于上面的ALB迁移nginx配置文件只能导入server、upstream块内容,如果需要修改http块里面的内容,可以通过以下方式实现。

  1. 编辑配置安装目录/alb-standard/conf/config.yaml文件。
  2. 添加nginx配置。
  3. 写入指定的http配置内容,还需要注意不能添加的内容。
  4. 不能添加的内容通过修改安装目录/alb-standard/conf/config-default.yaml直接修改。
  5. 修改完毕后,重启ALB即可生效,如果有错误,则校验yaml文件格式或者添加内容冲突了

# 编辑并添加http内容

下面以添加http中的senfile、tcp_nodelay等配置为例

注意: 使用yaml格式进行格式化,缩进是两个空格.

# 不能添加和修改项

有些http的配置项是通过config-default.yaml修改的,而不能通过在上面的方式添加。下面是不能添加的项目:

  • error_log: logs/error.log
  • error_log_level: warn
  • worker_processes: 3
  • enable_cpu_affinity: true
  • worker_rlimit_nofile: 20480
  • worker_shutdown_timeout: 240s
  • enable_access_log: true
  • access_log: logs/access.log
  • access_log_format:
  • access_log_format_escape: default
  • keepalive_timeout: 60s
  • client_header_timeout: 60s
  • client_body_timeout: 60s
  • client_max_body_size: 0
  • send_timeout: 10s
  • underscores_in_headers: "on"
  • real_ip_header: X-Real-IP
  • real_ip_recursive: "off"
  • real_ip_from:
  • proxy_ssl_server_name: true
  • upstream:
  • keepalive: 320
  • keepalive_requests: 1000
  • keepalive_timeout: 60s
  • charset: utf-8
  • variables_hash_max_size: 2048

上面这些项需要修改,需要通过修改安装目录/alb-standard/conf/config-default.yaml文件中,对应的项目即可

# 修复ALB出现服务宕机或不响应(旧版,非2.0.1版本)

旧版ALB标准会出现长时间运行后服务不响应的问题,解决办法可以通过升级最新版本或者直接修改旧版ALB代码避免该问题的出现。

如果不能升级服务,那么可以通过一下方式,修改alb的代码,实现问题的修复,下面是修改代码修复问题的操作:

  1. 进入ALB服务器,并切换到ALB安装目录
  2. 编辑alb_install_dir/alb/apisix/alb_extra/alb_license.lua文件
  3. 使用--注释第86行至91行内容,如下图所示

# ALB开机自启动

1、修改启动脚本安装目录的start.sh的变量cur_dir修改为脚本的绝对路径

2、在/etc/rc.d/rc.loacl里添加alb启动脚本路径

3、reboot重新启动即可。

# ETCD连接失败

当执行start脚本后,出现以下etcd连接失败问题,可以通过修改启动脚本,延时启动alb。

# 问题解决

1、修改启动脚本start.sh,等待etcd启动完成。

如上图所示,在338行插入sleep 15,保存退出后,重启ALB

# Prometheus监控

ALB标准版提供Prometheus监控功能,默认不启用,如需启用,请切换到utils/exporter目录,执行:./start-exporter.sh,启动ALB的exporter。

# 启动说明

启动ALB的exporter必须要在alb配置文件中开启stub_status功能,如下:

server {
  listen 8080;            # node_status的端口
  location /node_status { # 必须要使用node_status
        stub_status on;   # 开启stub_status
        access_log off;
        allow 127.0.0.1;
    }
}
1
2
3
4
5
6
7
8

在执行start-exporter脚本后,要求输入

  • node_status对应的server监听端口,默认为8080.
  • exporter监听端口,默认为9113

如下为输入过程:

root@root:/utils/expoter$ ./start-exporter.sh
input alb server listening port(请输入node_status监听端口):
alb server listening port(ALB node_status端口): 8080
input exporter listening port(请输入监听端口):
exporter listening port is 9113
exporter are running now!(exporter启动成功)
1
2
3
4
5
6

# Prometheus监控数据获取

通过start-exporter成功后,可以通过浏览器或者prometheus访问: http://IP:9113/metrics获取监控数据。

注: 如果上面修改了exporter的监听端口,上面url中的9113也一并修改。

# ALB主备搭建

# 前提准备

两台机器好ALB和keepalived软件,其中ALB的安装路径为:/opt/alb-2.0-centos-x86 本⽂操作的两台机器分别为:

  • A: 172.21.32.118、
  • B: 172.21.32.11
  • IP:172.21.32.198为keepalived的虚拟IP地址。
  • 其中A节点作为主节点,B节点作为备节点。

# 操作步骤汇总

  1. 修改ALB启动⽅式和数据库连接
  2. 配置keepalived软件
  3. 启动ALB、和keepalived

# 修改A节点启动方式脚本

切换到安装⽬录 /opt/alb-2.0-centos-x86,编辑start.sh脚本,如下所⽰,修改150⾏为下⾯注释所示

上⾯的IP地址:172.21.32.118需要改为主节点的IP地址。

# 修改AB两个节点的数据库配置

  • 修改alb连接数据库的配置vim 安装目录/alb-dashboard/conf/config.yaml,在⽂件结尾加⼊下⾯三⾏:
  • 修改alb管控台的数据库配置vim 安装目录/alb-dashboard/conf/conf.yaml, 修改第10⾏的配置:为节点A的IP地址,如下所示

修改完成后,执行stop.sh然后start.sh启动两个alb节点

# 主节点配置keepalived(A节点)

创建/etc/keepalived/keepalived.conf⽂件,在主节点A节点添加下⾯内容(附件⽂件keepalivedmaster.conf)

  • interface enp0s31f6这个网卡enp0s31f6修改为当前节点物理网卡名称。
  • 在virtual_ipaddrss中,把虚拟IP填上。
! Configuration File for keepalived

global_defs {
   router_id alb
}

vrrp_script chk_http_port {
   script "/etc/keepalived/checkalb.sh"
   interval 2 #(检测脚本执⾏的间隔)
   weight 2
}

vrrp_instance VI_1 {
    # state BACKUP
    state MASTER
    # 备份服务器上将 MASTER 改为 BACKUP
    interface enp0s31f6
    virtual_router_id 51
    # 主、备机的 virtual_router_id 必须相同
    priority 100
    # 主、备机取不同的优先级,主机值较⼤,备份机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.21.32.198 # 请根据需要,修改这个虚拟IP地址
    }
    track_script {
        chk_http_port
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 主节点(A节点)创建健康检测脚本

创建健康检查脚本/etc/keepalived/checkalb.sh,并添加下⾯内容

#!/bin/bash
alb_count=$(ps -ef|grep "alb: main process" |wc -l)
#1.判断ALB是否存活,如果不存活停⽌keepalived
if [ $alb_count -eq 0 ];then
    sleep 3
    #2.等待3秒后再次获取⼀次alb状态
    alb_count=$(ps -ef|grep "alb: main process" |wc -l)
    #3.再次进⾏判断, 如alb还不存活则停⽌Keepalived,让地址进⾏漂移,并退出脚本
    if [ $alb_count -eq 0 ];then
        echo "alb is down"
        exit 1
    fi
fi
1
2
3
4
5
6
7
8
9
10
11
12
13

# 从节点B配置keepavlied(B节点)

创建/etc/keepalived/keepalived.conf ⽂件,在从节点B节点添加下⾯内容(附件⽂件keepalived-backup.conf)

  • 注: interface enp0s31f6这个网卡enp0s31f6修改为当前节点物理网卡名称。
! Configuration File for keepalived
global_defs {
    router_id alb
}
vrrp_script chk_http_port {
    script "/etc/keepalived/checkalb.sh"
    interval 2 #(检测脚本执⾏的间隔)
    weight 2
}
vrrp_instance VI_1 {
    state BACKUP
    # state MASTER
    # 备份服务器上将 MASTER 改为 BACKUP
    interface enp0s31f6
    virtual_router_id 51
    # 主、备机的 virtual_router_id 必须相同
    priority 90
    # 主、备机取不同的优先级,主机值较⼤,备份机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.21.32.198 # 请根据需要,修改这个虚拟IP地址
    }
    track_script {
        chk_http_port
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 备节点创建健康检测脚本

创建健康检查脚本/etc/keepalived/checkalb.sh,并添加下⾯内容

#!/bin/bash
alb_count=$(ps -ef|grep "alb: main process" |wc -l)
#1.判断ALB是否存活,如果不存活停⽌keepalived
if [ $alb_count -eq 0 ];then
    sleep 3
    #2.等待3秒后再次获取⼀次alb状态
    alb_count=$(ps -ef|grep "alb: main process" |wc -l)
    #3.再次进⾏判断, 如alb还不存活则停⽌Keepalived,让地址进⾏漂移,并退出脚本
    if [ $alb_count -eq 0 ];then
        echo "alb is down"
        exit 1
    fi
fi
1
2
3
4
5
6
7
8
9
10
11
12
13

# 启动keepalived

  • 在A、B两个节点使用命令启动keepalived: keepalived -f /etc/keepalived/keepalived.conf
  • 使用虚拟IP访问ALB的管理控制台和代理地址。
编辑页面 (opens new window)

← 快速入门 产品白皮书→

  • 浅色模式