私有部署的安装

百度数据可视化 SUGAR

  • 数据库新增授权IP的说明
  • 更新日志
  • 联系我们
  • 常见问题
  • 私有部署
    • 私有部署的安装
    • 私有部署的升级
    • 私有部署的费用
    • 私有部署安装常见问题
    • 开启智能问数
    • 开启跨源查询功能
    • 开启自助取数功能
    • 私有部署的试用与购买
    • 自定义访问路径前缀
    • ARM架构镜像
    • License升级
    • 什么是私有部署
    • 开启自定义消息通知
    • 外观主题设置
    • 开启智能预测功能
    • openAPI
      • 概述
      • V2
        • 图表API服务
        • 权限审计
        • 数据模型服务
        • 角色管理
        • 智能问数
        • 可视化页面
          • 大屏
          • 报表
        • 访问统计
          • 组织访问统计
          • 空间访问统计
      • V1
        • 空间用户和权限设置
          • 用户管理
          • 角色管理
        • 组织管理
          • 用户管理
          • 空间管理
        • 可视化页面
          • 过滤组件配置
          • 数据源
          • 数据模型
          • 定时推送
          • 数据筛选
          • 报表
          • 图表配置
    • 数据服务
      • 图表API服务
      • 数据模型服务
  • 产品介绍
    • 概念介绍
    • 产品简介
  • 快速入门
    • 开通服务
    • 制作报表
      • 连接数据源
      • 制作报表
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作数据填报
      • 制作数据填报
      • 查看数据和数据分析
      • 预览和发布
      • 概述
    • 制作可视化大屏
      • 制作大屏
      • 连接数据源
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作三维场景
      • 基础操作
      • 嵌入到大屏中
      • 概述
  • 典型实践
    • 问卷数据收集、分析与展现
    • 业务自助BI分析
    • 数据监控与预警
    • 实时滚动地图大屏
    • 固定报表
    • 工业零部件3D大屏
    • 高阶应用
      • 图表联动时地图范围动态变化
      • 下钻中地图范围动态变化
      • 大屏的各种轮播效果汇总
      • 轮播同步图表联动
      • 按数据条件设置颜色
      • 全国和各省份的销售下钻分析
  • 操作指南
    • 历史版本
    • 群机器人
    • 数据门户
    • 数据预警
    • 回收站
    • 宏定义变量
    • 数据血缘
    • 制作可视化页面
      • 组件模板
      • 报表编辑界面
      • 大屏编辑界面
      • 自定义图表主题
      • 图表组件操作
      • 智能图表
      • 页面模板
      • 高级图表
        • 气泡图
        • 矩形树图
        • 河流图
        • 3D饼图
        • 坐标热力图
        • 甘特图
        • 日历热力图
        • 旭日图
        • 自定义组件
        • 3D散点图
        • 桑基图
        • k线图
        • 瀑布图
        • 新拓扑图
        • 3D柱图
        • 拓扑图
      • 地图
        • 地图区域的动态变化
        • 平面地图(色彩、气泡、热力)
        • 自定义GeoJSON
        • 百度地图(散点、热力)
        • 多层地图
        • 平面地图飞线图
        • 3D飞线地图
        • 3D柱状地图
        • 3D区域色彩地图
        • 百度地图路径
      • 交互组件
        • 标签页组件
        • Tab控件
        • 全屏按钮
        • 语音交互组件
        • AI问答组件
      • 媒体
        • 里程碑
        • 图片
        • 视频、直播
        • 音频
        • 文本、跑马灯
        • 字符云
        • 评论
        • 3D词云
        • 富文本
        • 实时时间
        • 图片轮播
        • iframe
        • 天气
      • 基础图表
        • 表格
        • 饼图、环形饼图、轮播饼图
        • 交叉透视表
        • 倒计时
        • 数字翻牌器、百分比指标
        • 山峰柱图
        • 仪表盘
        • 柱状图、横向柱图
        • 指标看板、指标卡片
        • 树形表格
        • 象形柱图
        • 留存报表
        • 直方图
        • 指标拆解树
        • 属性表格
        • 排行榜
        • 水球图
        • 轮播表格
        • 漏斗图
        • 散点图
        • 嵌套饼图
        • 折线图、线柱混搭
        • 核心指标
        • 进度条、环形进度条
        • 雷达图
        • 圆形柱状图
      • 素材
        • 边框
        • 形状
        • 小图标
    • 移动端适配
      • 移动端配置
      • 移动端过滤条件组配置
    • 其它方式绑定数据
      • 静态JSON
      • SQL建模
        • 数据自动补全
        • SQL中嵌入日期宏定义
        • OpenTSDB数据源
        • 数据值映射
        • Mongo数据源
        • ElasticSearch数据源
        • SQL字段展示名称的动态化
        • SQL中关联过滤条件
        • 大屏制作入门
        • 报表制作入门
        • 过滤组件的级联
        • SQL关联联动参数
        • Redis数据源
        • SQL中嵌入用户邮箱
        • InfluxDB数据源
        • 概述和创建数据源
        • SQL模型
        • SQL中行转列
        • SQL中关联下钻参数
        • Graphite数据源
        • SQL中嵌入URL参数
        • 数据缓存
        • Prometheus数据源
        • SQL方式绑定图表数据
          • 气泡图
          • 里程碑
          • 表格
          • 饼图、环形饼图、轮播饼图
          • 数字翻牌器、百分比指标
          • 仪表盘
          • 矩形树图
          • 柱状图、横向柱图
          • 指标看板、指标卡片
          • 字符云
          • 树形表格
          • 河流图
          • 富文本
          • 3D饼图
          • 坐标热力图
          • 平面地图(色彩、气泡、热力)
          • 甘特图
          • 属性表格
          • 排行榜
          • 日历热力图
          • 旭日图
          • 漏斗图
          • 散点图
          • 多层地图
          • 图片轮播
          • 3D散点图
          • 桑基图
          • K线图
          • 平面地图飞线图
          • 瀑布图
          • 3D飞线地图
          • 3D柱状地图
          • 折线图、线柱混搭
          • 核心指标
          • 百度地图(散点、热力)
          • 3D柱图
          • 拓扑图
          • 雷达图
          • 3D区域色彩地图
          • 百度地图路径
          • 圆形柱状图
      • API
        • API认证
        • API后端获取过滤条件参数
        • API的安全机制
        • 各种过滤组件的API格式要求
        • API后端获取当前登录用户
        • API后端获取联动参数
        • API高级配置
        • 各种图表的API格式要求
        • API后端获取下钻参数
        • API后端获取URL额外参数
        • 概述
    • 数据填报
      • 数字类型表单
      • 选择类型表单
      • 日期类型表单
      • 数据填报管理
      • 文本类型表单
      • 数据填报编辑
    • 平台管理
      • 报表和大屏的导入导出
      • 访问统计
      • 智能报表
      • 智能大屏
      • 操作审计
      • 数据探索
      • 空间管理
        • 什么是空间
        • 创建空间
        • 更改空间信息
        • 空间中的用户和管理员
        • 删除空间
        • 空间就是数据门户
      • 组织管理
        • 管理组织中的用户
        • 什么是组织
        • 访问统计
        • 组织的创建和切换
        • 组织的VIP用户
        • 更改组织信息和管理员
        • 操作审计
      • 权限管理
        • 行级别权限管理
        • 用户管理
        • 权限审计
        • 细粒度权限
        • 角色管理
        • 概述
      • 个人中心
        • 个人信息更改
        • 收藏报表和大屏
        • 个人中心是什么
    • 三维场景
      • 场景交互
      • 场景调色
      • 自定义脚本
    • 智能问数
      • 创建及使用智能问数
      • 前期数据准备
      • 智能问数问答模板管理
      • 报表和大屏页面使用智能问数
      • 问数模型配置
      • 智能问数最佳实践
      • 问数权限管理
      • 系统集成
      • 系统集成技术接入指引
      • 使用智能问数
      • 如何优化我的问答效果
      • 概述
    • 智能问数--旧版待下线
      • 创建及使用智能问数
      • 前期数据准备
      • 报表和大屏页面使用智能问数
      • 智能问数最佳实践
      • 概述
    • 智能分析
      • 自动分析
      • 异常分析
      • 波动分析
    • 连接数据源
      • Kerberos 认证
      • API
      • 上传Excel文件
      • 云上VPC内数据源
      • 数据库
      • 内网隧道
      • 静态JSON
      • 云上RDS数据源
      • 概述
    • 分享和订阅
      • 分享页Token参数签名校验
      • 分享页强制用户登录
      • 公开和加密分享
      • 分享页通过URL参数标识用户
      • 多页面轮播
      • 桌面全屏客户端
      • 移动端全屏
      • 空间内多人浏览
      • 定时推送
    • 可视化分析
      • 数据自动补全
      • 图表联动
      • 单个图表的过滤条件
      • 动态的维度和度量分析
      • 数据筛选
      • 数据排序
      • 数据对比
      • 条件格式
      • 关联URL参数
      • 日期时间数据聚合
      • 图表评论
      • 数据缓存
      • 图表下钻
      • 图表标注
      • 过滤组件
        • 时间轴组件
        • 多选组件
        • 时间范围组件
        • 过滤条件宽度占比
        • 时间组件
        • 查询Key值
        • 多重逻辑组件
        • 日期范围组件
        • 输入框组件
        • 时间粒度组件
        • 日期组件
        • 大屏中过滤条件展示为图标
        • 树形选择组件
        • 过滤条件组
        • 过滤组件关联图表
        • 过滤组件的级联、依赖
        • 单选组件
      • 计算字段
        • 数据桶
        • SQL表达式
        • 分组
        • 记录数
        • 表计算
        • 概述
    • 自助取数
      • 创建自助取数
      • 管理自助取数
      • 概述
    • 创建数据模型
      • 数据脱敏
      • 数据格式化和单位
      • 数据值映射
      • 数据类型转换
      • 自定义SQL视图
      • 字段展示名称的动态化
      • 数据模型
      • 跨源交叉分析
    • 智能预测
      • 离线预测
      • 时序预测
      • 模型训练
      • 预测服务
    • 自助探索与AI问答
      • AI问答
      • 自助探索
    • 报表AI能力
      • 报表AI助手
      • 报表AI功能的数据准备
      • 报表AI助手权限管理
      • 报表AI洞察与AI预测
      • 如何优化我的问答效果
      • 概述
    • 微信与钉钉集成
      • 私有部署版
        • 钉钉集成
        • 企业微信集成
        • 飞书集成
        • 如流集成
      • 云上SaaS在线版
        • 企业微信集成
        • 微信集成
  • 视频专区
    • 产品介绍
    • 平台功能
      • 自助取数操作指导
      • 数据预警配置操作指导
      • 数据填报操作指导
      • 数据血缘操作指导
      • 系统管理操作指导
    • 基础功能
      • 图表标注操作指导
      • 连接数据源操作指导
      • 表格组件操作指导
      • 创建数据模型操作指导
      • 三维场景操作指导
      • 报表制作操作指导
      • 数据值映射操作指导
      • 可视化大屏制作操作指导
    • 智能分析
      • 智能图表操作指导
      • 异常分析操作指导
      • 自动分析操作指导
      • AI问答和探索操作指导
      • 波动分析操作指导
    • 操作指南
      • 数据填报
      • AI问答与探索
      • 分享和订阅
      • 连接数据源
      • 智能分析
      • 数据门户
      • 可视化分析
      • 三维场景
      • 制作可视化页面
      • 创建数据模型
      • 平台管理
      • 自助取数
      • 数据预警
      • 数据血缘
    • 交互功能
      • 大屏Tab控件操作指导
      • 报表和图表过滤操作指导
      • 多页面轮播操作指导
      • 数据门户操作指导
      • 标签页组件操作指导
      • 图表下钻操作指导
      • 图表联动操作指导
    • 产品说明
      • 文档使用建议
      • 产品介绍
  • 产品定价
    • 私有部署版定价
    • SaaS在线版定价
    • 免费试用说明
