Parte 7: Validación, herramientas y solución de problemas

Esta parte incluye pasos de validación posteriores a la instalación y orientación para la resolución de problemas.

Validación del sistema de conmutación por error

Una vez que haya configurado su implementación, le recomendamos que ejecute pruebas de conmutación por error simples para validar la redundancia del sistema.

Recomendamos ejecutar los siguientes pasos para validar la funcionalidad de conmutación por error:

  1. Apague la primera instancia de la puerta de enlace independiente (TSIG1). Todo el tráfico entrante debe enrutarse a través de la segunda instancia de la puerta de enlace independiente (TSIG2).
  2. Reinicie TSIG1 y luego apague TSIG2. Todo el tráfico entrante debe enrutarse a través de TSIG1.
  3. Reinicie TSIG2.
  4. Apague el nodo 1 de Tableau Server. Todo el tráfico del servicio Vizportal/Application se conmutará por error al Nodo 2.

    Nota: A partir de septiembre de 2022, la alta disponibilidad del Nodo 1 está comprometida en determinadas versiones de Tableau Server 2021.4 y posteriores. Las conexiones del cliente fallarán si el Nodo 1 está inactivo. Este problema se ha solucionado en estas versiones de mantenimiento:

    - 2021.4.15 y posteriores
    - 2022.1.11 y posteriores
    - 2023.1.3 y posteriores

    Para garantizar que su instalación de Tableau Server mediante activaciones ATR tenga un período de gracia de 72 horas después del error inicial del nodo, instale o actualice a una de estas versiones. Para obtener más información, consulte Tableau Server HA que usa ATR no tiene un período de gracia después del error inicial del nodo(El enlace se abre en una ventana nueva) en la base de conocimientos de Tableau.

  5. Reinicie el Nodo 1 y apague el Nodo 2. Todo el tráfico del servicio Vizportal/Application se conmutará por error al Nodo 1.
  6. Reinicie el nodo 2.

En este contexto, "apagar" o "reiniciar" se realiza apagando el sistema operativo o la máquina virtual sin intentar cerrar correctamente la aplicación de antemano. El objetivo es simular una falla de hardware o máquina virtual.

El paso de validación mínimo para cada prueba de conmutación por error es autenticarse con un usuario y realizar operaciones de visualización básicas.

Es posible que obtenga un error del navegador "Solicitud incorrecta" cuando intente iniciar sesión después de una falla simulada. Es posible que vea este error incluso si borra el caché en el navegador. A menudo, este problema ocurre cuando el navegador está almacenando en caché datos de la sesión anterior de IdP. Si este error persiste incluso después de borrar la memoria caché del navegador local, valide el escenario de Tableau conectándose con un navegador diferente.

Recuperación automatizada inicial del nodo

Tableau Server 2021.2.4 y sus versiones posteriores incluyen un script de recuperación de nodo inicial automatizado, auto-node-recovery, en el directorio de scripts (/app/tableau_server/packages/scripts.<version>).

Si hay un problema en el nodo inicial y tiene procesos redundantes en el nodo 2, no hay garantía de que Tableau Server pueda seguir ejecutándose. Tableau Server puede continuar ejecutándose hasta 72 horas después de un error inicial del nodo, antes de que la falta del servicio de licencias afecte a otros procesos. Si es así, los usuarios podrán seguir iniciando sesión y ver su contenido después del fallo del nodo inicial, pero no podrán reconfigurar Tableau Server porque no tiene acceso al Controlador de administración.

Incluso cuando se configura con procesos redundantes, es posible que Tableau Server no continúe funcionando después de que falle el nodo inicial.

Para recuperar el error del nodo inicial (nodo 1):

  1. Inicie sesión en el nodo 2 de Tableau Server

  2. Cambie al directorio de scripts:

    cd /app/tableau_server/packages/scripts.<version>
  3. Ejecute el siguiente comando para iniciar el script:

    sudo ./auto-node-recovery -p node1 -n node2 -k <license keys>

    Donde <license keys> es una lista separada por comas (sin espacios) de las claves de licencia para su implementación. Si no tiene acceso a sus claves de licencia, visite el Portal del cliente de Tableau(El enlace se abre en una ventana nueva) para recuperarlas. Por ejemplo:

    sudo ./auto-node-recovery -p node1 -n node2 -k TSB4-8675-309F-TW50-9RUS,TSNM-559N-ULL6-22VE-SIEN

El script de recuperación automática de nodos ejecutará unos 20 pasos para recuperar servicios en el nodo 2. Cada paso se muestra en la terminal a medida que avanza el script. Se registra un estado más detallado en /data/tableau_data/logs/app-controller-move.log. En la mayoría de los entornos, el script tarda entre 35 y 45 minutos en completarse.

Solución de problemas de recuperación inicial del nodo

Si la recuperación del nodo falla, puede resultarle útil ejecutar el script de forma interactiva para permitir o no permitir determinados pasos durante el proceso. Por ejemplo, si el script falla en la mitad del proceso, puede revisar el archivo de registro, realizar cambios en la configuración y luego ejecutar el script de nuevo. Al ejecutarlo en modo interactivo, puede omitir todos los pasos hasta llegar al paso que falló.

Para ejecutar en modo interactivo, agregue el alternador -i al argumento del script.

Reconstrucción del nodo fallido

Una vez que haya ejecutado el script, el nodo 2 ejecutará todos los servicios que antes estaban en el host del nodo 1 que falló. Para agregar el nodo 4, debe implementar un host de Tableau Server nuevo con el archivo de arranque y configurarlo como lo hizo para el nodo 2 original, tal y como se especifica en la parte 4. Consulte Configurar el nodo 2.

switchto

Switchto es un script de Tim que facilita el cambio entre ventanas.

  1. Copie el siguiente código en un archivo llamado switchto en el directorio de inicio de su host de Bastion.
  2. #!/bin/bash
    #-------------------------------------------------------------------
    # switchto
    #
    # Helper function to simplify SSH into the various AWS hosts when
    # following the Tableau Server Enterprise Deployment Guide (EDG).
    #
    # Place this file on your bastion host and provide your AWS hosts' 
    # internal ip addresses or machine names here.
    # Example: readonly NODE1="10.0.3.187"
    #
    readonly NODE1=""
    readonly NODE2=""
    readonly NODE3=""
    readonly NODE4=""
    readonly PGSQL=""
    readonly PROXY1=""
    readonly PROXY2=""
    				
    usage() {
    echo "Usage: switchto.sh [ node1 | node2 | node3 | node4 | pgsql | proxy1 | proxy2 ]"
    }
    
    
    ip=""
    
    case $1 in
    	node1)
    		ip="$NODE1"
    		;;
    	node2)
    		ip="$NODE2"
    		;;
    	node3)
    		ip="$NODE3"
    		;;
    	node4)
    		ip="$NODE4"
    		;;
    	pgsql)
    		ip="$PGSQL"
    		;;
    	proxy1)
    		ip="$PROXY1"
    		;;
    	proxy2)
    		ip="$PROXY2"
    		;;
    	?)
    		usage
    		exit 0
    		;;
    	*)
    		echo "Unkown option $1."
    		usage
    		exit 1
    		;;
    esac
    
    if [[ -z $ip ]]; then
    echo "You must first edit this file to provide the ip addresses of your AWS hosts."
    exit 1
    fi
    
    ssh -A ec2-user@$ip
  3. Actualice las direcciones IP en el script para asignarlas a sus instancias EC2 y, después, guarde el archivo.
  4. Aplique los permisos al archivo del script:
  5. sudo chmod +x switchto

Uso:

Para cambiar a un host, ejecute el comando siguiente:

./switchto <target>

Por ejemplo, para cambiar al nodo 1, ejecute el siguiente comando:

./switchto node1

Solucionar problemas de la puerta de enlace independiente de Tableau Server

La configuración de la puerta de enlace independiente, Okta, Mellon y SAML en Tableau Server puede ser un proceso propenso a errores. La causa raíz más común de estos errores es un error de cadena. Por ejemplo, una barra inclinada final (/) en las URL de Okta especificadas durante la configuración puede causar un error de discrepancia relacionado con la aserción de SAML. Esto es solo un ejemplo. Hay muchas oportunidades durante la configuración para indicar una cadena incorrecta en cualquiera de las aplicaciones.

Reiniciar el servicio tableau-tsig

Inicie (y finalice) siempre la resolución de problemas reiniciando el servicio tableau-tsig en los equipos de la puerta de enlace independiente. Reiniciar este servicio es rápido y, a menudo, activa la configuración actualizada para que se cargue desde Tableau Server.

Ejecute los siguientes comandos en el equipo de la puerta de enlace independiente:

sudo su - tableau-tsig
systemctl --user restart tsig-httpd
exit

Encontrar cadenas incorrectas

Si cometió un error de cadena (error de copiar/pegar, cadena truncada, etc.), tómese el tiempo para revisar cada una de las configuraciones que configuró:

  • Configuración de autenticación previa de Okta. Revise cuidadosamente las URL que ha establecido. Busque barras inclinadas. Verifique HTTP frente a HTTPS.
  • Historial de shell para la configuración de SAML en el nodo 1. Revise el comando tsm authentication saml configure que ejecutó. Verifique que todas las URL coincidan con las que ha configurado en Okta. Mientras revisa el historial de shell del Nodo 1, verifique que los comandos tsm configuration set que especifican las rutas del archivo de configuración de Mellon se asignan exactamente a las rutas del archivo donde copió los archivos en la puerta de enlace independiente.
  • Configuración de Mellon en la puerta de enlace independiente. Revise el historial de shell para verificar que creó los metadatos con la misma cadena de URL que configuró en Okta y Tableau SAML. Verifique que todas las rutas que se especifican en /etc/mellon/conf.d/global.conf son correctos y que el MellonCookieDomain está configurado en su dominio raíz, no en su subdominio de Tableau.

Buscar registros relevantes

Si todas las cadenas parecen estar configuradas correctamente, debe inspeccionar los registros en busca de errores.

Tableau Server registra errores y eventos en docenas de archivos de registro diferentes. La puerta de enlace independiente también registra un conjunto de archivos locales. Recomendamos inspeccionar estos registros en el siguiente orden.

Archivos de registro de puerta de enlace independiente

La ubicación predeterminada de los archivos de registro de la puerta de enlace independiente es la siguiente: /var/opt/tableau/tableau_tsig/logs

  • access.log: este registro es útil en la medida en que tiene entradas que muestran conexiones desde los nodos de Tableau Server. Si recibe errores de puerta de enlace (no se inicia) cuando intenta iniciar TSM y no hay entradas en el archivo access.log, entonces hay un problema de conectividad central. Verifique siempre la configuración del grupo de seguridad de AWS como primer paso. Otro problema común es un error tipográfico en tsig.json. Si realiza una actualización de tsig.json, ejecute tsm stop antes de ejecutar tsm topology external-services gateway update -c tsig.json. Después de actualizar tsig.json, ejecute tsm start.
  • error.log: Entre otras entradas, este registro incluye errores SAML y Mellon.

Archivo de registro tabadminagent de Tableau Server

El conjunto de archivos tabadminagent (no tabadmincontroller) son los únicos archivos de registro relevantes para la resolución de errores relacionados con la puerta de enlace independiente.

Debe encontrar dónde se han registrado los errores de la puerta de enlace independiente en tabdminagent. Estos errores pueden estar en cualquier nodo, pero solo están en un nodo. Realice los siguientes pasos en cada nodo del clúster de Tableau Server hasta que encuentre la cadena "independiente":

  1. Busque la ubicación del archivo de registro tabadminagent en los nodos 1 a 4 de Tableau Server en la configuración de EDG:

    cd /data/tableau_data/data/tabsvc/logs/tabadminagent
  2. Abra el último registro para leer:

    less tabadminagent_nodeN.log

    (reemplace N con el número de nodo)

  3. Busque todas las instancias de "Independiente" e "independiente" utilizando la siguiente cadena de búsqueda:

    /ndependent

    Si no hay coincidencias, vaya al siguiente nodo y repita los pasos 1-3.

  4. Cuando obtiene una coincidencia: use Shift + G para moverse hacia abajo para obtener los últimos mensajes de error.

Recargar archivo auxiliar httpd

La puerta de enlace independiente gestiona la configuración de httpd para Apache. Una operación genérica que a menudo soluciona problemas transitorios es volver a cargar el archivo auxiliar httpd que genera la configuración subyacente de Apache. Ejecute los siguientes comandos en ambas instancias de la puerta de enlace independiente.

  1. Copie el archivo de resguardo en httpd.conf:

    cp /var/opt/tableau/tableau_tsig/config/httpd.conf.stub /var/opt/tableau/tableau_tsig/config/httpd.conf
  2. Reinicie el servicio de puerta de enlace independiente:

    sudo su - tableau-tsig
    systemctl --user restart tsig-httpd
    exit

