Linux 上的 Tableau Server 疑难解答

按照本主题中的建议来解决 Tableau Server 的常见问题。有关基于在“状态”页面上查看的进程状态的其他疑难解答步骤,请参见服务器进程疑难解答

下表显示安装目录、数据目录、日志目录和脚本目录的默认位置:

目录默认位置
安装:/opt/tableau/tableau_server
数据:/var/opt/tableau/tableau_server/data
日志:/var/opt/tableau/tableau_server/data/tabsvc/logs/
脚本:/opt/tableau/tableau_server/packages/scripts.<version_code>/

一般疑难解答步骤

可通过以下一个或多个基本步骤解决或测试许多 Tableau Server 问题:

全新安装

在从未安装 Tableau 的计算机上安装 Linux 版 Tableau Server。如果要重新使用安装了以前版本的 Tableau Server 的计算机或 VM,请在安装新版本之前,先执行从计算机中移除 Tableau Server中的步骤以清除计算机上的 Tableau。

如果在安装 Tableau Server 时遇到问题,您可能需要从计算机中完全移除 Tableau,并执行全新安装。有关详细信息,请参见从计算机中移除 Tableau Server

磁盘空间

确保运行 Tableau Server 的每台计算机上都有足够的磁盘空间。有限的磁盘空间可能会导致安装失败、升级失败或运行 Tableau Server 时出现问题。

删除旧日志文件

如果磁盘空间不足,您可以清理旧 Tableau Server 日志文件。这些文件可能会占用空间,作为最佳做法,您应该定期删除它们。

版本 10.5.x

如果有版本 10.5.1 及更高版本,请在终端提示符处运行此命令以清理不需要的日志文件:

tsm maintenance cleanup

版本 10.5.0

如果运行版本 10.5.0 的 Linux 版 Tableau Server,则清理命令不可用,并且您需要在终端提示符处运行以下命令:

sudo find /var/opt/tableau/tableau_server/data/tabsvc/temp/* -mtime +2 -type f -delete

sudo find /var/opt/tableau/tableau_server/data/tabsvc/logs/* -mtime +2 -type f -delete

重要信息:Linux 文件系统可以删除打开的文件,如果您执行此操作,Tableau 进程可能无法重新创建文件。这将导致日志文件为空。若要修复此问题,您可以停止 Tableau Server,重新启动 TSM 控制器,并再次重新启动 Tableau:

  1. 停止 Tableau Server:

    tsm stop

  2. 重新启动 TSM 控制器:

    sudo systemctl restart tabadmincontroller_0.service

  3. 等待几分钟,让控制器重新启动。您可以使用此命令确认控制器是否已重新启动:

    tsm status -v

    当您可以运行该命令并且 Tableau Server 管理控制器被列为“正在运行”时,控制器已重新启动。

  4. 启动 Tableau Server:

    tsm start

手动收集日志

如果由于任何原因(例如,运行 tsm initialize 之前发生严重故障)而无法运行 tsm maintenance ziplogs,则可以通过在 Tableau Server 部署的每个节点上的终端窗口中运行以下命令来手动收集和压缩日志:

cd /var/opt/tableau/tableau_server/data/tabsvc/

cp /var/opt/tableau/tableau_server/logs/app-install.log logs

cp ~/.tableau/tsm/tsm.log logs

tar -czvf ~/logs.tar.gz logs

这将在您的主目录中创建一个名为 logs.tar.gz 的文件。您可以将此文件上载或发送到 Tableau。

重新启动服务器

重新启动 Tableau Server。与索引及未完全启动的进程相关的问题可通过以受控方式重新启动 Tableau Server 解决。若要重新启动 Tableau Server,请使用 tsm restart 命令。这将停止与 Tableau Server 关联的所有进程,然后重新启动这些进程。

使用 Linux 编辑安装和配置文件

您应使用 Linux 操作系统编辑或创建用于在 Linux 上安装或配置 Tableau Server 的任何文件。使用 Microsoft Windows 创建的文件将导致在 Linux 上安装和配置 Tableau Server 出现错误,原因是 Linux 操作系统以换行符 (LF) 结束文件,而 Windows 则以回车和换行符 (CR LF) 结束文件。如果非 Linux (CR LF) 文件结束字符出现在自动安装程序使用的 config.jsonreg_templ.jsonsecrets 文件中,则可能导致Tableau Server 的自动安装过程中出现错误。非 Linux (CR LF) 文件结束字符也可能导致注册期间或者配置身份存储设置或网关设置时出错。

检查 systemd 日志

如果 Tableau Server 未启动,并且您在 Tableau 日志中找不到任何有用的信息(有关详细信息,请参见使用日志文件),您可以检查 systemd 日志,了解与 TSM 服务启动和停止相关的消息。日志存储在 /var/log/messages(类似于 RHEL 的发行版)或 /var/log/syslog (Ubuntu)。我们建议使用 journalctl 命令搜索和解析 systemd 日志。

安装 Tableau Server

安装由于硬件要求而失败

如果要进行安装的计算机未满足最低硬件要求,则 Tableau Server 无法安装。有关要求的详细信息,请参见安装之前...

安装由于超时而失败

如果在资源有限的计算机(例如,仅满足最低硬件要求的计算机)上安装 Tableau Server,您可能会在 tsm 命令由于响应缓慢而超时的情况下遇到问题。可以通过在所有 tsm 命令上使用全局 --request-timeout 选项来指定更长的超时。有关 --request-timeout 选项的详细信息,举例来说,请参见tsm initialize

安装失败,并显示“Failed to initialize the instance of the temporary database”(未能初始化临时数据库的实例)

Linux 版 Tableau Server 仅支持 UTF-8 字符编码。如果您的 Linux 区域设置缺少 UTF-8 编码,则安装可能会失败,并出现类似于如下的错误:

Failed to initialize the instance of the temporary database

若要检查您的区域设置是否使用 UTF-8 编码,请在命令提示符处运行 localectl 命令。生成的输出应如下所示(您的区域设置可能不同):

[tableauserver-centos1a ~]$ localectl
System Locale: LANG=en_US.UTF-8
[tableauserver-centos1a ~]$

如果 LANG 值未包括 .UTF-8,则您需要运行 localectl 来添加:

sudo localectl set-locale LANG=<your_locale>.UTF-8

注意:在某些情况下,如果您的 systemd 版本较旧,localectl 可能无法完成(超时)。更新 systemd 可修复此问题并允许您设置 UTF-8 编码。在 RHEL 类系统上,使用此命令来更新 systemdsudo yum update systemd

虚拟机上的并行安装失败

当前不支持并行安装。如果在 Linux 虚拟机上以并行方式安装 Tableau Server,则安装可能失败。

Tableau Server 未启动

如果 Tableau Server 未启动或在降级状态下运行,请运行 tsm restart 命令。这将关闭正在运行的任何进程,并重新启动 Tableau Server。

安装之后无法启动 Tableau Server

如果您的计算机的主机名在安装之后更改,则 Tableau Server 可能无法启动。主机名可能更改的其中一个主要原因是:您在 CentOS 上使用 cloud-init 软件包。如果使用 cloud-init 软件包,请在想要安装 Tableau Server 的情况下在开始安装过程之前重新启动计算机。或者,可以通过运行以下命令在不重新启动的情况下修复主机名:

sudo hostnamectl set-hostname `hostnamectl --static`

cloud-init 软件包通常用于初始化新虚拟机、配置 SSH 公钥身份验证,等等。例如,某些 CentOS 映像使用 cloud-init,并且 OpenStack 部署中通常会使用 cloud-init。但是,CentOS 7.x 存储库默认包括的 cloud-init 的版本 (cloud-init 0.7.5-10.el7.centos.1) 有一个已知问题,使计算机在重新启动之前无法随其主机名一起显示其完全限定的域名 (FQDN)。

由于 Tableau Server 安装进程使用计算机的主机名来配置服务器进程并生成 TLS 证书,因此,如果 Tableau Server 配置为在没有 FQDN 的情况下使用主机名,它可能无法启动。

若要确定您的计算机是否显示正确的主机名,请运行 hostnamectl 命令。在下面的示例中,命令显示一个暂时主机名,表明它将不会返回 FQDN,并且必须重新启动。

$ hostnamectl
   Static hostname: server01.example.com
Transient hostname: server01
[...]

或者,在下面的示例中,命令显示正确的主机名和 FQDN:

$ hostnamectl
   Static hostname: server01.example.com
[...]

无法创建具有多个 Active Directory (AD) 域的初始管理员帐户

在 Tableau Server 上创建初始管理员帐户时,如果选择了 AD 作为身份验证类型,您可能会看到以下错误:

Failed to authenticate username and password

当 Tableau Server 尝试连接到多个 AD 域时,将发生此错误。举例来说,如果在属于某个域的计算机上安装 Tableau Server,并且尝试对属于另一个域的 AD 用户进行身份验证,则可能会看到此错误。

字体

Tableau Server 使用系统上安装的字体,根据创建工作簿时使用的字体来呈现工作簿。当某个字体不可用时,Tableau Server 将根据字体系列使用最接近的等效字体;Windows 和 Linux 服务器均适用于这种情况。在 Linux 服务器上,缺少字体的情况可能会更明显,因为 Linux 附带的字体比 Windows 和 OS/X 系统都少。这一点很重要,因为许多工作簿都是在 Windows 或 Mac 上的 Tableau Desktop 中制作的。

Linux 版 Tableau Server 附带以下字体:

  • Arial
  • Courier
  • Georgia
  • Times New Roman
  • Verdana
  • Trebuchet MS
  • Tableau 字体

在 Linux 版 Tableau Server 上查看时,由于缺少字体,未使用这些字体的工作簿的显示可能会与预期不同。为了解决此问题,请在 Tableau Server 安装过程中在所有节点上安装相应的字体。

对亚洲字符集的支持

如果您看到空白框,并且在此框中,您希望在 Tableau Server 中所显示的工作簿中看到亚洲字符,则应在 Linux 环境中安装与语言相对应的字体包。

初始化 Tableau Server

由于 tableau 用户帐户存在,但不是 tableau 组的成员,因此 TSM 初始化失败

安装并初始化 Tableau 服务管理器 (TSM) 和 Tableau Server 时,初始化脚本 (initialize-tsm) 将创建运行所需的用户和组,或者确认已为现有项配置了必需的特性。默认情况下,此脚本会创建一个名为 tableau 的用户,并将其添加到名为 tableau 的组中。如果 tableau 用户已存在,但不属于 tableau 组,则该脚本将会失败并发出警告。

如果发生这种情况,那么您可以使用 --unprivileged-user 标志指定其他用户来解决冲突,系统将创建此用户并将其添加到 tableau 组中。

例如,要指定名为 tableauserver 的用户,你可以使用以下命令从 /opt/tableau/tableau_server/packages/scripts.<version_code> 目录中运行脚本:

sudo ./initialize-tsm --unprivileged-user="tableauserver" --accepteula

若要获得可用于 initialize-tsm 脚本的选项的完整列表,请使用 -h 选项:

sudo ./initialize-tsm -h

在不受支持的系统区域设置上初始化 Tableau Server 时出错

如果您尝试在计算机上安装 Tableau Server,并且区域设置不是受支持的区域设置之一,则安装过程中会出现错误。

Tableau Server 将在使用以下区域设置之一的系统上运行:

de_DE、en_GB、en_US、es_ES、fr_FR、it_IT、ja_JP、ko_KR、pt_BR、zh_CN、zh_TW

fr_CA(从版本 2022.3 开始)

th_TH、sv_SE(版本 2023.1)

任何其他区域设置都将产生错误。

如果区域设置列表中未包含 en_US.utf8,则初始化 Tableau Server 时出错

如果您尝试在区域设置列表中没有 en_US.utf8 的计算机上安装 Tableau Server,则初始化将失败并显示错误。要查看是否包含了 en_US.utf8,请在 shell 提示符下键入 locale -a

如果未列出 en_US.utf8,则可以在 Ubuntu 上的 shell 提示符下键入 sudo locale-gen en_US.UTF-8,或者在类似于 RHEL 的发行版上的 shell 提示符下键入 sudo localedef -i en_US -f UTF-8 ,以将 en_us 加入到区域设置列表中。

错误:状态 10 - 在数据目录路径包括句点时初始化 Tableau Server

如果尝试安装 Tableau Server,并指定路径包括句点(“.”)的数据目录,初始化将失败并出现错误,其中包括:

Connection timed out

ERROR: TSM services returned status 10

为了避免此问题,请选择其路径中未包括句点的数据目录。

重新安装后初始化 Tableau Server 时出错

如果卸载并重新安装 Tableau Server,您可能会在初始化 Tableau Server 时遇到错误。例如,您可能会看到以下错误:

ERROR com.tableau.tabadmin.webapp.asyncjobs.JobStepRunner - Running step WaitForConfigure failed
com.tableau.tabadmin.webapp.exceptions.ServiceFailedStateException

如果以前的安装中存在导致服务无法启动的人为错误,则会发生此错误。要防止此错误,请使用 /opt/tableau/tableau_server/packages/scripts.<version_code> 文件夹中的 tableau-server-obliterate 脚本。有关彻底移除 Tableau Server 的详细信息,请参阅从计算机中移除 Tableau Server

激活 Tableau Server

Tableau Server 许可证激活失败

在某些情况下,使用 tsm licenses activate -k <product_key> 命令激活 Tableau 产品密钥会失败,并出现以下错误:

License Server not available

如果您的计算机无法通过 TCP 端口 443 连接到 licensing.tableau.com 处的 Tableau 许可服务器,则可能会发生这种情况。

若要解决此问题,您需要配置网络和/或主机托管的防火墙,以允许访问该地址和端口,或者脱机激活 Tableau。有关详细信息,请参见脱机激活 Tableau Server

重建 Tableau Server 搜索和浏览索引

可以通过重新索引“搜索与浏览”来解决的问题

需要重建索引的症状包括:

  • 用户尝试登录时出现空白站点列表
  • 用户尝试选择项目时出现空白项目列表
  • 缺少内容(工作簿、视图、仪表板)
  • 意外或不准确的通知(例如,未包括数据提取的工作簿上的“刷新失败”通知)

如果看到任何这些行为,请使用 tsm maintenance reindex-search 命令来重建搜索和浏览索引。

重新启动 Tableau Server

重新启动 Tableau Server 或应用更改失败

如果某个 Tableau Server 服务失败,当您尝试重新启动服务器或应用配置更改时,您可能会看到错误。

要查看失败的服务是否会导致错误,请键入以下命令:

tsm status -v

若要了解服务失败的原因,请查看数据目录中的 tabadminagent 和 tabadmincontroller 日志文件。例如,服务可能会由于并发性问题或端口配置问题而失败。请在反馈中包括您遇到的任何问题。

作为解决方法,您可以通过尝试在 TSM 中移除并重新添加服务来解决故障。服务启动之后,您可以重新尝试以前的配置更改或再次尝试使用 tsm restart 命令重新启动服务器。

添加或配置节点后重新启动 Tableau Server 时出错

如果在没有网关进程的情况下添加或配置节点,Tableau Server 可能无法重新启动,并且您可能会看到类似于如下错误:

ERROR : com.tableau.tabadmin.configuration.PortConfigurationExtractor - Unable to find port config key worker1.gateway.port

Message: Missing port configuration value for key 'worker1.gateway.port'

这些错误出现在 gateway.log 文件中,并且在 Tableau Server 节点配置为具有应用程序服务器或 VizQL Server 但没有网关时发生。如果节点上正在运行应用程序服务器或 VizQL Server,则需要网关进程。

备份/还原

与还原 Tableau Server 创建的备份相关的问题可能是由权限问题造成的。正确的权限对于 TSM 正在还原的文件和文件位置都是必需的。当 TSM 处理备份时,它会将文件放在默认位置,并适当地设置权限。如果要还原已复制到 Linux 服务器的备份或者来自服务器上非默认位置的备份,则可能会遇到权限问题。有关使用非默认位置(包括如何更改位置)的详细信息,请参阅tsm File Paths

错误可能包括:

Server Was Denied Access to File

Restoring the backup '<backup>.tsbak' was unsuccessful

Comparing authentication methods failed

Tableau Server 备份和还原进程必须具有:

  • 读取权限 - 进程需要直接访问 .tsbak 备份文件。

  • 执行权限 - 进程还需要对放置 .tsbak 文件所在的目录结构的执行权限。

当 TSM 在默认位置创建备份时,它将设置所需的权限。如果将文件复制到 Linux 服务器,或将其移动到非默认目录,则权限可能不允许 TSM 进程进行正常访问。您需要验证此文件以及包含该文件的目录树是否允许 TSM 用户 tableau 访问。文件权限必须给予 tableau 用户 .tsbak 文件的读取访问权限。您可以通过将文件上的组设置为 tableau 组,并给予该组读取访问权限来执行此操作。目录权限必须给予 tableau 用户读取访问权限。您可以通过将目录上的组设置为 tableau 组,并给予该组对目录的读取和执行访问权限来执行此操作。

有关 TSM 和文件权限的详细信息,请参阅TSM 中的文件和权限

文件位置

更改 basefilepath 不会更改现有文件的位置

一些 tsm 命令会将文件写入默认位置。您可以使用 tsm set 命令更改每个命令的这些默认位置,但这样做不会将任何现有文件从原始位置移动到新位置,并且不会创建新位置。您负责创建新位置,并确保其具有正确的权限以允许 tsm 访问该位置中的任何文件,以及包含这些文件的整个目录结构。

有关更改备份、还原、站点导入和导出以及 ziplogs 文件的默认位置的详细信息,请参阅tsm File Paths

有关 tsm 权限的信息,请参阅TSM 中的文件和权限

TSM 命令

TSM 命令行不显示长时间运行的任务的进度

如果运行需要超过 2 小时才能完成的 tsm 命令(例如 restore 或 ziplogs),则此命令将在服务器上继续运行到完成为止。要显示作业的进度,请使用 tsm jobs reconnect 命令。

打开防火墙端口

Ubuntu 上手动打开防火墙端口

当前版本的 Tableau Server 不支持 Ubuntu 上使用的 ufw 防火墙。对于不想在 Ubuntu 上安装 firewalld 的客户,另一个选项是手动打开这些端口。以下步骤将确认 ufw 正在运行,并打开 TCP 端口 8850 和 80 以从任何源地址连接:

  1. 运行以下命令,确认 ufw 正在运行:

    sudo ufw status

    如果结果为 Status: inactive,您将需要启用 ufw,并确保您可通过 ssh(不在这些发行说明的讨论范围内)继续连接。

  2. 运行以下命令以允许访问端口 8850:

    sudo ufw allow 8850

  3. 运行以下命令以允许访问端口 80:

    sudo ufw allow 80

首次登录尝试时 OpenID 失败

如果您为 Tableau Server 配置了 Open ID Connect 身份验证,则首次尝试登录会失败。要成功登录,用户必须在首次失败后重试身份验证。

未显示管理视图

Tableau Server 的“状态”选项卡包括指向可视化项的链接,这些可视化项显示服务器指标。这些可视化项需要 PostgreSQL 驱动程序来访问 Tableau Server 存储库中的相应数据。PostgreSQL 驱动程序不会自动安装,因此,如果您未安装该驱动程序,视图将不会显示。有关详细信息,请参见数据库驱动程序

注意:要使用管理视图,PostgreSQL 驱动程序必须安装在运行 VizQL Server 进程的任何节点上。

在视图上更改区域设置

在打开视图后更改用户区域设置时,任何后续尝试打开视图的操作都将失败并出现“意外错误”。您仍可以打开以前未打开的视图。

要解决此问题,请在更改区域设置后退出 Tableau Server,然后重新登录。所有视图都将正确显示。

感谢您的反馈!您的反馈已成功提交。谢谢!