所有文档
menu
没有找到结果,请重新输入

百度数据可视化 SUGAR

  • 数据库新增授权IP的说明
  • 更新日志
  • 联系我们
  • 常见问题
  • 私有部署
    • 私有部署的安装
    • 私有部署的升级
    • 私有部署的费用
    • 私有部署安装常见问题
    • 开启智能问数
    • 开启跨源查询功能
    • 开启自助取数功能
    • 私有部署的试用与购买
    • 自定义访问路径前缀
    • ARM架构镜像
    • License升级
    • 什么是私有部署
    • 开启自定义消息通知
    • 外观主题设置
    • 开启智能预测功能
    • openAPI
      • 概述
      • V2
        • 图表API服务
        • 权限审计
        • 数据模型服务
        • 角色管理
        • 智能问数
        • 可视化页面
          • 大屏
          • 报表
        • 访问统计
          • 组织访问统计
          • 空间访问统计
      • V1
        • 空间用户和权限设置
          • 用户管理
          • 角色管理
        • 组织管理
          • 用户管理
          • 空间管理
        • 可视化页面
          • 过滤组件配置
          • 数据源
          • 数据模型
          • 定时推送
          • 数据筛选
          • 报表
          • 图表配置
    • 数据服务
      • 图表API服务
      • 数据模型服务
  • 产品介绍
    • 概念介绍
    • 产品简介
  • 快速入门
    • 开通服务
    • 制作报表
      • 连接数据源
      • 制作报表
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作数据填报
      • 制作数据填报
      • 查看数据和数据分析
      • 预览和发布
      • 概述
    • 制作可视化大屏
      • 制作大屏
      • 连接数据源
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作三维场景
      • 基础操作
      • 嵌入到大屏中
      • 概述
  • 典型实践
    • 问卷数据收集、分析与展现
    • 业务自助BI分析
    • 数据监控与预警
    • 实时滚动地图大屏
    • 固定报表
    • 工业零部件3D大屏
    • 高阶应用
      • 图表联动时地图范围动态变化
      • 下钻中地图范围动态变化
      • 大屏的各种轮播效果汇总
      • 轮播同步图表联动
      • 按数据条件设置颜色
      • 全国和各省份的销售下钻分析
  • 操作指南
    • 历史版本
    • 群机器人
    • 数据门户
    • 数据预警
    • 回收站
    • 宏定义变量
    • 数据血缘
    • 制作可视化页面
      • 组件模板
      • 报表编辑界面
      • 大屏编辑界面
      • 自定义图表主题
      • 图表组件操作
      • 智能图表
      • 页面模板
      • 高级图表
        • 气泡图
        • 矩形树图
        • 河流图
        • 3D饼图
        • 坐标热力图
        • 甘特图
        • 日历热力图
        • 旭日图
        • 自定义组件
        • 3D散点图
        • 桑基图
        • k线图
        • 瀑布图
        • 新拓扑图
        • 3D柱图
        • 拓扑图
      • 地图
        • 地图区域的动态变化
        • 平面地图(色彩、气泡、热力)
        • 自定义GeoJSON
        • 百度地图(散点、热力)
        • 多层地图
        • 平面地图飞线图
        • 3D飞线地图
        • 3D柱状地图
        • 3D区域色彩地图
        • 百度地图路径
      • 交互组件
        • 标签页组件
        • Tab控件
        • 全屏按钮
        • 语音交互组件
        • AI问答组件
      • 媒体
        • 里程碑
        • 图片
        • 视频、直播
        • 音频
        • 文本、跑马灯
        • 字符云
        • 评论
        • 3D词云
        • 富文本
        • 实时时间
        • 图片轮播
        • iframe
        • 天气
      • 基础图表
        • 表格
        • 饼图、环形饼图、轮播饼图
        • 交叉透视表
        • 倒计时
        • 数字翻牌器、百分比指标
        • 山峰柱图
        • 仪表盘
        • 柱状图、横向柱图
        • 指标看板、指标卡片
        • 树形表格
        • 象形柱图
        • 留存报表
        • 直方图
        • 指标拆解树
        • 属性表格
        • 排行榜
        • 水球图
        • 轮播表格
        • 漏斗图
        • 散点图
        • 嵌套饼图
        • 折线图、线柱混搭
        • 核心指标
        • 进度条、环形进度条
        • 雷达图
        • 圆形柱状图
      • 素材
        • 边框
        • 形状
        • 小图标
    • 移动端适配
      • 移动端配置
      • 移动端过滤条件组配置
    • 其它方式绑定数据
      • 静态JSON
      • SQL建模
        • 数据自动补全
        • SQL中嵌入日期宏定义
        • OpenTSDB数据源
        • 数据值映射
        • Mongo数据源
        • ElasticSearch数据源
        • SQL字段展示名称的动态化
        • SQL中关联过滤条件
        • 大屏制作入门
        • 报表制作入门
        • 过滤组件的级联
        • SQL关联联动参数
        • Redis数据源
        • SQL中嵌入用户邮箱
        • InfluxDB数据源
        • 概述和创建数据源
        • SQL模型
        • SQL中行转列
        • SQL中关联下钻参数
        • Graphite数据源
        • SQL中嵌入URL参数
        • 数据缓存
        • Prometheus数据源
        • SQL方式绑定图表数据
          • 气泡图
          • 里程碑
          • 表格
          • 饼图、环形饼图、轮播饼图
          • 数字翻牌器、百分比指标
          • 仪表盘
          • 矩形树图
          • 柱状图、横向柱图
          • 指标看板、指标卡片
          • 字符云
          • 树形表格
          • 河流图
          • 富文本
          • 3D饼图
          • 坐标热力图
          • 平面地图(色彩、气泡、热力)
          • 甘特图
          • 属性表格
          • 排行榜
          • 日历热力图
          • 旭日图
          • 漏斗图
          • 散点图
          • 多层地图
          • 图片轮播
          • 3D散点图
          • 桑基图
          • K线图
          • 平面地图飞线图
          • 瀑布图
          • 3D飞线地图
          • 3D柱状地图
          • 折线图、线柱混搭
          • 核心指标
          • 百度地图(散点、热力)
          • 3D柱图
          • 拓扑图
          • 雷达图
          • 3D区域色彩地图
          • 百度地图路径
          • 圆形柱状图
      • API
        • API认证
        • API后端获取过滤条件参数
        • API的安全机制
        • 各种过滤组件的API格式要求
        • API后端获取当前登录用户
        • API后端获取联动参数
        • API高级配置
        • 各种图表的API格式要求
        • API后端获取下钻参数
        • API后端获取URL额外参数
        • 概述
    • 数据填报
      • 数字类型表单
      • 选择类型表单
      • 日期类型表单
      • 数据填报管理
      • 文本类型表单
      • 数据填报编辑
    • 平台管理
      • 报表和大屏的导入导出
      • 访问统计
      • 智能报表
      • 智能大屏
      • 操作审计
      • 数据探索
      • 空间管理
        • 什么是空间
        • 创建空间
        • 更改空间信息
        • 空间中的用户和管理员
        • 删除空间
        • 空间就是数据门户
      • 组织管理
        • 管理组织中的用户
        • 什么是组织
        • 访问统计
        • 组织的创建和切换
        • 组织的VIP用户
        • 更改组织信息和管理员
        • 操作审计
      • 权限管理
        • 行级别权限管理
        • 用户管理
        • 权限审计
        • 细粒度权限
        • 角色管理
        • 概述
      • 个人中心
        • 个人信息更改
        • 收藏报表和大屏
        • 个人中心是什么
    • 三维场景
      • 场景交互
      • 场景调色
      • 自定义脚本
    • 智能问数
      • 创建及使用智能问数
      • 前期数据准备
      • 智能问数问答模板管理
      • 报表和大屏页面使用智能问数
      • 问数模型配置
      • 智能问数最佳实践
      • 问数权限管理
      • 系统集成
      • 系统集成技术接入指引
      • 使用智能问数
      • 如何优化我的问答效果
      • 概述
    • 智能问数--旧版待下线
      • 创建及使用智能问数
      • 前期数据准备
      • 报表和大屏页面使用智能问数
      • 智能问数最佳实践
      • 概述
    • 智能分析
      • 自动分析
      • 异常分析
      • 波动分析
    • 连接数据源
      • Kerberos 认证
      • API
      • 上传Excel文件
      • 云上VPC内数据源
      • 数据库
      • 内网隧道
      • 静态JSON
      • 云上RDS数据源
      • 概述
    • 分享和订阅
      • 分享页Token参数签名校验
      • 分享页强制用户登录
      • 公开和加密分享
      • 分享页通过URL参数标识用户
      • 多页面轮播
      • 桌面全屏客户端
      • 移动端全屏
      • 空间内多人浏览
      • 定时推送
    • 可视化分析
      • 数据自动补全
      • 图表联动
      • 单个图表的过滤条件
      • 动态的维度和度量分析
      • 数据筛选
      • 数据排序
      • 数据对比
      • 条件格式
      • 关联URL参数
      • 日期时间数据聚合
      • 图表评论
      • 数据缓存
      • 图表下钻
      • 图表标注
      • 过滤组件
        • 时间轴组件
        • 多选组件
        • 时间范围组件
        • 过滤条件宽度占比
        • 时间组件
        • 查询Key值
        • 多重逻辑组件
        • 日期范围组件
        • 输入框组件
        • 时间粒度组件
        • 日期组件
        • 大屏中过滤条件展示为图标
        • 树形选择组件
        • 过滤条件组
        • 过滤组件关联图表
        • 过滤组件的级联、依赖
        • 单选组件
      • 计算字段
        • 数据桶
        • SQL表达式
        • 分组
        • 记录数
        • 表计算
        • 概述
    • 自助取数
      • 创建自助取数
      • 管理自助取数
      • 概述
    • 创建数据模型
      • 数据脱敏
      • 数据格式化和单位
      • 数据值映射
      • 数据类型转换
      • 自定义SQL视图
      • 字段展示名称的动态化
      • 数据模型
      • 跨源交叉分析
    • 智能预测
      • 离线预测
      • 时序预测
      • 模型训练
      • 预测服务
    • 自助探索与AI问答
      • AI问答
      • 自助探索
    • 报表AI能力
      • 报表AI助手
      • 报表AI功能的数据准备
      • 报表AI助手权限管理
      • 报表AI洞察与AI预测
      • 如何优化我的问答效果
      • 概述
    • 微信与钉钉集成
      • 私有部署版
        • 钉钉集成
        • 企业微信集成
        • 飞书集成
        • 如流集成
      • 云上SaaS在线版
        • 企业微信集成
        • 微信集成
  • 视频专区
    • 产品介绍
    • 平台功能
      • 自助取数操作指导
      • 数据预警配置操作指导
      • 数据填报操作指导
      • 数据血缘操作指导
      • 系统管理操作指导
    • 基础功能
      • 图表标注操作指导
      • 连接数据源操作指导
      • 表格组件操作指导
      • 创建数据模型操作指导
      • 三维场景操作指导
      • 报表制作操作指导
      • 数据值映射操作指导
      • 可视化大屏制作操作指导
    • 智能分析
      • 智能图表操作指导
      • 异常分析操作指导
      • 自动分析操作指导
      • AI问答和探索操作指导
      • 波动分析操作指导
    • 操作指南
      • 数据填报
      • AI问答与探索
      • 分享和订阅
      • 连接数据源
      • 智能分析
      • 数据门户
      • 可视化分析
      • 三维场景
      • 制作可视化页面
      • 创建数据模型
      • 平台管理
      • 自助取数
      • 数据预警
      • 数据血缘
    • 交互功能
      • 大屏Tab控件操作指导
      • 报表和图表过滤操作指导
      • 多页面轮播操作指导
      • 数据门户操作指导
      • 标签页组件操作指导
      • 图表下钻操作指导
      • 图表联动操作指导
    • 产品说明
      • 文档使用建议
      • 产品介绍
  • 产品定价
    • 私有部署版定价
    • SaaS在线版定价
    • 免费试用说明
  • 文档中心
  • arrow
  • 百度数据可视化SUGAR
  • arrow
  • 私有部署
  • arrow
  • 私有部署的安装
本页目录
  • 安装环境
  • 软件环境
  • 硬件环境
  • 下载
  • 1、百度智能云的 docker 镜像服务
  • 2、直接在线下载
  • 运行 Sugar BI
  • 一、Docker 单机运行
  • 同步数据库结构
  • 二、swarm 集群部署
  • 三、kubernetes 集群部署
  • 运行配置说明
  • 登录账号相关配置说明
  • 1、demo
  • 2、password
  • 3、email
  • 4、oauth
  • 5、token
  • 6、ldap
  • 日志说明以及自动清理
  • Nginx 代理和 HTTPS 设置
  • 开启定时推送、数据预警功能
  • 开启 Excel/CSV 文件上传功能
  • 开启企业角色功能
  • 开启自助取数功能
  • 开启跨源查询功能
  • 开启自定义消息通知
  • 外部依赖模块部署验证
  • 自定义产品 Logo
  • 自定义 JDBC 驱动
  • 自定义内置第三方 JS、CSS 库

私有部署的安装

更新时间:2025-08-22

安装环境

Sugar BI的部署,对机器的软件和硬件环境要求如下:

软件环境

  • Docker

需要您的机器安装Docker,推荐版本为v17及以上,Sugar BI可以直接运行在单机 Docker 环境上,如果需要集群化、高可用,可以使用 Docker 自带的 swarm 或者 kubernetes;Sugar BI的安装部署过程中需要您对 Docker 的基础知识有所了解,详见Docker 官网。

Docker 的安装建议参考官方文档,可以安装在Centos、Ubuntu、Docker Desktop on Windows、Mac等系统上。Windows 上的 Docker 启动需要使用「以管理员身份运行」。

如果 Docker 官网访问比较慢,可以试试百度网盘(提取码: 8ym5)。

  • MySQL

推荐使用MySQL 5.7版本(如果用 MySQL 8 需要 --default-authentication-plugin=mysql_native_password),该 MySQL 数据库用来存储Sugar BI的系统数据,MySQL 需要您自己安装和运维,并且需要给Sugar BI创建一个空的数据库如sugarbi(排序规则使用utf8_general_ci);当然,您可以使用 Docker 来快速安装 MySQL,详见Docker MySQL,现提供单机 Docker 情况下安装启动 MySQL 并创建sugarbi数据库流程:

图片

上图中主要的命令行(其中lovesugar123即数据库 root 账户的密码,您可以改成自己想要的密码):

Shell
1mkdir ~/mysqlData
2docker run --ulimit nofile=65100:65100 --restart unless-stopped --name sugar-mysql -p 3306:3306 -v ~/mysqlData:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=lovesugar123 -d mysql:5.7 --max_allowed_packet=100M --max_connections=1000
3docker run -it --link sugar-mysql:mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
4CREATE DATABASE IF NOT EXISTS `sugarbi` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

对于 MySQL,我们建议您进行每天定时备份,防止机器故障导致数据丢失,使用上图的方式,我们已经将 MySQL 的数据挂载到了~/mysqlData文件夹下。

硬件环境

如果用户数不多(如:不超过 100 人、均匀的日访问量不超过 2000 次页面)且不严格要求高可用,单机运行即可,否则视具体情况推荐使用 kubernetes 集群方式部署(建议最少 3 台机器);每台机器的配置建议:内存(最低 32G)、CPU(16 核或以上)、硬盘(256GB SSD 或以上)。 集群部署时,如果在一台机器上启动多个Sugar BI实例,平均到每个Sugar BI实例的内存建议不小于 8GB。

下载

我们提供了两种获取Sugar BI安装包镜像的方式:

1、百度智能云的 docker 镜像服务

Sugar BI的镜像已经上传到百度智能云 docker 镜像服务,您可以使用以下命令获取Sugar BI镜像:

Shell
1docker pull registry.baidubce.com/sugarbi/sugar:6.4.1
2docker tag registry.baidubce.com/sugarbi/sugar:6.4.1 sugarbi/sugar:6.4.1
3// 查看刚刚拉取的镜像
4docker images

6.4.1是目前Sugar BI的最新版本,其他的版本可参考更新日志。此种方式要求您的部署机器能够连接互联网;如果您的部署机器不能直接连接到互联网,可以使用下面的方式。

2、直接在线下载

如果您的部署机器不能连接互联网,您可以在联网的机器上点击这里下载: https://sugar-docker-image.cdn.bcebos.com/sugarbi-6.4.1.tar.gz(如果鼠标点击下载不了,可以复制该地址在浏览器中打开),然后将下载的安装包拷贝到部署机器上,注意:如果您使用 swarm 来同时部署到多台机器上,需要将下载的安装包文件拷贝到所有部署机器上,并且以下的操作也需要在所有部署机器上执行。

在部署的机器上,进入到您拷贝的安装包的同目录下,

Shell
1docker load -i ./sugarbi-6.4.1.tar.gz
2// 上面的命令会执行数十秒,然后执行以下命令查看刚刚load的镜像
3docker images

使用上面的两种方式下载Sugar BI的安装镜像,在最后执行docker images都能看到如下展示即证明下载成功:

图片

另外,如果您的服务器 CPU、操作系统是国产化的,那么你可能需要 ARM 架构的镜像,详见ARM 架构镜像。

运行 Sugar BI

Sugar BI是基于 Docker 容器化的运行模式,所以安装也会比较简单,主要是提供相应的配置文件(MySQL 连接配置、License 配置等),其他基本就是一键启动。Sugar BI的启动有两种方式,分别对应 Docker 单机模式和多机集群模式:

一、Docker 单机运行

在 Docker 单机环境下运行Sugar BI很简单,分两步:

  • 1、新建一个名为env的文件(文件名没有后缀,就是 env),并用文本编辑器打开,复制以下的内容并填写相应部分:
Plain Text
1love_sugar=true
2sugar_can_connect_local_ip=true
3
4# MySQL数据库相关
5sugar_db_username=root
6sugar_db_password=lovesugar123
7sugar_db_database=sugarbi
8sugar_db_host=填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
9sugar_db_port=3306
10
11# license相关
12sugar_company=license的组织代码
13sugar_license=具体license
14
15# redis配置
16# 如果您需要「数据缓存」或者「定时推送」或者「数据预警」功能,需要配置这块,否侧不需要配置
17# 如果您私有部署只是单机运行(即只运行一个sugar的实例),sugar已经内置,这块不需要配置
18# 否则需要您自己搭建redis(2.6版本以上,最好是5的版本,可以使用类似上面mysql的docker方式来启动一个redis)
19sugar_redis_host=
20sugar_redis_port=
21sugar_redis_password=
22
23# 如果您搭建的 redis 是集群模式(Cluster)则需要将 sugar_redis_enable_cluster 设置为 1
24# 此时,host 和 port 可以配置多个,用英文逗号分割并且host和port的个数要相同并一一对应,
25# 如host配置为:1.1.1.1,2.2.2.2  port配置为:6379,6388
26# redis 的集群模式(Cluster),需要在 3.3.4 及以上版本中才支持
27sugar_redis_enable_cluster=
28
29# 如果您搭建的 redis 是哨兵模式(Sentinel)则需要将 sugar_redis_enable_sentinel 设置为 1
30# 并配置 sugar_redis_sentinel_name
31# 此时,host 和 port 可以配置多个,用英文逗号分割并且host和port的个数要相同并一一对应,
32# 如host配置为:1.1.1.1,2.2.2.2  port配置为:6379,6388
33# redis 的哨兵模式(Sentinel),需要在 3.5.1 及以上版本中才支持
34sugar_redis_enable_sentinel=
35# 哨兵的名称
36sugar_redis_sentinel_name=
37# 哨兵节点的密码(如果只给 Redis 主节点配置了密码,则只需要配置sugar_redis_password即可)
38sugar_redis_sentinel_password=
39
40# 登录形式,支持 demo、email、password、oauth、token、ldap
41# 如果是最初步的测试,可以使用demo方式,后面的其他登录方式的配置都可以不用填写
42sugar_login_type=demo
43
44# 登录类型为password时,配置为1即可开启密码复杂度判断(要求密码中至少需要包含大写字母、小写字母、数字、特殊符号中的三种,并且密码长度大于8;密码错误三次会锁定15分钟)
45sugar_password_secure_check=
46# 登录类型为password时,可以开启密码过期提醒,过期后要求用户必须修改密码
47# 格式为数字加日期标识符。天:d,月:m,季:q,年:y。如2个月可表示为2m,3天为3d
48sugar_password_expire=
49
50# email登录模式的配置,以及「定时推送」「数据预警」功能也需要这块的配置,host 是 smtp 服务器
51sugar_email_host=
52# port 一般是 25 或 465
53sugar_email_port=
54sugar_email_username=
55sugar_email_password=
56sugar_email_from=
57# 如果 smtp 端口是 465 则需要去掉下面的注释
58# sugar_email_tls=true
59
60# oauth登录模式的配置
61sugar_oauth_authorize_url=
62sugar_oauth_token_url=
63sugar_oauth_client_id=
64sugar_oauth_client_secret=
65sugar_oauth_scope=
66sugar_oauth_info_url=
67sugar_oauth_data_username=
68sugar_oauth_data_useremail=
69sugar_oauth_email_suffix=
70sugar_oauth_logout_url=
71sugar_oauth_token_get=
72
73# token登录模式的配置
74sugar_token_login_url=
75sugar_token_login_getTokenPath=
76sugar_token_login_getUserInfoURL=
77sugar_token_login_getUserInfoMethod=
78sugar_token_login_getUserInfoExtraParam=
79sugar_token_login_getUserInfoPostType=
80sugar_token_login_getUserInfoSendTokenPath=token
81sugar_token_login_goToURLPath=
82sugar_token_login_getUserInfoGetUserEmailPath=
83sugar_token_login_getUserInfoGetUserNamePath=
84sugar_token_login_email_suffix=
85sugar_token_login_sync_user_attr_path=
86sugar_token_logout_url=
87# 用户信息的唯一标识字段名,类似id
88sugar_user_id_field=
89
90# ldap登录模式的配置
91sugar_ldap_login_url=
92sugar_ldap_login_base=
93sugar_ldap_login_key=
94sugar_ldap_login_admin=
95sugar_ldap_login_admin_password=
96sugar_ldap_email_suffix=
97sugar_ldap_password_type=
98
99# 企业微信、钉钉和飞书的集成
100sugar_companywx_oauth_appid=
101sugar_companywx_oauth_secret=
102sugar_companywx_oauth_agentid=
103sugar_dd_oauth_appid=
104sugar_dd_oauth_appkey=
105sugar_dd_oauth_secret=
106sugar_dd_oauth_agentid=
107sugar_lark_oauth_appid=
108sugar_lark_oauth_secret=
109sugar_lark_use_private=
110sugar_lark_origin=
111
112# 企业角色相关的配置
113sugar_enterprise_role_enable=
114sugar_enterprise_role_name=
115sugar_enterprise_role_enter_tip=
116sugar_enterprise_role_url=
117sugar_enterprise_role_syncUserMethod=
118sugar_enterprise_role_syncUserSendIDPath=
119sugar_enterprise_role_syncUserArrayPath=
120sugar_enterprise_role_syncUserEmailPath=
121sugar_enterprise_role_syncUserNamePath=
122sugar_enterprise_role_userEmailSuffix=
123
124# session强制过期天数(默认是7,表示登录账号后7天后强制失效。支持小数,如0.5表示12小时)
125sugar_session_maxAge_days=
126# 用户连续多少小时无操作后自动退出登录(默认是0,表示不受限制。支持小数,如0.5表示用户30分钟无操作后自动退出登录),5.1.0及之后版本才支持
127sugar_session_expire_no_operation=
128# SQL查询行数和大小以及格式化时间限制
129# 查询结果的最大行数限制,云上默认是2万行、私有部署中默认10万行
130sugar_query_result_max_rows=
131# 查询结果的大小限制(单位是MB),云上默认是15MB、私有部署中默认30MB
132sugar_query_result_max_size=
133# 查询之后的数据格式化时间限制(单位是秒,即worker的计算时间限制),默认是40秒
134sugar_worker_timeout=
135
136# 是否HTTPS,只有您部署的sugar并且设置了HTTPS证书时才需要配置
137sugar_is_https=
138# 是否忽略SQL语句的安全检查(准许SQL中出现drop、delete等关键词),默认是都检查,填写true时将不检查,1.9.1版本之后才支持
139sugar_ignore_sql_security_check=0
140# 私有部署下是否不显示home首页,直接跳到login登录页面
141sugar_home_redirect_login=0
142# 私有部署下是否不显示文档页面,直接跳转到login登录页面
143sugar_docs_redirect_login=0
144# 私有部署下是否不展示顶部导航中的文档相关入口
145sugar_hide_docs_link=0
146# 私有部署下是否隐藏空间广场右侧的官方示例和整个公告栏
147sugar_hide_demo_and_news=0
148# 私有部署下是否隐藏空间广场右下脚的产品动态
149sugar_disable_product_news=0
150# 私有部署下是否隐藏空间广场右下脚的快速入门
151sugar_disable_entry=0
152# 私有部署下想为某些固定 path 返回固定文字内容,多个时使用!S|U|G|A|R!进行分割(针对百度/微信等要求在服务器指定path下放置指定文件的情况)
153sugar_fix_path=
154# 私有部署下固定 path 返回的固定文字内容,多个时使用!S|U|G|A|R!进行分割
155sugar_fix_path_content=
156# 自动分析相关配置,默认开启
157sugar_enable_analyze=
158# 是否禁用openAPI
159sugar_disable_openapi=
160# 是否禁用「组织管理」的「用户管理」中添加新用户,在单点登录的一些场景下,一般是不让组织管理员主动添加新用户的
161sugar_disable_add_new_user=0
162# 使用 HTTP 时可不配置本项、使用 HTTP 轮询则配置为 polling、使用 WebSocket 则配置为 websocket
163# 启用 WebSocket 方式时,需确认服务所在网络环境支持 WebSocket 连接。在集群部署中使用轮询和 WebSocket 方式时,建议前置反向代理支持 sticky-session。
164sugar_analyze_link_type=
165# 波动分析相关配置,默认开启
166sugar_enable_undulate=
167# 是否允许使用「数据源启用备用地址」功能,默认不使用
168sugar_enable_alternative_db=
169
170# 历史版本相关配置,默认开启
171sugar_enable_snapshot=
172# 历史版本数量上限
173sugar_snapshot_limit=50
174# 历史版本锁定的数量上限
175sugar_snapshot_locked_limit=10
176
177# 如果要禁用报表和大屏的公开分享功能,此项配置为1
178sugar_disable_public_share=
179# 如果要禁用报表和大屏的加密分享功能,此项配置为1
180sugar_disable_encrypted_share=

上面每项配置的具体含义详见下一章节运行配置说明

  • 2、在env文件的目录下执行以下命令来启动Sugar BI

为了能让您方便的看到Sugar BI的日志,所以我们使用 Docker 的 Volume 将日志挂载到宿主机,新建文件夹~/sugar-log(Sugar BI的运行日志将存贮在这个目录下,当然目录名称您可以随意修改,同步替换下面命令中的即可):

Shell
1docker run --ulimit nofile=65100:65100 --shm-size=4g --restart unless-stopped -d -p 8000:8580 --name sugar -v ~/sugar-log:/sugar-app/log --env-file env sugarbi/sugar:6.4.1

有时您的 docker 网络环境可能配置有问题,会导致 MySQL 数据库连接不上,Sugar BI 还有另外一种方式 link 的方式启动。如果您的 MySQL 和 Sugar BI 运行在同一台机器上,并且 MySQL 是使用上面的 docker 方式启动的,您可以在env文件中将sugar_db_host填写为sugar-mysql,然后使用下面的命令来启动:

Shell
1docker run --link sugar-mysql --ulimit nofile=65100:65100 --shm-size=4g --restart unless-stopped -d -p 8000:8580 --name sugar -v ~/sugar-log:/sugar-app/log --env-file env sugarbi/sugar:6.4.1

其中 8000 是本地端口,可以修改成自己想要的端口,比如 80,最后在浏览器上访问 http://部署的机器 ip:8000 如果是本机部署,即访问 http://127.0.0.1:8000 ,浏览器成功访问Sugar BI的首页之后,您还必须进行下面的「同步数据库结构」步骤。

同步数据库结构

前面已经描述了Sugar BI需要您提供一个 MySQL 数据库,这个数据库用来存储Sugar BI的系统数据。在您第一次安装Sugar BI、或者每次升级Sugar BI时,都需要进行数据库结构的升级和同步。升级数据库结构非常简单,只需要您使用浏览器访问 http://部署的机器 ip:8000/migration 如果是本机部署,即访问 http://127.0.0.1:8000/migration , 首次访问该页面大约需要数十秒,请不要刷新浏览器耐心等待一会,如果同步成功将会看到类似下面的结果:

图片

之后如果您多次访问该页面,将会看到这样的成功提示:

图片

如果运行失败,您会看到类似下面的错误提示:

图片

安装出现问题,可以试试参看私有部署安装常见问题。

二、swarm 集群部署

Sugar BI本身是无状态的,支持多机部署来提升产品可用性,Sugar BI 可以部署到任意多台服务器上,然后使用类似 nginx 来做一个代理和负载均衡。

需要注意,多机模式除了需要自行搭建 MySQL 数据库,还需要再搭建一个 redis 服务,或者使用下面的方法直接内置进去。

Docker 多机集群模式,我们推荐使用 Docker 自带的 swarm,关于如何使用 swarm 请参考 Docker 官方文档。使用 swarm 部署Sugar BI分两步:

  • 1、新建一个sugar-compose.yml文件,并用文本编辑器打开,复制以下的内容并填写相应部分:

下面已经将Sugar BI运行日志挂载到了宿主机的/sugar-log目录下,需要您手动在所有机器上新建该目录,当然您可以使用其他的目录来存储日志。

