跳至正文

【阿里云+Tableau】使用抢占式实例快速部署、恢复Tableau Server

最近,一个客户的服务器出现了故障,导致长时间宕机,在更换新服务器的同时,我们开始使用阿里云的资源临时从服务器备份种提取Prep流程文件,然后在本地临时点击运行,确保给第三方的数据准确。因此,喜乐君临时使用阿里云快速搭建了一台Tableau Server服务器,被恢复了之前的备份文件。

特此记录详细过程,帮助更多人了解阿里云中Tableau Server的安装过程。

核心环境:

  • 阿里——阿里云抢占式实例
  • Tableau——Tableau Server 2021.4.17(2023年最新版本)
  • Centos——Centos Linux release 7.9.2009 (core)

一、准备环境和安装文件

1、创建实例

首先,在阿里云官网购买云服务。

由于喜乐君仅仅希望超短期使用(最长不过几天)云服务器搭建临时的服务器环境,然后提取其中的部分Prep流程使用,因此这里特意选择购买阿里云按量付费、且“抢占式实例”,这样可以充分使用五一假期资源充足的特点,超低价获得云服务资源。

为了保证Tableau Server正常运行,需要确保服务器网络地址固定(不能使用弹性IP)、满足Tableau Server 版本的最低要求(这里选择Tableau Server2021.4.17,最低要求8v CPU+16G RAM+15G磁盘)。为了提高效率,喜乐君选择了翻倍的资源,如下图所示,不足1元/小时的资源,可谓是超级服务、良心价格。

在确保余额满100元的前提下,即可正常创建实例,稍等片刻,即可正常使用了。

2、创建用户

虽然root账户神通广大,喜乐君不建议多用,推荐在下载、安装程序时,一律使用admin账户,这样确保下载的文件所有权、群组都对应admin,而非root,减少后续运行的一份风险。

因此,喜乐君特别推荐在进入服务器之初,就立刻设置admin管理员账号,添加到wheel组,并设置管理密码,后续一律使用admin来安装、配置,必要时sudo提升权限。阿里云环境中,甚至不需要手动为admin增加sudoer权限。

Last login: Sun Apr 30 16:29:19 2023 from 47.96.60.215

Welcome to Alibaba Cloud Elastic Compute Service !

[root@iZuf61akvjzmeah90rdis1Z ~]# 
[root@iZuf61akvjzmeah90rdis1Z ~]# ls
[root@iZuf61akvjzmeah90rdis1Z ~]# useradd admin 
[root@iZuf61akvjzmeah90rdis1Z ~]# usermod -aG wheel admin
[root@iZuf61akvjzmeah90rdis1Z ~]# passwd admin
Changing password for user admin.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@iZuf61akvjzmeah90rdis1Z ~]# 
[root@iZuf61akvjzmeah90rdis1Z ~]# su admin
[admin@iZuf61akvjzmeah90rdis1Z root]$ cd
[admin@iZuf61akvjzmeah90rdis1Z ~]$  

https://downloads.tableau.com/esdalt/2021.4.17/tableau-server-2021-4-17.x86_64.rpm

3、下载Tableau server安装包

推荐使用每个分支的最新版本,这里选择2021.4.17版本。

我本来计划直接用Wget,从https://www.tableau.com/support/releases/下载,后来发现太慢了(即时阿里云网速设置为100M也是如此)。

[admin@iZuf61akvjzmeah90rdis1Z tableau]$ wget https://downloads.tableau.com/esdalt/2021.4.17/tableau-server-2021-4-17.x86_64.rpm 
--2023-04-30 16:51:16--  https://downloads.tableau.com/esdalt/2021.4.17/tableau-server-2021-4-17.x86_64.rpm
Resolving downloads.tableau.com (downloads.tableau.com)... 23.198.126.125
Connecting to downloads.tableau.com (downloads.tableau.com)|23.198.126.125|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2405596714 (2.2G) [audio/x-pn-realaudio-plugin]
Saving to: ‘tableau-server-2021-4-17.x86_64.rpm’

 0% [                                   ] 895,287     58.6KB/s  eta 15h 3m 


因此,我临时使用本地电脑下载后,借助FTP上传到阿里云,不得不说,这个速度很快,阿里云的支持也足够好。

4、其他准备

检查硬件资源、IP地址、OS版本是否合规等。

目前,喜乐君比较推荐的版本是2021.4.X,测试环境仅需要4核心、16G内存,对应的生产环境则推荐8核心、64G起步(2021.3.X对应的生产环境则仅需要需要8核心、32G)。2022.1之后的版本,对资源的要求越来越高,而且其中的AI功能并不能在中国境内使用。

版本测试环境最低要求生产环境推荐配置
2021.3.X4核心、16G RAM、15G磁盘8核心、32G RAM
2021.4.X同上8核心、64G RAM
2022.1.X同上
2022.3.X4核心、64G RAM/初始节点 ,
4核心、16G RAM/附加节点

