Avamar - FLR - Linux Сбой сценариев WGET FLR при настройке прокси-сервера HTTP на виртуальной машине.

Summary: Avamar — FLR — Не удалось восстановить файлы по сети из-за того, что целевая виртуальная машина Linux использует внутренний интернет-прокси для трафика «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

В журнале восстановления Avamar FLR отображается следующее: 
avvmwfile Error <0000>: Failed to restore files via network, check proxy log for details
avvmwfile Error <0000>: assist_restore error. ret: 157
В журналах FLR прокси-сервера Avamar:   /usr/local/avamaravamarclient/logs/VmwareFlr.log мы видим, что внутри гостевой операционной системы виртуальной машины выполняется автоматически созданный сценарий FLR «flrTBow8V».   Однако сценарий не был успешным (примечание: только код выхода 0 указывает на успешное выполнение, любое другое число является кодом сбоя) Код выхода из сбоя в этом журнале — 8. 
ExecuteProgram failed. script text:/bin/bash /root/flrTBow8V, Return: 0, script return code: 8
FLRBase:: ScriptUploadAndExecute failed

В журнале сценария FLR Avamar отображается следующее: /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

Это проблема среды, вызванная нестандартной конфигурацией Linux. 

В выходном файле сценария flr ( flrTBow8V.err ) мы видим, что трафик проходит через прокси-сервер клиента http internetproxy.example.com

Проблема: Из соображений безопасности только целевая виртуальная машина может скачивать файлы для этого конкретного задания или сценария FLR.  

HTTP PROXY приводит к тому, что входящий IP-адрес НЕ совпадает с IP-адресом целевой виртуальной машины и активирует код состояния HTTP 500.   


Конфигурация:  
  В гостевой операционной системе виртуальной машины в конфигурационном файле wget (~/.wgetrc или /usr/local/etc/wgetrc) настроен HTTP-прокси.    

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

Resolution

Решение. 

Чтобы решить эту проблему, необходимо убедиться, что сценарий FLR НЕ использует прокси-сервер http, изменив шаблон спецификации сценария wget.  

     

Шаги:
1. Подключитесь по SSH к прокси-серверу
Avamar 2. Отредактируйте сценарий шаблона wget в следующем расположении: 
/usr/local/avamarclient/bin/wget_linux_script.template
3.  Добавьте параметр команды wget «--no-proxy»

Пример конфигурации до изменения:
#!/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

Пример изменения конфигурации ПОСЛЕ:
#!/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. Перезапустите веб-службу vmwareflr на прокси-сервере.   (или перезагрузить прокси-сервер)
192proxy:~ #  systemctl restart vmwareflr.service

Affected Products

Avamar

Products

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