YAML
1version: '3.6'
2
3services:
4  web:
5    # 如果机器没有外网,请参考「直接在线下载」章节,将镜像下载至集群内的每个机器,并将这里的镜像地址配置为 tag 后的地址,如:sugarbi/sugar:6.4.1
6    image: registry.baidubce.com/sugarbi/sugar:6.4.1
7    deploy:
8      mode: replicated
9      # 部署的份数,可多份来提高系统的高可用性
10      replicas: 3
11      restart_policy:
12        condition: on-failure
13    ports:
14      - '8000:8580'
15    volumes:
16      - '/sugar-log:/sugar-app/log'
17      - type: tmpfs
18        target: /dev/shm
19        tmpfs:
20          size: 4096000000
21    networks:
22      - overlay
23    environment:
24      sugar_can_connect_local_ip: 'true'
25
26      # MySQL数据库相关
27      sugar_db_username: root
28      sugar_db_password: lovesugar123
29      sugar_db_database: sugarbi
30      sugar_db_host: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
31      sugar_db_port: 3306
32
33      # license相关
34      sugar_company:
35      sugar_license:
36
37      # redis 配置,用于「数据缓存」或者「定时推送」「数据预警」等功能
38      sugar_redis_host: internal_redis
39      # sugar_redis_port: 如果自己搭建可能需要
40      # sugar_redis_password: 如果自己搭建可能需要
41
42      # 如果您搭建的 redis 是集群模式(Cluster)则需要将 sugar_redis_enable_cluster 设置为 1
43      # 此时,host 和 port 可以配置多个,用英文逗号分割并且host和port的个数要相同并一一对应,
44      # 如host配置为:1.1.1.1,2.2.2.2  port配置为:6379,6388
45      # redis 的集群模式(Cluster),需要在 3.3.4 及以上版本中才支持
46      sugar_redis_enable_cluster:
47
48      # 如果您搭建的 redis 是哨兵模式(Sentinel)则需要将 sugar_redis_enable_sentinel 设置为 1
49      # 并配置 sugar_redis_sentinel_name
50      # 此时,host 和 port 可以配置多个,用英文逗号分割并且host和port的个数要相同并一一对应,
51      # 如host配置为:1.1.1.1,2.2.2.2  port配置为:6379,6388
52      # redis 的哨兵模式(Sentinel),需要在 3.5.1 及以上版本中才支持
53      sugar_redis_enable_sentinel:
54      # 哨兵的名称
55      sugar_redis_sentinel_name:
56      # 哨兵节点的密码(如果只给 Redis 主节点配置了密码,则只需要配置sugar_redis_password即可)
57      sugar_redis_sentinel_password:
58
59      # 登录形式,支持 demo、email、password、oauth、token、ldap
60      # 如果是最初步的测试,可以使用demo方式,后面的其他登录方式的配置都可以不用填写
61      sugar_login_type: demo
62
63      # 登录类型为password时,配置为1即可开启密码复杂度判断(要求密码中至少需要包含大写字母、小写字母、数字、特殊符号中的三种,并且密码长度大于8;密码错误三次会锁定15分钟)
64      sugar_password_secure_check:
65      # 登录类型为password时,可以开启密码过期提醒,过期后要求用户必须修改密码
66      # 格式为数字加日期标识符。天:d,月:m,季:q,年:y。如2个月可表示为2m,3天为3d
67      sugar_password_expire:
68
69      # email登录模式的配置,以及「定时推送」「数据预警」功能也需要这块的配置
70      sugar_email_host:
71      sugar_email_port:
72      sugar_email_username:
73      sugar_email_password:
74      sugar_email_from:
75      # 如果邮箱端口是465, 则需要去掉下面的#号
76      # sugar_email_tls: true
77
78      # oauth登录模式的配置
79      sugar_oauth_authorize_url:
80      sugar_oauth_token_url:
81      sugar_oauth_client_id:
82      sugar_oauth_client_secret:
83      sugar_oauth_scope:
84      sugar_oauth_info_url:
85      sugar_oauth_data_username:
86      sugar_oauth_data_useremail:
87      sugar_oauth_email_suffix:
88      sugar_oauth_logout_url:
89      sugar_oauth_token_get:
90      # 用户信息的唯一标识字段名,类似id
91      sugar_user_id_field:
92
93      # token登录模式的配置
94      sugar_token_login_url:
95      sugar_token_login_getTokenPath:
96      sugar_token_login_getUserInfoURL:
97      sugar_token_login_getUserInfoMethod:
98      sugar_token_login_getUserInfoExtraParam:
99      sugar_token_login_getUserInfoPostType:
100      sugar_token_login_getUserInfoSendTokenPath: token
101      sugar_token_login_goToURLPath:
102      sugar_token_login_getUserInfoGetUserEmailPath:
103      sugar_token_login_getUserInfoGetUserNamePath:
104      sugar_token_login_email_suffix:
105      sugar_token_login_sync_user_attr_path:
106      sugar_token_logout_url:
107
108      # ldap登录模式的配置
109      sugar_ldap_login_url:
110      sugar_ldap_login_base:
111      sugar_ldap_login_key:
112      sugar_ldap_login_admin:
113      sugar_ldap_login_admin_password:
114      sugar_ldap_email_suffix:
115      sugar_ldap_password_type:
116
117      # 企业微信、钉钉和飞书的集成
118      sugar_companywx_oauth_appid:
119      sugar_companywx_oauth_secret:
120      sugar_companywx_oauth_agentid:
121      sugar_dd_oauth_appid:
122      sugar_dd_oauth_appkey:
123      sugar_dd_oauth_secret:
124      sugar_dd_oauth_agentid:
125      sugar_lark_oauth_appid:
126      sugar_lark_oauth_secret:
127      sugar_lark_use_private:
128      sugar_lark_origin:
129
130      # 企业角色相关的配置
131      sugar_enterprise_role_enable:
132      sugar_enterprise_role_name:
133      sugar_enterprise_role_enter_tip:
134      sugar_enterprise_role_url:
135      sugar_enterprise_role_syncUserMethod:
136      sugar_enterprise_role_syncUserSendIDPath:
137      sugar_enterprise_role_syncUserArrayPath:
138      sugar_enterprise_role_syncUserEmailPath:
139      sugar_enterprise_role_syncUserNamePath:
140      sugar_enterprise_role_userEmailSuffix:
141
142      # session强制过期天数(默认是7,表示登录账号后7天后强制失效。支持小数,如0.5表示12小时)
143      sugar_session_maxAge_days:
144      # 用户连续多少小时无操作后自动退出登录(默认是0,表示不受限制。支持小数,如0.5表示用户30分钟无操作后自动退出登录),5.1.0及之后版本才支持
145      sugar_session_expire_no_operation:
146      # SQL查询行数和大小以及格式化时间限制
147      # 查询结果的最大行数限制,云上默认是2万行、私有部署中默认10万行
148      sugar_query_result_max_rows:
149      # 查询结果的大小限制(单位是MB),云上默认是15MB、私有部署中默认30MB
150      sugar_query_result_max_size:
151      # 查询之后的数据格式化时间限制(单位是秒,即worker的计算时间限制),默认是40秒
152      sugar_worker_timeout:
153
154      # 是否HTTPS,只有您部署的sugar并且设置了HTTPS证书时才需要配置
155      sugar_is_https:
156      # 是否忽略SQL语句的安全检查(准许SQL中出现drop、delete等关键词),默认是都检查,填写true时将不检查,1.9.1版本之后才支持
157      sugar_ignore_sql_security_check: '0'
158      # 私有部署下是否不显示home首页,直接跳到login登录页面
159      sugar_home_redirect_login: '0'
160      # 私有部署下是否不显示文档页面,直接跳转到login登录页面
161      sugar_docs_redirect_login: '0'
162      # 私有部署下是否不展示顶部导航中的文档相关入口
163      sugar_hide_docs_link: '0'
164      # 私有部署下是否隐藏空间广场右侧的官方示例和公告栏
165      sugar_hide_demo_and_news: '0'
166      # 私有部署下是否隐藏空间广场右下脚的产品动态
167      sugar_disable_product_news: '0'
168      # 私有部署下是否隐藏空间广场右下脚的快速入门
169      sugar_disable_entry: '0'
170      # 私有部署下想为某些固定 path 返回固定文字内容,多个时使用!S|U|G|A|R!进行分割(针对百度/微信等要求在服务器指定path下放置指定文件的情况)
171      sugar_fix_path:
172      # 私有部署下固定 path 返回的固定文字内容,多个时使用!S|U|G|A|R!进行分割
173      sugar_fix_path_content:
174      # 自动分析相关配置,默认开启
175      sugar_enable_analyze:
176      # 是否禁用openAPI
177      sugar_disable_openapi:
178      # 是否禁用「组织管理」的「用户管理」中添加新用户,在单点登录的一些场景下,一般是不让组织管理员主动添加新用户的
179      sugar_disable_add_new_user:
180      # 使用 HTTP 时可不配置本项、使用 HTTP 轮询则配置为 polling、使用 WebSocket 则配置为 websocket
181      # 启用 WebSocket 方式时,需确认服务所在网络环境支持 WebSocket 连接。在集群部署中使用轮询和 WebSocket 方式时,建议前置反向代理支持 sticky-session。
182      sugar_analyze_link_type:
183      # 波动分析相关配置,默认开启
184      sugar_enable_undulate:
185      # 是否允许使用「数据源启用备用地址」功能,默认不使用
186      sugar_enable_alternative_db:
187
188      # 历史版本相关配置,默认开启
189      sugar_enable_snapshot:
190      # 历史版本数量上限
191      sugar_snapshot_limit: 50
192      # 历史版本锁定的数量上限
193      sugar_snapshot_locked_limit: 10
194
195      # 如果要禁用报表和大屏的公开分享功能,此项配置为1
196      sugar_disable_public_share:
197      # 如果要禁用报表和大屏的加密分享功能,此项配置为1
198      sugar_disable_encrypted_share:
199
200  internal_redis:
201    # 如果机器没有外网,请先将 redis 镜像拷贝至机器,并将这里的镜像地址配置为 tag 后的地址
202    image: redis:5
203    deploy:
204      replicas: 1
205    networks:
206      - overlay
207
208networks:
209  overlay:

上面每项配置的具体含义详见下一章节运行配置说明

  • 2、在sugar-compose.yml文件的目录下执行以下命令来启动Sugar BI
Shell
1docker stack deploy --compose-file sugar-compose.yml sugar

最后在浏览器上访问 http://部署的机器-ip:8000 即可看到Sugar BI的运行页面。并且也需要执行上面的同步数据库结构

使用 swarm 时,我们建议使用管理工具:portainer.io

三、kubernetes 集群部署

Sugar BI本身是无状态的,支持使用 kubernetes 集群方式来进行部署。

需要注意,kubernetes 集群部署方式除了需要自行搭建 MySQL 数据库,还需要再提供一个 redis 服务。

  • 1、新建一个sugar.yaml文件,并用文本编辑器打开,复制以下的内容并填写相应部分:
YAML
1kind: Deployment
2apiVersion: apps/v1
3metadata:
4  labels:
5    app: sugar
6  name: sugar-deployment
7spec:
8  selector:
9    matchLabels:
10      app: sugar
11  replicas: 2 # 部署两份Pod实例,可根据实际情况修改
12  template:
13    metadata:
14      labels:
15        app: sugar
16    spec:
17      volumes:
18        - name: sugar-log
19          emptyDir: {} # 日志挂载的volume,可以根据实际情况修改
20      containers:
21        - name: sugar
22          image: registry.baidubce.com/sugarbi/sugar:6.4.1 # sugar的镜像地址,根据实际情况修改
23          ports:
24            - containerPort: 8580
25          volumeMounts:
26            - name: sugar-log
27              mountPath: /sugar-app/log
28          livenessProbe:
29            httpGet:
30              path: /static/user.png
31              port: 8580
32            initialDelaySeconds: 30
33            timeoutSeconds: 5
34          env:
35            - name: sugar_can_connect_local_ip
36              value: '1'
37
38            # MySQL数据库相关配置,必填
39            - name: sugar_db_host
40              value: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
41            - name: sugar_db_port
42              value: '3306'
43            - name: sugar_db_database
44              value: sugarbi
45            - name: sugar_db_username
46              value: root
47            - name: sugar_db_password
48              value: lovesugar123
49
50            # license相关,必填
51            - name: sugar_company
52              value:
53            - name: sugar_license
54              value:
55
56            # redis配置,必填,需要给sugar提供一个外部的redis服务,用于「数据缓存」或者「定时推送」「数据预警」等功能
57            - name: sugar_redis_host
58              value:
59            - name: sugar_redis_port
60              value:
61            - name: sugar_redis_password # 根据实际情况,一般不需要
62              value:
63            # 如果您搭建的 redis 是集群模式(Cluster)则需要将 sugar_redis_enable_cluster 设置为 1
64            # 此时,host 和 port 可以配置多个,用英文逗号分割并且host和port的个数要相同并一一对应,
65            # 如host配置为:1.1.1.1,2.2.2.2  port配置为:6379,6388
66            # redis 的集群模式(Cluster),需要在 3.3.4 及以上版本中才支持
67            - name: sugar_redis_enable_cluster # 根据实际情况,一般不需要
68              value:
69
70            # 如果您搭建的 redis 是哨兵模式(Sentinel)则需要将 sugar_redis_enable_sentinel 设置为 1
71            # 并配置 sugar_redis_sentinel_name
72            # 此时,host 和 port 可以配置多个,用英文逗号分割并且host和port的个数要相同并一一对应,
73            # 如host配置为:1.1.1.1,2.2.2.2  port配置为:6379,6388
74            # redis 的哨兵模式(Sentinel),需要在 3.5.1 及以上版本中才支持
75            - name: sugar_redis_enable_sentinel # 根据实际情况,一般不需要
76              value:
77            # 哨兵的名称
78            - name: sugar_redis_sentinel_name # 根据实际情况,一般不需要
79              value:
80            # 哨兵节点的密码(如果只给 Redis 主节点配置了密码,则只需要配置sugar_redis_password即可)
81            - name: sugar_redis_sentinel_password # 根据实际情况,一般不需要
82              value:
83
84            # 登录形式,必填,支持 demo、email、password、oauth、token、ldap
85            - name: sugar_login_type
86              value: demo
87
88            # 登录类型为password时,配置为1即可开启密码复杂度判断(要求密码中至少需要包含大写字母、小写字母、数字、特殊符号中的三种,并且密码长度大于8;密码错误三次会锁定15分钟)
89            - name: sugar_password_secure_check
90              value:
91            # 登录类型为password时,可以开启密码过期提醒,过期后要求用户必须修改密码
92            # 格式为数字加日期标识符。天:d,月:m,季:q,年:y。如2个月可表示为2m,3天为3d
93            - name: sugar_password_expire
94              value:
95
96            # email登录模式的配置,以及「定时推送」「数据预警」功能也需要这块的配置
97            - name: sugar_email_host
98              value:
99            - name: sugar_email_port
100              value:
101            - name: sugar_email_username
102              value:
103            - name: sugar_email_password
104              value:
105            - name: sugar_email_from
106              value:
107            - name: sugar_email_tls # 如果邮箱端口是465,则需要配置为true
108              value:
109
110            # oauth登录模式的配置
111            - name: sugar_oauth_authorize_url
112              value:
113            - name: sugar_oauth_token_url
114              value:
115            - name: sugar_oauth_client_id
116              value:
117            - name: sugar_oauth_client_secret
118              value:
119            - name: sugar_oauth_scope
120              value:
121            - name: sugar_oauth_info_url
122              value:
123            - name: sugar_oauth_data_username
124              value:
125            - name: sugar_oauth_data_useremail
126              value:
127            - name: sugar_oauth_email_suffix
128              value:
129            - name: sugar_oauth_logout_url
130              value:
131            - name: sugar_oauth_token_get
132              value:
133            # 用户信息的唯一标识字段名,类似id
134            - name: sugar_user_id_field
135              value:
136
137            # token登录模式的配置
138            - name: sugar_token_login_url
139              value:
140            - name: sugar_token_login_getTokenPath
141              value:
142            - name: sugar_token_login_getUserInfoURL
143              value:
144            - name: sugar_token_login_getUserInfoMethod
145              value:
146            - name: sugar_token_login_getUserInfoExtraParam
147              value:
148            - name: sugar_token_login_getUserInfoPostType
149              value:
150            - name: sugar_token_login_getUserInfoSendTokenPath
151              value: token
152            - name: sugar_token_login_goToURLPath
153              value:
154            - name: sugar_token_login_getUserInfoGetUserEmailPath
155              value:
156            - name: sugar_token_login_getUserInfoGetUserNamePath
157              value:
158            - name: sugar_token_login_email_suffix
159              value:
160            - name: sugar_token_login_sync_user_attr_path
161              value:
162            - name: sugar_token_logout_url
163              value:
164
165            # ldap登录模式的配置
166            - name: sugar_ldap_login_url
167              value:
168            - name: sugar_ldap_login_base
169              value:
170            - name: sugar_ldap_login_key
171              value:
172            - name: sugar_ldap_login_admin
173              value:
174            - name: sugar_ldap_login_admin_password
175              value:
176            - name: sugar_ldap_email_suffix
177              value:
178            - name: sugar_ldap_password_type
179              value:
180
181            # 企业微信、钉钉和飞书集成
182            - name: sugar_companywx_oauth_appid
183              value:
184            - name: sugar_companywx_oauth_secret
185              value:
186            - name: sugar_companywx_oauth_agentid
187              value:
188            - name: sugar_dd_oauth_appkey
189              value:
190            - name: sugar_dd_oauth_appid
191              value:
192            - name: sugar_dd_oauth_secret
193              value:
194            - name: sugar_dd_oauth_agentid
195              value:
196            - name: sugar_lark_oauth_appid
197              value:
198            - name: sugar_lark_oauth_secret
199              value:
200            - name: sugar_lark_use_private
201              value:
202            - name: sugar_lark_origin
203              value:
204
205            # 企业角色相关的配置
206            - name: sugar_enterprise_role_enable
207              value:
208            - name: sugar_enterprise_role_name
209              value:
210            - name: sugar_enterprise_role_enter_tip
211              value:
212            - name: sugar_enterprise_role_url
213              value:
214            - name: sugar_enterprise_role_syncUserMethod
215              value:
216            - name: sugar_enterprise_role_syncUserSendIDPath
217              value:
218            - name: sugar_enterprise_role_syncUserArrayPath
219              value:
220            - name: sugar_enterprise_role_syncUserEmailPath
221              value:
222            - name: sugar_enterprise_role_syncUserNamePath
223              value:
224            - name: sugar_enterprise_role_userEmailSuffix
225              value:
226
227            # session强制过期天数(默认是7,表示登录账号后7天后强制失效。支持小数,如0.5表示12小时)
228            - name: sugar_session_maxAge_days
229              value:
230            # 用户连续多少小时无操作后自动退出登录(默认是0,表示不受限制。支持小数,如0.5表示用户30分钟无操作后自动退出登录),5.1.0及之后版本才支持
231            - name: sugar_session_expire_no_operation
232              value:
233            # SQL查询行数和大小以及格式化时间限制
234            # 查询结果的最大行数限制,云上默认是2万行、私有部署中默认10万行
235            - name: sugar_query_result_max_rows
236              value:
237            # 查询结果的大小限制(单位是MB),云上默认是15MB、私有部署中默认30MB
238            - name: sugar_query_result_max_size
239              value:
240            # 查询之后的数据格式化时间限制(单位是秒,即worker的计算时间限制),默认是40秒
241            - name: sugar_worker_timeout
242              value:
243
244            # 是否HTTPS,只有您部署的sugar并且设置了HTTPS证书时才需要配置
245            - name: sugar_is_https
246              value:
247            # 是否忽略SQL语句的安全检查(准许SQL中出现drop、delete等关键词),默认是都检查,填写true时将不检查,1.9.1版本之后才支持
248            - name: sugar_ignore_sql_security_check
249              value: '0'
250            # 私有部署下是否不显示home首页,直接跳到login登录页面
251            - name: sugar_home_redirect_login
252              value: '0'
253            # 私有部署下是否不显示文档页面,直接跳转到login登录页面
254            - name: sugar_docs_redirect_login
255              value: '0'
256            # 私有部署下是否不展示顶部导航中的文档相关入口
257            - name: sugar_hide_docs_link
258              value: '0'
259            # 私有部署下是否隐藏空间广场右侧的官方示例和公告栏
260            - name: sugar_hide_demo_and_news
261              value: '0'
262            # 私有部署下是否隐藏空间广场右下角的产品动态
263            - name: sugar_disable_product_news
264              value: '0'
265            # 私有部署下是否隐藏空间广场右下角的快速入门
266            - name: sugar_disable_entry
267              value: '0'
268            # 私有部署下想为某些固定 path 返回固定文字内容,多个时使用!S|U|G|A|R!进行分割(针对百度/微信等要求在服务器指定path下放置指定文件的情况)
269            - name: sugar_fix_path
270              value:
271            # 私有部署下固定 path 返回的固定文字内容,多个时使用!S|U|G|A|R!进行分割
272            - name: sugar_fix_path_content
273              value:
274            # 自动分析相关配置,默认开启
275            - name: sugar_enable_analyze
276              value:
277            # 是否禁用openAPI
278            - name: sugar_disable_openapi
279              value:
280            # 是否禁用「组织管理」的「用户管理」中添加新用户,在单点登录的一些场景下,一般是不让组织管理员主动添加新用户的
281            - name: sugar_disable_add_new_user
282              value:
283            # 使用 HTTP 时可不配置本项、使用 HTTP 轮询则配置为 polling、使用 WebSocket 则配置为 websocket
284            # 启用 WebSocket 方式时,需确认服务所在网络环境支持 WebSocket 连接。在集群部署中使用轮询和 WebSocket 方式时,建议前置反向代理支持 sticky-session。
285            - name: sugar_analyze_link_type
286              value:
287            # 波动分析相关配置,默认开启
288            - name: sugar_enable_undulate
289              value:
290            # 是否允许使用「数据源启用备用地址」功能,默认不使用
291            - name: sugar_enable_alternative_db
292              value:
293
294            # 历史版本相关配置,默认开启
295            - name: sugar_enable_snapshot
296              value:
297            # 历史版本数量上限
298            - name: sugar_snapshot_limit
299              value: '50'
300            # 历史版本锁定的数量上限
301            - name: sugar_snapshot_locked_limit
302              value: '10'
303
304            # 如果要禁用报表和大屏的公开分享功能,此项配置为1
305            - name: sugar_disable_public_share
306            - value:
307            # 如果要禁用报表和大屏的加密分享功能,此项配置为1
308            - name: sugar_disable_encrypted_share
309            - value:
310---
311kind: Service
312apiVersion: v1
313metadata:
314  labels:
315    app: sugar
316  name: sugar-service
317spec:
318  ports:
319    - port: 8580
320      targetPort: 8580
321      nodePort: 32580
322  type: NodePort # 这块使用NodePort方式,并且配置了nodePort为32580端口,可以根据实际情况修改
323  selector:
324    app: sugar

上面每项配置的具体含义详见下一章节运行配置说明

  • 2、在sugar.yaml文件的目录下执行以下命令来启动Sugar BI
Shell
1kubectl apply -f sugar.yaml

最后在浏览器上访问 http://部署的机器-ip:32580 即可看到Sugar BI的运行页面。并且也需要执行上面的同步数据库结构

运行配置说明

无论是 Docker 单机还是 Docker 集群模式运行Sugar BI,基本都是配置一些 env 环境变量,下面对这些环境变量配置进行说明:

  • sugar_can_connect_local_ip:用来控制Sugar BI的数据源中是否能够连接局域网的 ip,一般私有部署情况下,配置为true即可,配置false可以让Sugar BI只能连接公网域名和 ip
  • MySQL 数据库相关,这块是用来配置Sugar BI所依赖的 MySQL 数据库,详见Sugar BI 所需的软件环境

    • sugar_db_username: 用户名
    • sugar_db_password: 密码
    • sugar_db_database: 数据库名称
    • sugar_db_host: 填写您安装 MySQL 机器的 IP,即使是本机也不能使用 localhost 和 127.0.0.1
    • sugar_db_port: 端口号
  • License 配置,详见申请试用 License

    • sugar_company: 组织代码
    • sugar_license: 详细的 License 内容(长串字符)

登录账号相关配置说明

sugar_login_type: 登录账号的类型,支持 demo、password、email、oauth、token、ldap,下面对这六种登录形式分别说明:

1、demo

sugar_login_type配置为demo表示测试环境,登录时必须使用企业邮箱,但是验证码不会通过邮件发送,而是直接展示在页面上,用户直接复制页面上展示的验证码即可登录,如下图:

图片

2、password

sugar_login_type配置为password表示使用Sugar BI平台自带的账号体系,用户通过用户名、密码来登录Sugar BI,账号可由组织的管理员统一录入。

如果您之前已经使用其他的登录方式进行了部署并登录过了Sugar BI私有版(例如:之前使用demo方式部署并且登录使用了,即您私有部署的Sugar BI中已经有账户了),那么直接使用之前登录的企业邮箱以及默认密码sugar12345即可直接登录。如果是初次部署,之前还没有任何用户登录过Sugar BI私有版,在登录之前我们需要创建一个默认账户(此账户将会成为组织的管理员),使用浏览器访问 http://部署的机器-ip:8000/openapi/createUser?name=XXX 即可创建一个默认的组织管理员账户,其中的XXX需要按照实际情况替换成您的企业邮箱如zhangsan@baidu.com。

创建完默认账户后,在登录时直接使用默认密码sugar12345即可登录:

图片

默认的组织管理员账户登录之后,可以在「组织管理」的「用户管理」中来添加其他的用户(添加的其他用户,登录密码同样是默认的sugar12345):

图片

所有的用户在登录之后,可点击页面顶部的「个人中心」,然后进入「个人信息管理」来修改登录密码:

图片

如果有用户忘记了密码,组织的管理员也可以将用户的密码重置为sugar12345,可以在「组织管理」的「用户管理」中进行密码重置操作:

图片

如果配置了密码复杂度判断, 那么在设置密码时就会进行密码强度判断,并且密码需要包含大写字母、小写字母、数字、特殊符号的任意三种。

图片

除此之外,还可以设置密码的有效期,格式为数字加上日期标识符。日期标识符包括:d, m, q, y, 其中 d 表示天,m 表示月,q 表示季,y 表示年。如 2 个月可表示为 2m,3 天为 3d。

当密码还有不到十天就要过期时,登录时会给出尽快更改密码的提示。

图片

图片

如果密码已经过期,那么您将无法进入 Sugar BI,必须修改密码过后才能继续。

图片

3、email

sugar_login_type配置为email表示使用邮箱发送验证码的方式来登录。这种方式要求您的组织有企业邮箱服务,需要您给Sugar BI平台配置一个企业邮箱账号,该邮箱账号用来给您的组织员工发送登录验证码邮件,所以需要您填写配置文件中的这些配置:

  • sugar_email_host: 您的企业邮箱服务器的域名或 ip
  • sugar_email_port: 企业邮箱服务器的端口号
  • sugar_email_username: 给Sugar BI使用的邮箱账户用户名,如 zhangsan
  • sugar_email_password: 给Sugar BI使用的邮箱账户密码
  • sugar_email_from: Sugar BI发送邮件时的发件人邮箱,一般和邮箱用户名强相关,如 zhangsan@baidu.com
  • sugar_email_tls: 如果这个端口是 tls 的(比如 465 端口很可能是)则需要加这个配置,值是 true,如果不是就不需要加

