Smartbi Proxy负载均衡服务,为产品提供负载均衡和代理服务。其使用场景、工作原理、特点、异常熔断机制、安装部署可参考:Smartbi Proxy+Tomcat部署Smartbi集群
本章节介绍Proxy控制台界面、功能及安全设置。
通过浏览器 http://ip:port/smartbi/proxy#/login 可登录Proxy控制台(初始默认账号:admin 密码:admin)。
Proxy控制台包含 首页、配置界面、修改密码三个页面。
首页显示上报到Proxy的Smartbi服务器节点的状态及相关使用情况。
1)Smartbi Proxy主页默认暂无数据。 2)在使用Proxy为Smartbi做代理时,需要将Proxy的扩展包上传到Smartbi中,并在Smartbi Config页面配置Proxy代理相关信息,Smartbi服务器节点才能将自身信息上报到Proxy中。 |
操作功能说明如下
操作 | 功能说明 |
---|---|
暂停 | 1)暂停Proxy将请求转发到该服务器节点。 |
节点变更记录 | 查看该服务器节点的变更记录,包括注册上线、手动暂停、手动开启等记录。 |
在“配置界面”,对Proxy进行相关配置。
设置项说明如下
1)proxy开启buffer配置说明
开启buff(缓存):在默认情况下,proxy是通过缓存来处理请求的。当proxy接收到完整的请求响应后,才会将其发送给后端服务器。但是在某些场景下,这种方式可能会导致请求响应慢或者请求失败。
关闭buffer:开启流式返回,将请求响应内容一边接收,一边逐步发送给服务端的过程。这种响应方式可以提高用户体验和网络传输效率,常用于处理较大的响应内容。
通过“修改密码“界面,修改Smartbi Proxy 控制台的登录密码。
1、新密码不能与旧密码相同 2、建议密码长度不低于8位+大小写字母+数字+特殊字符。 |
Proxy控制台“配置界面”的设置项也可通过配置文件proxy_config.properties进行修改。
202507及之后的Proxy版本支持。 |
1)配置文件路径:proxy_config.properties文件在第一次启动时自动生成,位于<Tomcat安装路径>/bin/smartbi目录下
2)属性及说明如下
属性 | 对应“配置界面”设置项 | 备注 | |
---|---|---|---|
proxy.config.instance.resWeight | 权重设置 | 知识库连接池使用率权重 | 值为整数。示例:proxy.config.instance.resWeight=1 |
proxy.config.instance.cpuWeight | CPU使用率权重 | 值为整数。示例:proxy.config.instance.cpuWeight=2 | |
proxy.config.instance.gcWeight | GC占用率权重 | 值为整数。示例:proxy.config.instance.gcWeight=3 | |
proxy.config.instance.poolWeight | 业务数据缓冲池使用率权重 | 值为整数。示例:proxy.config.instance.poolWeight=4 | |
proxy.config.instance.businessDbWeight | 业务数据库连接使用率权重 | 值为整数。示例:proxy.config.instance.businessDbWeight=5 | |
proxy.config.instance.resAlarmValue | 监控设置 | 知识库连接池使用率告警阈值(%) | 值为整数。示例:proxy.config.instance.resAlarmValue=80 |
proxy.config.instance.cpuAlarmValue | CPU使用率告警阈值(%) | 值为整数。示例:proxy.config.instance.cpuAlarmValue=90 | |
proxy.config.instance.gcAlarmValue | GC告警阈值(%) | 值为整数。示例:proxy.config.instance.gcAlarmValue=10 | |
proxy.config.instance.poolAlarmValue | 业务数据缓冲池使用率告警阈值(%) | 值为整数。示例:proxy.config.instance.poolAlarmValue=80 | |
proxy.config.instance.businessAlarmValue | 业务数据库连接使用率告警阈值(%) | 值为整数。示例:proxy.config.instance.businessAlarmValue=80 | |
proxy.config.instance.warnCount | 连续超出告警阈值次数 | 值为整数。示例:proxy.config.instance.warnCount=6 | |
proxy.config.mail.warnIntervalTime | 邮箱设置 | 发送邮件告警时间间隔 | 值为整数;单位:毫秒。示例:proxy.config.mail.warnIntervalTime=3600 |
proxy.config.mail.host | 发送邮件服务器 | 填写发件箱的SMTP服务器地址。示例:proxy.config.mail.host=smtp.163.com | |
proxy.config.mail.port | 发送邮件端口 | 填写发件箱的邮件端口。示例:proxy.config.mail.port=465 | |
proxy.config.mail.isSsl | 是否启用SSL | 值为1或0。“1”表示开启,“0”表示关闭。示例:proxy.config.mail.isSsl=1 | |
proxy.config.mail.isTls | 是否启用TLS | 值为1或0。“1”表示开启,“0”表示关闭。示例:proxy.config.mail.isTls=0 | |
proxy.config.mail.username | 发送邮件的邮箱地址 | 填写发件箱的邮箱地址。示例:proxy.config.mail.username=aaaa@smartbi.com.cn | |
proxy.config.mail.password | 邮箱登录密码 | 填写邮箱的登录密码,明文。示例:proxy.config.mail.password=123$%^24AFD | |
proxy.config.mail.receive | 接收邮件地址 | 填写收件箱地址,多个邮箱地址以英文逗号隔开。 示例: | |
proxy.config.instance.proxyBuffering | 系统设置 | proxy开启buffer | 值为 true或fasle。"true"表示开启,"false"表示关闭。示例:proxy.config.instance.proxyBuffering=true |
proxy.config.instance.customHeader | 自定义请求头 | 设置自定义请求头,为key和key值的JSON串。示例:proxy.config.instance.customHeader={"p-ket"\:"123","x-ip"\:"10.10.24.45"} | |
proxy.config.instance.pingSocketTimeout | 探测代理服务传输超时时长 | 值为整数;单位:毫秒。示例:proxy.config.instance.pingSocketTimeout=5000 | |
proxy.config.instance.pingConnectTimeout | 探测代理服务连接超时时长 | 值为整数;单位:毫秒。示例:proxy.config.instance.pingConnectTimeout=5000 | |
proxy.config.instance.pingRetryCount | 探测代理服务重试次数 | 值为整数。示例:proxy.config.instance.pingRetryCount=7 | |
proxy.config.instance.isStickyCookie | 会话保持 | 值为 true或fasle。"true"表示开启,"false"表示关闭。示例:proxy.config.instance.isStickyCookie=true |
通过修改配置文件修改设置项,修改后需重启Proxy方生效。 |
Proxy日志默认保存在:<Tomcat安装路径>/log/目录下
Proxy提供限制IP访问、登录失败锁定等功能提高安全性。
202507及之后的版本支持。 |
在proxy_config.properties配置文件中通过 proxy.limiter.login.allowServer 和 proxy.limiter.login.clientIpHeader属性结合,设置允许访问Proxy控制台的客户端IP。
1)proxy.limiter.login.allowServer:设置允许访问Proxy控制台IP地址。支持的属性值如下:
序号 | 类别 | 属性值 | 示例 | |
1 | 允许所有IP | *号代表全部IP。 注:这里不支持10.10.202.* 这种格式 | proxy.limiter.login.allowServer=*
| |
2 | 不允许任何IP | 空/null | proxy.limiter.login.allowServer= 或 proxy.limiter.login.allowServer=null | |
3 | 精确指定某个ip或多个ip | 直接设置对应的ip地址,多个ip则以英文逗号隔开 | proxy.limiter.login.allowServer=10.10.101.11,10.10.101.21,10.10.101.31 | |
4 | 指定某个ip地址段 | 指定ip段地址区间,中间用减号(-)连接。 | proxy.limiter.login.allowServer=10.10.101.0-10.10.101.255 | |
5 | 指定ip支持标准的掩码 | 使用 标准CIDR 格式。 | proxy.limiter.login.allowServer=10.10.23.0/24 | |
6 | 组合 ip 地址和 ip 地址段 | 序号3、4、5的组合设置,以英文逗号隔开 | proxy.limiter.login.allowServer=10.10.23.11,10.10.201.1-10.10.201.254,10.10.202.0/24 |
当客户端IP不在允许访问的IP中时,访问Proxy控制台会显示403错误。如下
2)proxy.limiter.login.clientIpHeader:若通过属性proxy.limiter.login.allowServer设置了允许访问控制台的IP地址,当实际的网络架构中proxy前还有其他代理服务器(如nginx)时,有可能无法获取到客户端的真实IP。因此需在代理服务器中设置获取客户端真实IP的请求头,并设置proxyproxy.limiter.login.clientIpHeader属性值为对应的请求头,以便proxy获取到客户端的真实IP。
如:网络请求从nginx转发到proxy,且nginx中配置了真实客户端IP的请求头为“X-Real_IP”
则Proxy属性配置如下:
proxyproxy.limiter.login.clientIpHeader=X-Read-IP
1、若需配置允许访问Proxy控制台的IP,则Smartbi服务器的IP也需设置到proxy.limiter.login.allowServer 中,否则Smartbi服务器无法上报节点状态到Proxy。 2、Proxy服务器本机访问proxy控制台不受proxy.limiter.login.allowServer属性控制。 3、修改配置文件后,需重启Proxy方生效 4、若proxy.limiter.login.allowServer属性值设置有误,则除了Proxy服务器本机外,其余所有客户端无法访问Proxy控制台。 |
登录失败锁定:即当用户输入密码错误次数达到设置的次数时,锁定账号不允许登录,直到设置的时间结束后,才能继续登录。
设置方式:在proxy_config.properties文件中,配置proxy.limiter.login.permits属性和proxy.limiter.login.interval属性。属性及说明如下
属性 | 说明 |
---|---|
proxy.limiter.login.permits | 【功能】 限定用户登录时密码错误次数,达到设定值即锁定账号。 示例: proxy.limiter.login.permits=3 |
proxy.limiter.login.interval | 设置账号被锁定的时长。锁定时长结束后,自动解锁,用户可再次进行登录。 单位:秒。 示例:proxy.limiter.login.interval=3600 |
1)需要proxy.limiter.login.permits和proxy.limiter.login.interval属性同时设置大于 0 的数值,登录失败次数限制才会生效。 2)修改配置文件后,需重启Proxy方生效。 |
锁定后用户进行登录提示如下: