Avamar, FLR: Los scripts wget de FLR de Linux fallan cuando se configura un proxy HTTP en una máquina virtual.

Summary: Avamar, FLR, no se pudieron restaurar los archivos a través de la red debido a que la VM Linux de destino utiliza el proxy de Internet interno para el tráfico "wget"

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

En el registro de restauración de FLR de Avamar, vemos lo siguiente: 
avvmwfile Error <0000>: Failed to restore files via network, check proxy log for details
avvmwfile Error <0000>: assist_restore error. ret: 157
En los registros de flr del proxy de Avamar:   /usr/local/avamaravamarclient/logs/VmwareFlr.log vemos que el script de flr generado automáticamente "flrTBow8V" se está ejecutando dentro del sistema operativo invitado de las máquinas virtuales.   Sin embargo, el script no tuvo éxito (Nota: solo el código de salida 0 indicaría un éxito; cualquier otro número es un código de error) El código de salida de falla en este registro fue 8. 
ExecuteProgram failed. script text:/bin/bash /root/flrTBow8V, Return: 0, script return code: 8
FLRBase:: ScriptUploadAndExecute failed

En el registro del script FLR de Avamar , vemos lo siguiente en /usr/local/avamaravamarclient/logs/flrTBow8V.err 
<DATE>  https://Avamar-proxy-IP/download/<uuid>
Resolving internetproxy.example.com (internetproxy.example.com)... 10.2.3.4 
Connecting to internetproxy.example.com (internetproxy.example.com )|10.2.3.4|:3128... connected.

WARNING: cannot verify 10.1.4.50's certificate, issued by ‘/C=US/ST=California/L=Irvine/O=Dell Technologies/OU=Dell EMC/CN=Administrator’:
  Self-signed certificate encountered.
    WARNING: certificate common name ‘Administrator’ doesn't match requested host name ‘10.1.4.50’.Proxy request sent, awaiting response...
  HTTP/1.1 500 Failed to exec CGI
  Connection: close
  X-Frame-Options: SAMEORIGIN
  X-Content-Type-Options: nosniff
  Strict-Transport-Security: max-age=31536000;includeSubDomains
  X-XSS-Protection: 1; mode=block
  Cache-Control: must-revalidate,no-cache,no-store
  Content-Type: text/html;charset=iso-8859-1
  Content-Length: 368
  Server: Jetty(9.4.19.v20190610)
<DATE> ERROR 500: Failed to exec CGI.

ecode: "8"

Cause

Este es un problema de entorno provocado por una configuración no estándar de Linux. 

En el archivo de salida del script flr (flrTBow8V.err), podemos ver que el tráfico fluye a través de la internetproxy.example.com proxy http de Internet del cliente. 

Problema: Por motivos de seguridad, solo la máquina virtual de destino puede descargar archivos para este trabajo/script de FLR en particular.  

HTTP PROXY hace que la dirección IP entrante NO coincida con la dirección IP de la VM de destino y active el código de estado HTTP 500.   


Configuración:  
  En el sistema operativo huésped de la máquina virtual, un archivo de configuración de wget ( ~/.wgetrc o /usr/local/etc/wgetrc) tiene configurado un proxy HTTP.    

https_proxy  =  http://internetproxy.example.com:3128
 

Resolution

Solución: 

Para resolver este problema, debemos asegurarnos de que el script FLR NO utilice el proxy http mediante el cambio de la plantilla de especificación del script wget.  

     

Pasos:
1. SSH en el proxy
de Avamar 2. Edite el script de la plantilla wget en la siguiente ubicación: 
/usr/local/avamarclient/bin/wget_linux_script.template
3.  Agregue el comando wget switch "--no-proxy"

Ejemplo de configuración antes del cambio:
#!/bin/bash
logfile=$0.err
url=https://%s/download
token=%s
files=(%s)
exit_code=0
for file in "${files[@]}";do
        IFS='","' read filepath dest  <<< "$file"
        wget "$url/$filepath" -N -nH -x -P "$dest" --no-check-certificate -S --restrict-file-names=nocontrol  --no-parent --tries 5 --header="Authorization:$token" --cut-dirs=2 --content-disposition 2>>$logfile
        let exit_code=$exit_code+$?
        if Avamar_PlaceHolderFile=$filepath; then
           rm -f "$dest/$filepath"
        fi
done
# delete it self after finish execution
rm -f "$0"
echo "ecode: \"$exit_code\"" >> $logfile
exit $exit_code

Ejemplo de configuración DESPUÉS del cambio:
#!/bin/bash
logfile=$0.err
url=https://%s/download
token=%s
files=(%s)
exit_code=0
for file in "${files[@]}";do
        IFS='","' read filepath dest  <<< "$file"
        wget "$url/$filepath" -N --no-proxy -nH -x -P "$dest" --no-check-certificate -S --restrict-file-names=nocontrol  --no-parent --tries 5 --header="Authorization:$token" --cut-dirs=2 --content-disposition 2>>$logfile
        let exit_code=$exit_code+$?
        if Avamar_PlaceHolderFile=$filepath; then
           rm -f "$dest/$filepath"
        fi
done
# delete it self after finish execution
rm -f "$0"
echo "ecode: \"$exit_code\"" >> $logfile
exit $exit_code
4. Reinicie el servicio web vmwareflr en el proxy.   (o reinicie el proxy)
192proxy:~ #  systemctl restart vmwareflr.service

Affected Products

Avamar

Products

Avamar Client for VMware
Article Properties
Article Number: 000183577
Article Type: Solution
Last Modified: 05 Sep 2021
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.