更多内容,推荐大家参考官方网站:Tableau Server 的最低硬件要求和推荐配置

二、安装Tableau Server并运行初始化脚本

1、安装

脚本如下

[admin@iZuf61akvjzmeah90rdis1Z ~]$ sudo yum install tableau-server-2021-4-17.x86_64.rpm  -y 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for admin: 
Loaded plugins: fastestmirror
Examining tableau-server-2021-4-17.x86_64.rpm: tableau-server-20214.23.0315.2055-20214-23.0315.2055.x86_64
Marking tableau-server-2021-4-17.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package tableau-server-20214.23.0315.2055.x86_64 0:20214-23.0315.2055 will be installed
--> Processing Dependency: fontconfig for package: tableau-server-20214.23.0315.2055-20214-23.0315.2055.x86_64
Determining fastest mirrors

提示安装成功,如下。

2、安装initialize-tsm初始化脚本

安装初始化脚本是安装过程中最为重要的内容之一,也是最容易出错的环节。它和后续的“初始化Tableau”是两个不同的环节。

专业用户

在这里,喜乐君使用默认路径、关闭ATR激活,完成tsm脚本安装。在阿里云默认的Centos 7.9版本下,一次性安装成功,代码如下:

[admin@iZuf61akvjzmeah90rdis1Z scripts.20214.23.0315.2055]$ sudo ./initialize-tsm  --accepteula --no-activation-service
[sudo] password for admin: 
Creating 'tsmadmin' group for TSM admin authorization
Creating 'tableau' unprivileged user account
Creating environment file...
Creating directories and setting permissions...
Using '/var/opt/tableau/tableau_server' as the data directory.
Adding user 'admin' to group 'tableau'...
Adding user 'admin' to group 'tsmadmin'...
Added. Note: These group membership changes do not take effect in shells already open. For these to take effect, log out of the shell and log back in.
Tableau Server runs best with at least 50 GB of free disk space,
but found only 38 GB for the data directory '/var/opt/tableau/tableau_server'. Continuing.
Starting TSM services...
Updating repository version in Tableau Server Coordination Service.
TSM services started successfully
Use the 'tsm' command to continue setting up Tableau Server.
>> Tableau binary directory will be added to PATH for new shells. To get the
>> updated path, either start a new session, or for bash users run:
>> source /etc/profile.d/tableau_server.sh
The TSM administrative web interface (and REST API) is now available at
https://iZuf61akvjzmeah90rdis1Z:8850
You can continue the configuration and initialization of Tableau server using either the TSM command line interface,
or the web interface.
You will be prompted to authenticate, or can log in using the username 'admin', with the same password you used to log into this session. You could also use any username, with its password, from the administrative group in the domain.
Done.
[admin@iZuf61akvjzmeah90rdis1Z scripts.20214.23.0315.2055]$ 

这个过程成功,基本意味着安装成功了一半,后续还有一个初始化TSM,只要这两个没问题,安装基本宣告胜利。

这里把上述过程特别说明如下:

访问8850

打开TSM管理页面后,会要求输入用户名和密码。之前不少人问喜乐君这里的用户是什么用户,为什么没有创建用户环节?这里其实是服务器用户名和密码,因此无需创建。推荐使用安装server软件包的账户访问,喜乐君这里使用admin账户,密码则是前面passwd命令输入的密码。

三、激活、注册、设置和初始化Tableau Server

在进入8850 之后,这里就有四个环节需要完成:

  • 激活:首次推荐使用“免费14天”试用许可证,尽在环节确保运行正常后,再补充激活生产许可证
  • 注册:填写最终用户信息
  • 设置:设置访问端口、管理账户等信息
  • 初始化Tableau Server:时间最漫长、也最重要的环节。

1、激活许可证

2、注册用户信息

推荐和购买许可证的portal账户保持一致,当然并非严格要求。 输入之后,点击最后的注册即可。

3、用户、端口等平台设置(关键)

特别注意的是,这里“身份存储”是设置后不可更改的,所以要特别谨慎,在你不知道如何处理的情况下,请选择“本地”,即让Tableau自己管理平台的用户。通常仅在有单点登录策略、公司有额外的用户管理平台时,才会选择 active directory。

如果要把Tableau Server的用户与外部第三方(比如Active Directory,Open LDAP)同步,那么就选择Active Directory,此时需要输入公司内的域(Domain)地址及端口、用户等信息,通常需要IT专业用户配合方可完成。

对于所有其他外部存储,Tableau Server 支持使用 LDAP 作为通用方式来与身份存储通信。更多内容,推荐查看官方帮助文档:身份存储

4、初始化Tableau Server

在完成上述三个环节后,点击设置下面的“初始化”,就进入第四步了。这里的初始化是“初始化 Tableau Server”,是通往成功之门的最后一关。

虽然我们可以通过Tableau的UI界面获得最新进度,但是一旦遇到一些障碍,Tableau 通常会耗费10分钟甚至更久时间反复尝试,为了避免直到最后才发现问题,推荐安装过程中打开/logs/tabadmincontroller下的日志文件,实时观察。

在初始化的最后阶段,Tableau日志可以实时告诉我们,当前已经启动了多少进程,还有几个进程正在启动中。只要有一个进程没有正常启动,最终都会导致初始化失败。 如下所示,Tableau会告诉我们已经有22个服务正常,还有19个进程没有正常运行。——此时的tsm界面进度已经完成87%。

 
2023-04-30 17:53:48.155 +0800  pool-22-thread-1 : INFO  com.tableausoftware.tabadmin.webapp.impl.status.ServiceStatusWatcher - 22 services have reached their expected state
2023-04-30 17:53:48.156 +0800  pool-22-thread-1 : INFO  com.tableausoftware.tabadmin.webapp.impl.status.ServiceStatusWatcher - node1 has 19 services that aren't running: querypolicy_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), dataserver_1.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), tdsservice_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), backgrounder_1.20214.23.0315.2055 (deployment state: ENABLING, process status: DOWN), extractservice_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), noninteractive_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), floweditor_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), vizqlserver_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), nlp_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), interactive_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), dataserver_0.20214.23.0315.2055 (deployment state: ENABLING, process status: DOWN), backgrounder_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), contentexploration_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), flowminerva_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), flowprocessor_0.20214.23.0315.2055 (deployment state: ENABLED, process status: STATUS_UNAVAILABLE), vizqlserver_1.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), minerva_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), apigateway_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN), vizportal_0.20214.23.0315.2055 (deployment state: ENABLED, process status: DOWN)
……

最后,我们看到了胜利的曙光。接下来就是创建“tableau server平台的管理员账户”了,它不同于之前的TSM管理服务账户。

5、创建管理员账号

点击上面的“继续”,会弹出一个新窗口,说明如下:“Tableau Server 安装未完成。管理员必须通过“localhost”连接到服务器才能完成安装。”而原有窗口则会显示状态的服务器状态——绿色代表一切运行正常。

在Linux环境中,访问用户通常不是服务器本地(因为服务器本地基本没有UI),因此需要借助于命令完成管理员账号的创建。如下所示:

tabcmd initialuser --username brucegavin --server http://localhost

虽然可以通过–password把密码置于上述代码中,不过喜乐君建议还是输入比较安全——特别是密码中包含特殊字符时。

至此,我们的Tableau 服务器就算安装成功了。

不得不说,在阿里云Centos没有yum update的情况下,可以一次性成功,还是很让我开心的。

四、恢复备份文件

在安装完Tableau Server之后,我们还有很多工作要做,才能正式投入生产,如果是全新环境,还需要:

  • 安装数据库驱动,比如管理视图依赖的PostgreSQL,常用的Mysql驱动等。
  • 配置SMTP邮件服务器,从而为用户推动邮件订阅、通知,并帮助管理员获得磁盘不足等事件信息(配置-通知-电子邮件服务器)
  • 配置SSL等安全访问机制(配置-安全性)
  • 如有仪表板嵌入,需要配置身份验证,比如“受信任的身份验证”机制(配置-用户身份和访问)
  • 如有超过8个服务器核心,还可以适当调整拓扑,增加Viz QL server和后台程序的节点数量。
  • 在确认一切正常后,激活企业的正式许可证,或者购买正式许可证(配置-许可)

而对于像喜乐君本次遇到的服务器恢复或升级的情况,则需要在上述配置基础上,进一步完成:

  • 恢复服务器内容备份(backup),恢复服务器配置(setting)
  • 检查计划运行清单
  • 检查数据提取是否正常运行,特别是是否存在数据提取的密钥无法访问的情况

1、服务器备份和恢复

服务器备份包括内容备份和设置备份两种;内容备份使用TSM Maintenance backup命令,设置备份使用TSM settings export导出。二者均需要-f 参数指定文件名称。

同理,恢复使用tsm maintenance restore 和tsm settings import 完成,下面展示二者的使用过程。

把文件拷贝到备份路径后,运行如下命令即可,具体过程参考下图图片:

tsm maintenance restore -f tableau-server-back-full-2023-04-24.tsbak

恢复完成后,服务器依然保持stop停止状态,此时,还可以继续恢复setting设置。

特别注意,设置恢复之后,Tableau不会立刻重新启动,而是等待“确认执行”的命令。此时,既可以在命令中执行 tsm pending-changes apply,也可以在8850的UI界面中点击右上角“挂起更改”后,点击“应用实时更改”确认执行。