Eliminar o mover archivos de registro

La puerta de enlace independiente registra todos los eventos de acceso. Deberá administrar el almacenamiento de archivos de registro para evitar llenar el espacio en disco. Si su disco se llena, la puerta de enlace independiente no podrá escribir eventos de acceso y el servicio fallará. El siguiente mensaje se registrará en error.log en la puerta de enlace independiente:

(28)No space left on device: [client 10.0.2.209:54332] AH00646: Error writing to /var/opt/tableau/tableau_tsig/logs/access.%Y_%m_%d_%H_%M_%S.log

Este error resultará en un estado de DEGRADED para el nodo external cuando ejecuta tsm status -v en el nodo 1 de Tableau. El nodo external en la salida de estado se refiere a la puerta de enlace independiente.

Para resolver este problema, elimine o mueva los archivos access.log del disco. Los archivos Access.log se almacenan en /var/opt/tableau/tableau_tsig/logs. Después de borrar el disco, reinicie el servicio tableau-tsig.

Errores del navegador

Solicitud incorrecta: un error común para este escenario es un error de "Solicitud incorrecta" de Okta. A menudo, este problema ocurre cuando el navegador está almacenando en caché datos de la sesión anterior de Okta. Por ejemplo, si administra las aplicaciones de Okta como administrador de Okta y luego intenta acceder a Tableau con una cuenta diferente habilitada para Okta, los datos de sesión de los datos del administrador pueden causar el error "Solicitud incorrecta". Si este error persiste incluso después de borrar la memoria caché del navegador local, intente validar el escenario de Tableau conectándose con un navegador diferente.

Otra causa del error "Solicitud incorrecta" es un error tipográfico en una de las muchas URL que especifique durante los procesos de configuración de Okta, Mellon y SAML. Compruebe que ha introducido todos estos sin error.

A menudo el archivo error.log en el servidor de puerta de enlace independiente especificará qué URL está causando el error.

No encontrada: la URL solicitada no se encontró en este servidor: este error indica uno de los muchos errores de configuración.

Si el usuario está autenticado con Okta y luego recibe este error, es probable que haya cargado la aplicación de autorización previa de Okta en Tableau Server cuando configuró SAML. Compruebe que tiene los metadatos de la aplicación Okta de Tableau Server configurados en Tableau Server, y no los metadatos de la aplicación Okta de preautorización.

Otros pasos de solución de problemas:

  • Revise la configuración de la aplicación de autorización previa de Okta. Asegúrese de que los protocolos HTTP vs HTTPS estén configurados como se especifica en este tema.
  • Reinicie tsig-httpd en ambos servidores de puerta de enlace independiente.
  • Compruebe que sudo apachectl configtest devuelve "Sintaxis OK" en ambas puertas de enlace independientes.
  • Verifique que el usuario de prueba esté asignado a ambas aplicaciones en Okta.
  • Compruebe que stickiess esté configurado en el equilibrador de carga y los grupos de destino asociados.

Comprobar la conexión de Tableau Server a la puerta de enlace independiente

Utilice el comando wget para verificar la conectividad y el acceso desde Tableau Server a la puerta de enlace independiente. Las variaciones de este comando pueden ayudarlo a comprender si los problemas de certificado están causando problemas de conexión.

Por ejemplo, ejecute este comando wget para verificar el protocolo de limpieza (HK) de Tableau Server:

wget https://ip-10-0-1-38.us-west-1.compute.internal:21319

Construya la URL con la misma dirección de host que incluyó para la opción de host del archivo tsig.json. Especifique el protocolo https y agregue la URL con el puerto HK 21319.

Para verificar la conectividad e ignorar la verificación del certificado:

wget https://ip-10-0-1-38.us-west-1.compute.internal:21319 --no-check-certificate

Para verificar que el certificado de CA raíz para TSIG sea válido:

wget https://ip-10-0-1-38.us-west-1.compute.internal:21319 --ca-certificate=tsigRootCA.pem

Si Tableau puede comunicarse, es posible que aún obtenga errores relacionados con el contenido, pero no obtendrá errores relacionados con la conexión. Si Tableau no puede conectarse en absoluto, comience por verificar la configuración del protocolo en los grupos de firewall/seguridad. Por ejemplo, las reglas de entrada para el grupo de seguridad donde reside la puerta de enlace independiente deben permitir TCP 21319.

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!