4、oauth

sugar_login_type配置为oauth,Sugar BI支持使用 OAuth 2.0 的方式对接企业内部账号的单点登录系统,需要您对配置文件中的以下配置进行填写:

  • sugar_oauth_authorize_url: Sugar BI向您的 Oauth 服务端申请认证的 URI,如 https://your-authorization-server-host/auth
  • sugar_oauth_token_get: 默认情况下请求 sugar_oauth_authorize_url 的方式是 POST,如果需要使用 GET 方式,将该配置设置为1即可
  • sugar_oauth_token_url: Sugar BI向您的 Oauth 服务端获取 Access Token 的 URI,如 https://your-authorization-server-host/token
  • sugar_oauth_client_id: 您的 Oauth 服务端给Sugar BI分配的 client_id
  • sugar_oauth_client_secret: 您的 Oauth 服务端给Sugar BI分配的 client_secret
  • sugar_oauth_scope: 授权的范围 scope,依赖您的 Oauth 服务端,目前必填
  • sugar_oauth_info_url: 通过认证后,Sugar BI向您的 Oauth 服务端获取当前登录用户详细信息的 API,如 https://your-authorization-server-host/userinfo
  • sugar_oauth_data_username: 用户详细信息的 API 返回数据中用来表示用户名的字段名,如 name
  • sugar_oauth_data_useremail: 用户详细信息的 API 返回数据中用来表示用户邮箱的字段名,如 email
  • sugar_oauth_email_suffix: 如果用户详细信息的 API 返回数据中没有邮箱字段,那么我们将默认使用 用户名@${sugar_oauth_email_suffix} 方式来拼凑成邮箱,所以需要您配置您组织的企业邮箱后缀,如 baidu.com
  • sugar_oauth_logout_url: 当用户在Sugar BI上 logout 登出之后,跳转到 OAuth 服务端的登出 url,如果不配置将会默认跳转到Sugar BI的首页
  • sugar_user_id_field: 用户信息中的唯一标识字段名,类似 id,具体用法参考SQL 中嵌入用户信息

Sugar BI使用的是 OAuth 2.0 的授权码模式,可参考这里了解 Oauth 2.0 的授权码模式。

上面的 OAuth 2.0 的配置,前五项都是标准的 Oauth 配置,有些 OAuth 的 server 端需要明确配置应用的redirect_uri(即登录回调 url),Sugar BI的redirect_uri是 http://部署 Sugar BI 的机器-ip:8000/login/oauthCallback

上面sugar_oauth_info_url以及后面的三行是用来配置Sugar BI通过您的 Oauth 服务端认证后,获取当前登录用户的详细信息的 API 以及该 API 返回的数据字段信息。访问该 API 时,我们在请求的 header 头文件中加上了Authorization: Bearer ${access_token}这样的 access_token 信息,并且在 API 的参数中也加上了,如:https://your-authorization-server-host/userinfo?access_token=${access_token} 该 API 的返回必须是 JSON 格式数据,对于最后三项配置我们根据返回 JSON 的不同格式来做简单的示例:

  • 返回 JSON 如:{userid:10, usermail: 'zhangsan@baidu.com', username: 'zhangsan'} 那么最后几项配置为:

    • sugar_oauth_data_username: username
    • sugar_oauth_data_useremail: usermail
    • sugar_oauth_email_suffix:
    • sugar_user_id_field: userid

此时返回的 JSON 数据中用户的邮箱,所以不需要配置sugar_oauth_email_suffix

  • 返回 JSON 如:{name: 'zhangsan'} 那么最后三项配置为:

    • sugar_oauth_data_username: name
    • sugar_oauth_data_useremail:
    • sugar_oauth_email_suffix: baidu.com

此时返回的 JSON 数据中没有用户的邮箱,所以不需要配置sugar_oauth_data_useremail,但是必须要配置sugar_oauth_email_suffix(注意并不是固定的 baidu.com,需要根据实际情况替换成您的企业邮箱后缀)

  • 返回 JSON 如:{email: 'zhangsan@baidu.com'} 那么最后三项配置为:

    • sugar_oauth_data_username:
    • sugar_oauth_data_useremail: email
    • sugar_oauth_email_suffix:

此时返回的 JSON 数据中只有用户的邮箱,只需要配置邮箱字段名sugar_oauth_data_useremail即可

5、token

sugar_login_type配置为token,Sugar BI 的 token 登录方式是一种便于业务方对接的登录方式,登录流程如下:

  • a、Sugar BI 检测到用户未登录,跳转到业务方指定页面 URL1 进行登录操作
  • b、用户登录成功后,业务方带上一个 token 回调 Sugar BI 的指定 URL2:http://部署 Sugar BI 的机器 ip:8000/login/tokenLoginCallback?token=${token}
  • c、我们会使用这个 token 调用业务方的 URL3 获取登录用户的信息并在 Sugar BI 中进行登录

需要您对配置文件中的以下配置进行填写:

  • sugar_login_type: token
  • sugar_token_login_url: 未登录时要跳转到的业务方登录页 url,对应流程中的 URL1
  • sugar_token_login_getTokenPath: 用户在登录页登录后,业务方访问 Sugar BI 回调 URL2 时,携带 token 信息的字段的名称,默认为 token ,如果是其他名称可以在这里配置
  • sugar_token_login_goToURLPath: 用户在登录页登录后,业务方访问 Sugar BI 回调 URL2 时,可以指定一个地址字段,在用户完成登录过程后会跳转到这个地址。地址字段的名称可以使用这个环境变量配置,默认为 url 。一般场景不需要配置这个环境变量。
  • sugar_token_login_getUserInfoURL: 业务方提供的使用 token 获取用户信息的接口地址,对应流程中 URL3
  • sugar_token_login_getUserInfoMethod: 访问 URL3 的 http 方法,默认为 post,请求体为 json 格式;如果是 get 可以配置这里为:get
  • sugar_token_login_getUserInfoExtraParam: post 方式访问 URL3 时可以附加额外的参数,格式如:abc=haha&def=heihei,如果没有额外参数,这个可不填
  • sugar_token_login_getUserInfoPostType: post 方式访问 URL3 时发送数据的方式,默认是 application/json,如果要使用 application/x-www-form-urlencoded 方式,本参数请设置为 x 即可
  • sugar_token_login_getUserInfoSendTokenPath: 访问 URL3 时,token 信息在请求中放置的位置。如果使用 POST 方法,配置 token 的放置路径,路径的起点为请求的 body,格式如:data.token;如果是 get 方法,直接配置在 url params 中的字段名即可。
  • sugar_token_login_getUserInfoGetUserEmailPath: 在获取到 URL3 的返回信息后,用户邮箱字段在返回体中的路径,路径格式例如:data.userEmail。这个字段用来在 Sugar BI 中唯一标识一个用户,最好是企业内的用户邮箱,如果没有,可以使用户名等字段,保证唯一即可
  • sugar_token_login_email_suffix: 如果业务方系统中没有使用用户邮箱作为用户标识,我们会在用户标识后添加一个 @example.com 作为邮箱后缀,您也可以通过这个环境变量自己配置这个邮箱后缀
  • sugar_token_login_getUserInfoGetUserNamePath: 在获取到 URL3 的返回信息后,用户名称字段在返回体中的路径,是用户真正看到的名字,路径格式例如:data.realName
  • sugar_token_logout_url: 如果您需要在 Sugar BI 登出的同时登出您的单点登录系统,可以配置一个登出的跳转 url,如:https://www.xxx.com/logout。 Sugar BI 会在登出后重定向到这个 URL。 还有一种场景是用户在单点登录系统中登出了,需要也能自动登出 Sugar BI ,我们开放了一个 API,您在用户登出时在后端使用 Get 方式调用我们的这个 API 即可让用户也登出 Sugar BI ,API 地址为:http://部署 Sugar BI 的机器 ip:8000/login/tokenLogout?token=${token} ,这个token就是用户登录时的 URL2 中 token,因此如果您要使用这个登出功能,token 必须是唯一确定一个会话(这个 API 方式登出,在 3.4.1 版本才开始支持)。
  • sugar_user_id_field: 用户信息中的唯一标识字段名,类似 id,具体用法参考SQL 中嵌入用户信息

我们还支持在 Token 登录时同步用户的用户属性,用户属性用于对数据进行「行级别权限管理」。用户可以在自己的平台上对用户属性进行管理,在用户进行登录操作时,会将该用户的属性同步到Sugar BI。

如果要进行用户属性同步,则需要在 URL3 的返回中同时返回该用户的属性数据,包含属性名称及取值,并配置环境变量告诉Sugar BI属性数据在返回体中的路径:

  • sugar_token_login_sync_user_attr_path: 在 URL3 的返回体中,属性数据在返回体中的路径,路径格式例如:data.userAttr

属性数据为一个 key-value 对象,key 和 value 都是字符串类型,key 代表属性名称,value 代表属性取值。返回体示例如下:

JSON
1{
2  data: {
3    userAttr: {
4      '地区': '华北',
5      '性别': '男'
6    },
7    ...
8  }
9}

6、ldap

sugar_login_type配置为ldap表示使用 Ldap 统一账号密码管理的方式来登录。这种方式要求您的企业内部部署了 Ldap 服务,并使用 Ldap 协议来进行企业内部的账号密码统一认证管理,采用这种方式,您可以直接使用 Ldap 域账号和密码来登录 Sugar BI ,即单点登录。需要您填写配置文件中的这些配置(Sugar BI 的 4.3.1 及之后版本才支持):

  • sugar_ldap_login_url: 您的 ldap 服务器入口,由域名或 IP 与端口号组成,一般端口号默认为 389。如:ldap://127.0.0.1:389
  • sugar_ldap_login_base: 您的 ldap 域名,如:dc=baidu,dc=com
  • sugar_ldap_login_key: 用户登录属性名,一般为 cn 或 uid
  • sugar_ldap_login_admin: 管理员名称,对 Ldap 服务器具有检索权限的用户即可,如:admin
  • sugar_ldap_login_admin_password: 管理员密码
  • sugar_ldap_email_suffix: 如果您的 Ldap 中用户邮箱属性 mail 不全或不唯一,您可以配置一个邮箱后缀如:@baidu.com,Sugar BI 将自动将您的用户登录属性名以及该邮箱后缀拼凑成邮箱如:zhangsan@baidu.com; 也可不配置该变量,若不配置此变量, Sugar BI 将读取您的 Ldap 目录中的用户邮箱属性 mail 作为用户的邮箱在用户登录时自动添加到 Sugar BI 中,这时,应注意您的 Ldap 目录中的用户邮箱属性 mail 应该保持唯一性。
  • sugar_ldap_password_type: 如果您在 Ldap 账号管理工具中进行用户录入时,提前对用户密码进行了自加密,并以 Ldap 默认的存储方式(即 plainText 类型)存储,这时,需要对此变量进行配置,在这里指定密码类型,此变量支持的取值有六个:MD5、SHA、SHA256、SHA384、SHA512、plainText,其中 plainText 为不加密的明文密码,例如:123456,其余为使用 MD5 或哈希算法加密后的密文密码,例如:fEqNCco3Yq9h5ZUglD3CZJT4lBs=

ldap 中创建完账户后,在登录时直接使用登录名(一般为 uid 或 cn)和密码即可登录:

图片

日志说明以及自动清理