此时,可以在8850中,一并完成其他调整,比如调整节点数量,之后一并执行。

如下所示,这里在终端中输入“确认执行”(pending-changes apply)命令,执行完成后,再使用tsm start启动服务器即可。

这还有两个注意事项:

1)要把恢复的文件拷贝到指定的路径下,使用当前路径会提示文件不存在,如下所示:

2)恢复之后,从80端口登录Tableau Server平台的账号也会被恢复为“备份文件”的账号,而非前面设置的部分。

2、确认提取文件是否正常

如果备份文件是全量备份,那么仪表板会使用最后一次提前的数据;如果使用了-po仅备份关键的存储库,那么所有的提取文件、缓存等都不被保存,这就意味着,在下次提取计划运行之前,你的仪表板无法被访问。

再确认内容无误后,喜乐君从恢复后的平台中下载了关键的仪表板和Prep flow流程,本地任务就宣告成功;之后,阿里云抢占式实例也可以释放了,前后过程不过几个小时而已(包含安装等待过程,同步写作博客)。

五、“抢占式实例”停机重启和费用

1、停机重启后,需要手动启动管理服务

既然是按时计费,因此不用的时候当然就要停机(不计费)。要特别注意停机后的应用恢复。

正常来说,服务器启动后,Tableau管理服务(TSM)和Tableau Server服务器会自动启动。不过,在抢占式实例中,停机之后再次启动,Tableau似乎并不能完全启动(也许是我的等待时间不够长),控制tableau服务器的tsm管理服务要手动方可运行,这个是大家使用时应该注意的。

TSM管理服务手动启动,需要找到opt程序路径下的start-administrative-services脚本,手动运行。如下所示:

 
[root@iZuf61akvjzmeah90rdis1Z ~]# su admin
[admin@iZuf61akvjzmeah90rdis1Z root]$ tsm status
Could not connect to server. Make sure that Tableau Server is running and try again.
[admin@iZuf61akvjzmeah90rdis1Z root]$ cd /opt/tableau/tableau_server/packages/scripts.20214.23.0315.2055/
[admin@iZuf61akvjzmeah90rdis1Z scripts.20214.23.0315.2055]$ ls
README                before-remove        disable-coordination-service-authentication  
move-tsm-controller            stop-administrative-services  upgrade-tsm
after-install         checkprocessorspecs  initialize-tsm                               
pam-systemd-check              tabcmd.autocomplete           user-at-override.conf
after-install-common  config.json          initialize-tsm-common                        stack-traces-from-coredumps    tableau-server-obliterate     user-at.service
auto-node-recovery    defaults.bash        local-configuration                          start-administrative-services  tsm.autocomplete
[admin@iZuf61akvjzmeah90rdis1Z scripts.20214.23.0315.2055]$ sudo ./start-administrative-services  
[sudo] password for admin: 
Starting all enabled services
[admin@iZuf61akvjzmeah90rdis1Z scripts.20214.23.0315.2055]$ tsm status
Status: DEGRADED
[admin@iZuf61akvjzmeah90rdis1Z scripts.20214.23.0315.2055]$ tsm

刚刚启动tsm时,Tableau server状态会是degraded(降级),只需要稍等几分钟,Tableau进程就会完全恢复。

2、抢占式实例的费用——超乎想象

我从4月30日开始部署环境,5月1日提取了运行的文件,并为客户多留了一天使用,截止到5月2日晚上10点,我的总费用官网价是111元,优惠后是23.72元(适逢五一假期,抢占即竞价式比较优惠)。

每小时的价格,从原价3.225元/小时优惠到了0.66元/小时。可见,作为临时使用,阿里云的抢占式实例提供了让每个人都无限接近超级云服务的机会,实乃行业领先!

其实,这个抢占式实例,也是定价策略之分段式计价的经典应用,它实现了类似于航空公司的多段计价策略,把碎片化的资源卖给了本来承担不起云服务的用户,从而最大化的增加了盈利面积。如下图说示(图片来自网络),以后有机会可以结合分析介绍相关内容。

总结而言,Tableau Server——适合各类型企业的敏捷DW/BI平台;阿里云,则是国内外领先的云服务提供商。喜乐君焦急期盼二者的更多合作。

期待本文帮助更多人善用Tableau Server。

@喜乐君

Apr 30, 2023
May 2, 2023 补充最后一部分


了解 喜乐君 的更多信息

订阅后即可通过电子邮件收到最新文章。

《【阿里云+Tableau】使用抢占式实例快速部署、恢复Tableau Server》有1个想法

  1. Pingback: Windows系统下安装Tableau Server//AD策略 – 喜乐君

评论已关闭。

了解 喜乐君 的更多信息

立即订阅以继续阅读并访问完整档案。

Continue reading