如上面的部署示例配置中,无论是单机 docker 部署、还是 swarm 集群部署,我们都将 Sugar BI 的日志挂载到了宿主机的某个目录下,在该目录下会有两个子目录:

  • access:该目录下存储了所有访问的 access 日志,日志文件按照小时进行切分,例如 2021 年 01 月 01 日 08 时的 access 日志文件为:access.log.2021010108
  • sugar:该目录下存储了所有的 Sugar BI 业务日志,包括正常的系统日志以及异常时的错误日志,日志文件也是按照小时进行切分,正常的系统日志文件名如:sugar.log.2021010108,异常时的错误日志文件名如:sugar.log.wf.2021010108,当您的私有部署中遇到问题时,可以尝试在错误日志中查看详细的日志记录。

从 3.0.1 版本及之后, Sugar BI 中支持了日志文件的自动清理,默认情况下,系统将保留最近90天的日志文件,其余日志文件将会被自动清理。当然,你也可以配置日志文件保留的天数,可以在env文件中添加以下配置(下面的配置表示日志文件保留120天,如果你不想要自动清理日志文件,想要永久保留日志文件,将下面的配置填写为0即可。 同理,swarm、kubernetes 部署方式也是同样的添加相应的环境变量配置即可):

Plain Text
1sugar_log_lifetime_day=120

Nginx 代理和 HTTPS 设置

如果您需要对私有部署的Sugar BI使用域名访问并且使用Nginx 来做转发代理,需要在 Nginx 代理配置中加上proxy_set_header Host $http_host;,这样能把域名信息透传到Sugar BI中以保证登录回调等各种功能运行正常。

如果您需要使用HTTPS来访问Sugar BI,你必须要使用上面描述的 Nginx 代理方式,需要您自己在 Nginx 层来配置 HTTPS 的证书(可以自行百度搜索配置方式),并且需要对Sugar BI运行配置env文件中sugar_is_https进行填写,填写为:sugar_is_https=1。(swarm 运行方式下即对sugar-compose.yml文件中填写sugar_is_https: 1,kubernetes 部署方式也是同样的添加相应的环境变量配置即可)

开启定时推送、数据预警功能

如果私有部署中您需要使用定时推送、数据预警功能,需要配置上面 env 中的 sugar_email_host 、sugar_redis_host 等(同理,swarm、kubernetes 部署方式也是同样的添加相应的环境变量配置即可),下面详细说明:

1、redis 相关配置,如果您私有部署只是单机运行(即只运行一个 sugar 的实例),sugar 已经内置,就不需要配置 redis 相关内容;如果是集群方式,需要您自己搭建 redis(2.6 版本以上,可以使用类似上面 mysql 的 docker 方式来启动一个 redis),然后需要您在 env 配置中填写 sugar_redis_host(redis 的 host)、sugar_redis_port(redis 的端口,默认是 6379)、sugar_redis_password(redis 的密码,只有 redis 中设置了才需要填写,否则可以不填)。

如果您搭建的 redis 是集群模式(Cluster)则需要将 sugar_redis_enable_cluster 设置为 1,此时 host 和 port 可以配置多个,用英文逗号分割。

如果您搭建的 redis 是哨兵模式(Sentinel)模式则需要将 sugar_redis_enable_sentinel 设置为 1,并配置 sugar_redis_sentinel_name,此时 host 和 port 可以配置多个,用英文逗号分割。如果为哨兵节点配置了密码,则需要配置sugar_redis_sentinel_password(如果只给 Redis 主节点配置了密码,则只需要配置sugar_redis_password即可)

2、发送的邮箱: Sugar BI中已经内置了邮件发送器,但是,如果您需要固定发件人邮箱(如:sugar@yourCompany.com),那就需要您在 env 配置中填写 sugar_email_host、sugar_email_port、 sugar_email_username、sugar_email_password、sugar_email_from 邮箱相关的设置。(注意:目前很多邮箱服务器都会将系统内置的邮件发送器的邮件当成垃圾邮件,因此强烈建议您进行以上的邮箱相关配置)。

开启 Excel/CSV 文件上传功能

如果要开启 Excel/CSV 文件上传功能(部署的 Sugar BI 版本需要是 1.9.5 及以上),需要在上面的 env 配置中增加以下配置(同理,swarm、kubernetes 部署方式也是同样的添加相应的环境变量配置即可):

Plain Text
1sugar_enable_mpp=1
2sugar_mpp_use_cluster=m1
3sugar_mpp_hashids=sugar
4sugar_mpp_cluster_m1_type=mysql
5sugar_mpp_cluster_m1_host=数据库地址
6sugar_mpp_cluster_m1_port=数据库端口
7sugar_mpp_cluster_m1_user=数据库用户名,最好是root账户,需要有创建账户、创建数据库、创建数据表的权限
8sugar_mpp_cluster_m1_password=数据库密码

对于数据填报功能,如果需要使用内置数据源,也需要开启 Excel/CSV 文件上传功能。

Excel 上传的实现原理是将文件导入数据库中,后续就能类似普通的数据源一样进行处理,您需要修改上面尖括号中的内容为您自己启动的服务器,目前数据库类型只支持 mysql,可以使用 MySQL 或 TiDB。

这个功能依赖 MySQL 的 LOAD DATA LOCAL INFILE,所以如果有类似 Error Code 1148: The used command is not allowed with this MYSQL version 的报错,请在 MySQL 配置里开启 local_infile

开启企业角色功能

在私有部署版本中,可以通过外部 API 自动同步角色中的用户,可以将外部系统中管理的各种「用户组」中的用户同步到 Sugar BI 的角色中,从而实现更方便的角色和权限管理。使用方式可参照角色管理。环境变量的配置说明如下:

Plain Text
1  # 开启企业角色功能
2  sugar_enterprise_role_enable=1

「用户组」的名称和输入提示也可以通过环境变量配置,这里以「邮件组」为例,在您的系统中可能是「用户组」等:

图片

Plain Text
1  # 企业角色名称
2  sugar_enterprise_role_name=邮件组
3  # 企业角色标识输入提示
4  sugar_enterprise_role_enter_tip=完整邮件组

同步需要您的用户系统开放一个 API 供 Sugar BI 拉取用户列表,这个 API 接收一个「用户组标识」,返回相应用户组下的用户信息,需要配置如下环境变量:

Plain Text
1  # API 地址
2  sugar_enterprise_role_url=
3  # 访问 API 的 http 方法,默认为 get ;可以配置这里为 post,请求体为 json 格式;
4  sugar_enterprise_role_syncUserMethod=
5  # 访问 API 时,「用户组标识」信息在请求中放置的位置。如果是 get 方法,直接配置在 url params 中的字段名即可;如果使用 POST 方法,配置 「用户组标识」 的放置路径,路径的起点为请求的 body,格式如:data.key;
6  sugar_enterprise_role_syncUserSendIDPath=
7
8  # 在获取到 API 的返回信息后,用户信息数组在 API 返回体中的路径,如直接返回数组可不配置
9  sugar_enterprise_role_syncUserArrayPath=
10  # 用户邮箱字段在每项用户信息中的路径,路径格式例如:data.userEmail。这个字段用来在 Sugar BI 中唯一标识一个用户,最好是企业内的用户邮箱,如果没有,可以使用户名等字段,保证唯一即可
11  sugar_enterprise_role_syncUserEmailPath=
12  # 如果您的用户系统中没有使用用户邮箱作为用户标识,我们会在用户标识后添加一个 @example.com 作为邮箱后缀,您也可以通过这个环境变量自己配置这个邮箱后缀
13  sugar_enterprise_role_userEmailSuffix=
14  # 用户名称字段在返回体中的路径,是用户真正看到的名字,路径格式例如:data.realName
15  sugar_enterprise_role_syncUserNamePath=

假如您的系统开放的 API 是:https://sugar.bce.baidu.com/openapi/test/getUsers?key=sugar@baidu.com

API 返回如:

JSON
1{
2  "status": 0,
3  "msg": "",
4  "data": [
5    {
6      "userEmail": "sugar1",
7      "userName": "sugar11"
8    },
9    {
10      "userEmail": "sugar2",
11      "userName": "sugar21"
12    }
13  ]
14}

则环境变配置如下:

Plain Text
1  sugar_enterprise_role_url=http://{sugarHost}/openapi/test/getUsers
2  sugar_enterprise_role_syncUserMethod=
3  sugar_enterprise_role_syncUserSendIDPath=key
4
5  sugar_enterprise_role_syncUserArrayPath=data
6  sugar_enterprise_role_syncUserEmailPath=userEmail
7  sugar_enterprise_role_syncUserNamePath=userName
8  sugar_enterprise_role_userEmailSuffix=@baidusugar.com

开启自助取数功能

在私有部署的 Sugar BI 中,如果要使用自助取数功能,需要部署取数的存储系统,并进行相应的配置,详见开启自助取数功能。

开启跨源查询功能

在私有部署的 Sugar BI 中,如果要使用跨源查询功能,需要部署跨源查询引擎集群,并进行相应的配置,详见开启跨源查询功能。

开启自定义消息通知

在私有部署的 Sugar BI 中,Sugar BI的定时推送和数据预警,消息通知方式除了邮箱、群机器人和 APP 通知外,还支持一种额外的自定义通知方式,用于企业内的其他通知方式,详见开启自定义消息通知(部署的 Sugar BI 版本需要是 5.1.0 及以上)。

外部依赖模块部署验证

在 Sugar BI 运行起来后,您可以进入「组织管理」->「外部模块部署验证」来验证 Sugar BI 的外部依赖是否部署成功。目前可验证的模块为 邮件、Redis、Excel/CSV 上传、自助取数、跨源查询,部署成功时页面如下:

图片

有模块报错时可根据报错信息参看各模块的部署文档。

自定义产品 Logo

你可以自定义 Sugar BI 的产品 Logo,在env中增加配置即可(2.2.3 版本及以上才支持。同理,swarm、kubernetes 部署方式也是同样的添加相应的环境变量配置即可),如:

Plain Text
1sugar_logo=填写Logo的网络图片地址,如:https://www.baidu.com/favicon.ico

自定义 JDBC 驱动

如果您使用的数据库不在我们支持的列表中,但有对应的 JDBC 驱动,可以通过如下方式来添加这个:

  1. 首先创建某个目录,比如 /home/work/jdbc/libs,将 jar 文件放到这个目录里
  2. 在 docker 镜像启动时用 -v 将这个目录映射为 /sugar-app/javakit/libs,参考如下写法
Shell
1docker run --link sugar-mysql --ulimit nofile=65100:65100 --shm-size=4g --restart unless-stopped -d -p 8000:8580 --name sugar -v /home/work/jdbc/libs:/sugar-app/javakit/libs -v ~/sugar-log:/sugar-app/log --env-file env registry.baidubce.com/sugarbi/sugar:6.4.1

然后在创建数据源时选择「JDBC 通用数据库」。

需要注意自定义 JDBC 驱动的数据库在「测试连接」时有可能报错(但不影响正常使用),而且很可能无法使用「数据预览」功能,如果发现有问题请联系我们。

自定义内置第三方 JS、CSS 库

如果内置的第三方库不能满足需求,又无法使用外联的方式,可以用如下方式来添加:

  1. 创建一个目录,比如 /home/work/library,然后将第三方库放置到这里,比如 echarts.js
  2. 在 docker 镜像启动时用 -v 将这个目录映射为 /sugar-app/static/library,参考如下写法
Shell
1docker run --link sugar-mysql --ulimit nofile=65100:65100 --shm-size=4g --restart unless-stopped -d -p 8000:8580 --name sugar -v /home/work/library:/sugar-app/static/library -v ~/sugar-log:/sugar-app/log --env-file env registry.baidubce.com/sugarbi/sugar:6.4.1

前端引用的路径就将是 <script src="/static/library/echarts.js"></script>

上一篇
常见问题
下一篇
私有部署的升级