Błąd „503 Usługa niedostępna” w kliencie internetowym vSphere: co należy zrobić?
VMware vCenter Server, centralny punkt zarządzania w środowisku vSphere, służy do zarządzania hostami ESXi, klastrami, maszynami wirtualnymi i innymi komponentami w zwirtualizowanym centrum danych. Ten wpis na blogu dotyczy błędu „ ” oraz komunikatu „503 Service Unavailable” ( ), które mogą pojawić się w kliencie vSphere Client podczas próby połączenia się z vCenter. Zapoznaj się z tym wpisem, aby dowiedzieć się, jakie mogą być przyczyny tego błędu i jak go naprawić.
Czym jest błąd „503 Service Unavailable”?
503 Service Unavailable to jeden ze standardowych kodów statusu HTTP zwracanych przez serwer w odpowiedzi na żądanie wysłane przez klienta. Klasa kodów statusu HTTP 5xx służy do informowania użytkowników o błędach serwera. W związku z tym 503 Service Unavailable to odpowiedź opisująca błąd po stronie serwera. Zazwyczaj błąd ten oznacza, że serwer nie może obsłużyć żądania i należy poszukać przyczyny problemu na serwerze WWW, na którym hostowana jest aplikacja.
Oto pełny tekst tego błędu dla klienta VMware vSphere:
503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x000055615a4d7a70] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe)
W przypadku błędu vCenter 503 Service Unavailable błąd może być spowodowany różnymi czynnikami:
- Niektóre usługi nie zostały jeszcze załadowane i nie działają (jednym z typowych problemów jest awaria usługi odwrotnego proxy lub usługi klienta WWW vSphere).
- Serwer vCenter jest w trakcie konserwacji
- Serwer vCenter jest przeciążony
- Wystąpiły problemy z dyskiem na serwerze vCenter
- Wystąpiły problemy z bazą danych używaną przez vCenter
- Nieprawidłowe ustawienia zapory sieciowej (dla vCenter zainstalowanego w systemie Windows) i problemy z siecią
Należy znaleźć i naprawić błąd na serwerze vCenter, a nie po stronie klienta.
Usługi nie zostały uruchomione
Jeśli właśnie uruchomiłeś instancję vCenter, a wszystkie potrzebne usługi jeszcze się nie uruchomiły, poczekaj kilka minut i spróbuj ponownie.
- Spróbuj połączyć się z vCenter z innego klienta.
Jeśli to nie pomoże, sprawdź, czy wszystkie potrzebne usługi zostały uruchomione.
- Otwórz interfejs zarządzania urządzeniem (dla vCenter Server Appliance) w przeglądarce internetowej, wpisując adres IP lub FQDN (w pełni kwalifikowaną nazwę domeny) dla vCenter oraz port 5480, na przykład:
https://192.168.101.103:5480/ui/services - Sprawdź stan usług vCenter w sekcji
Services. Na przykład, jeśli usługa vSphere Web Client ma statusStarted, a usługa vCenter Server ma statusStopped, może wystąpić błąd VMware503 Service Unavailable.
- Można sprawdzić stan usług vCenter w konsoli i interfejsie wiersza poleceń (CLI). Włącz logowanie SSH, konsolę CLI i powłokę Bash w sekcji
Accessinterfejsu zarządzania vCenter Appliance.
- Alternatywnie można włączyć powłokę Bash i dostęp SSH w interfejsie DCUI (Direct Console User Interface) urządzenia vCenter Server Appliance (VCSA) w opcjach
Troubleshooting Mode.
-
Upewnij się, że istnieje połączenie między komputerem a serwerem vCenter, uruchamiając na komputerze następujące polecenie (wprowadź nazwę hosta lub adres IP serwera vCenter): `
telnet vcenter_fqdn 9443 - ` Połącz się z vCenter przez SSH lub z konsolą VCSA (w interfejsie DCUI vCenter naciśnij `
Alt+F1`, zaloguj się, wpisz `shell,` i naciśnij `Enter`). -
Sprawdź stan usług vCenter, uruchamiając polecenie na komputerze, na którym działa vCenter:
service-control --status --all

- Jeśli istnieje zewnętrzny kontroler usług platformy (PSC), sprawdź połączenie vCenter z PSC. Sprawdź również usługi na PSC.
-
Jeśli niektóre usługi zostały zakończone, uruchom wszystkie usługi za pomocą polecenia:
service-control --start --all -
Spróbuj zatrzymać i uruchomić usługę vSphere Client:
service-control --stop vsphere-client
service-control --start vsphere-client - Poczekaj około 10–15 minut, aż usługa się uruchomi, a następnie spróbuj uzyskać dostęp do vCenter w vSphere Client.
Sprawdź pliki dziennika
Sprawdzenie plików dziennika może pomóc w znalezieniu przyczyny błędów, w tym błędu vCenter 503 Service Unavailable .
Najpierw sprawdź plik vsphere_client_virgo.log .
- W przypadku wersji vCenter Server dla systemu Windows dzienniki są przechowywane w:
C:ProgamDataVMwarevCenterServerlogsvsphere-clientlogs - W przypadku vCenter Server Appliance dzienniki vCenter są przechowywane w:
/var/log/vmware/vsphere-client/logs/
Sprawdź również plik vpxd.log .
- W przypadku vCenter działającego w systemie Windows plik
vpxd.logjest przechowywany w:
C:ProgramDataVMwarevCenterServerlogsvmware-vpx - W przypadku vCenter Server Urządzenia plik
vpxd.logjest przechowywany w:
/var/log/vmware/vpxd/
Niewystarczające wolne zasoby sprzętowe
Niewystarczająca ilość miejsca na dysku nie powoduje samego błędu vCenter 503 Usługa niedostępna . Jednak niektóre usługi nie mogą się uruchomić, jeśli nie ma wolnego miejsca na dysku, co może powodować błąd 503 Usługa niedostępna . Przyczyną tego błędu może być również duże opóźnienie w magazynie dla vCenter. Począwszy od wersji VCSA 6.5, urządzenie jest wyposażone w 12 dysków wirtualnych (wcześniej w VCSA były 2 dyski wirtualne) i możliwe jest, że coś pójdzie nie tak z jednym z dysków wirtualnych. Jeśli vCenter Server jest przeciążony, zajęty serwer nie może obsłużyć Twojego żądania.
- Sprawdź wolne miejsce na dysku i uruchom polecenie po stronie vCenter Server. Jeśli korzystasz z vCenter Server Urządzenia, uruchom to polecenie:
df -h - W VCSA 6.7 partycja
/storage/archive/może być zapełniona, co jest oczekiwaną (normalną) sytuacją wynikającą z projektu vCenter 6.7 firmy VMware. Sprawdź wolną pamięć i zasoby procesora:
top - Sprawdź system plików na komputerze, na którym działa vCenter. Użyj polecenia `
e2fsck`, aby sprawdzić system plików na serwerze VCSA, a następnie uruchom polecenie `e2fsck -y filesystem`, na przykład: `
e2fsck -y /dev/sda1 - `. Jeśli wykryto i usunięto błędy, uruchom ponownie serwer vCenter: `
reboot
`. Problemy z bazą danych vCenter
Baza danych jest ważnym elementem niezbędnym do prawidłowego działania serwera vCenter. Jeśli baza danych nie działa, mogą wystąpić błędy vCenter, w tym „ vCenter 503 Usługa niedostępna ”. Przyjrzyjmy się możliwym problemom z bazą danych i sposobom ich naprawiania.
Czasami w pliku dziennika vpxd wyświetlane są następujące błędy:
An unrecoverable problem has occurred, stopping the VMware VirtualCenter service. Error: Error[VdbODBCError] (-1) "ODBC error: (23505) - ERROR: duplicate key value violates unique constraint "pk_vpx_vm_virtual_device";
Error while executing the query" is returned when executing SQL statement "INSERT INTO VPX_VM_VIRTUAL_DEVICE
- Jeśli vCenter jest zainstalowany w systemie Windows, sprawdź Podgląd zdarzeń , aby wyświetlić dzienniki zdarzeń aplikacji.
Jest to błąd spowodowany zduplikowanymi wpisami w wbudowanej bazie danych Postgres, która jest używana do prawidłowego działania vCenter.
- Otwórz interfejs wiersza poleceń vCenter Server Urządzenie i na przykład połącz się z serwerem przez SSH.
- Przejdź do katalogu logów Postgres:
cd /var/log/vmware/vpostgres - Sprawdź pliki logów. Pliki logów mają nazwy w formacie
postgresql-“dayofmonth”.log. Na przykład plik logu dla trzeciego dnia miesiąca nosi nazwę „postgresql-03.log”. Jeśli dzisiaj jest 3 maja, sprawdź zawartość odpowiedniego pliku logu:cat postgresql-03.log
2020-05-03 16:05:12.749 UTC 38a12db9.5481 1008636 VCDB vc ERROR: duplicate key value violates unique constraint “pk_vpx_vm_virtual_device”
2020-05-03 16:05:12.749 UTC 38a12db9.5481 1008636 VCDB vc DETAIL: Key (id, device_key)=(8101, 4002) already exists. - Zapamiętaj wartości
IDiDEVICE_KEY. W tym przykładzie wartości te wynoszą odpowiednio 8101 i 4002. - Połącz się z wbudowaną bazą danych Postgres używaną przez vCenter:
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres - Usuń zduplikowany wpis:
DELETE FROM vc.vpx_vm_virtual_device where id=’8101′ and device_key=’4002′;
"DELETE 1"w wynikach oznacza, że wszystko jest w porządku. - Wyjdź z interfejsu CLI bazy danych:
q - Wpisz
reboot, aby zrestartować serwer vCenter. Poczekaj, aż serwer vCenter i usługi zostaną uruchomione, a następnie spróbuj otworzyć vSphere Client.
Po ponownym uruchomieniu może pojawić się ten sam błąd. Sprawdź ponownie logi bazy danych. Jeśli zduplikowane wpisy zostały utworzone ponownie, usuń je i zrestartuj vCenter. Być może konieczne będzie wielokrotne powtarzanie usuwania zduplikowanych wpisów i ponownego uruchamiania serwera vCenter Server, aż do rozwiązania problemu.
- Czasami może być konieczne wykrycie maszyny wirtualnej, której dotyczy problem, usunięcie jej z zasobów, a następnie ponowna rejestracja (dodanie) tej maszyny do zasobów.
- Jeśli ta metoda nie pomoże trwale rozwiązać problemu, spróbuj zaktualizować vCenter do wersji 6.7 lub nowszej.
- Jeśli korzystasz z bazy danych SQL, sprawdź, czy masz wolne miejsce na dysku do przechowywania logów bazy danych SQL. Jeśli w systemie plików dzienników bazy danych SQL nie ma wolnego miejsca, może pojawić się błąd.
Problemy z uprawnieniami
Jeśli vCenter jest zainstalowany na serwerze Windows Server, czasami mogą wystąpić problemy z uprawnieniami kont.
Sprawdź zasadę „ Log on as a batch task ” w edytorze zasad grupy i upewnij się, że wszystkie wymagane konta są uwzględnione. Brak uprawnień na serwerze Windows Server, na którym zainstalowano vCenter, może spowodować błąd vSphere 503 Service Unavailable .
- Otwórz lokalny edytor zasad grupy w systemie Windows (
Start > Run > gpedit.msc). - W edytorze zasad grupy przejdź do
Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment > Log on as a batch job. - Dodaj te konta użytkowników do tej zasady, jeśli ich brakuje:
cm
content-library
eam
imagebuilder
mbcs
netdumper
perfcharts
rbd
vapiEndpoint
vmware-vpostgres
vsan-health
vsm
vsphere-client
vsphere-ui - Kliknij
Add User or Group, aby dodać konta.
- Zatrzymaj i uruchom usługę vSphere Client za pomocą następujących poleceń:
service-control --stop vsphere-client
service-control --start vsphere-client - Uruchom usługę interfejsu użytkownika vSphere:
service-control --start vsphere-ui - Poczekaj, aż usługa zostanie uruchomiona.
- Uruchom ponownie vCenter Server i sprawdź, czy vCenter działa poprawnie.
Zazwyczaj wymagane konta powinny zostać dodane automatycznie przez instalator vCenter, dopóki ta zasada nie zostanie ustawiona ręcznie w edytorze zasad grupy.
Problemy z siecią i DNS
Upewnij się, że nazwa DNS vCenter jest ustawiona poprawnie, a adres IP vCenter Server jest rozpoznawany. Jeśli w DNS znajduje się nieprawidłowy wpis, może pojawić się błąd 503 Service Unavailable . Podczas instalacji vCenter ustaw nazwę DNS w konfiguracji w kroku 7 (Konfiguracja ustawień sieciowych) etapu 1.

Jeśli korzystasz z zewnętrznego serwera PSC, adres IP serwera PSC musi być rozpoznany w obu kierunkach — wyszukiwania bezpośredniego i odwrotnego.
- Sprawdź nazwę hosta w pliku
/etc/hostsna urządzeniu vCenter Server Appliance. Upewnij się, że w pliku tym znajduje się w pełni kwalifikowana nazwa domeny (FQDN) oraz nazwa skrócona w następującym formacie:
vCenter_IP vCenter Server Appliance FQDN vcenter short name
Na przykład:
192.168.101.103 vCenter6-7.vsphere.local vCenter6-7 - Po zmianie konfiguracji DNS uruchom ponownie usługę
vpxd:
service vmware-vpxd restart - Możesz sprawdzić stan usługi
vpxdza pomocą polecenia:
vpxd status service vmware-vpxd status - Na PSC uruchom te polecenia, aby ponownie uruchomić powiązane usługi:
/etc/init.d/vmware-stsd restart
/etc/init.d/vmware-sts-idmd restart
service vmware-cm restart - Uruchom ponownie usługę vpxd na komputerze, na którym zainstalowano vCenter:
service vmware-vpxd restart - Poczekaj, aż wszystkie potrzebne usługi zostaną uruchomione, a następnie spróbuj otworzyć VMware vSphere Client.
Zaleca się korzystanie z modelu wdrażania vCenter z wbudowanym PSC, aby ograniczyć problemy z siecią. Najnowsze wersje vCenter, takie jak vCenter 7.0, obsługują wyłącznie instalację z wbudowanym serwerem PSC.
Jeśli nadal pojawia się błąd vCenter 503 Service Unavailable , wypróbuj kolejną metodę.
- Spróbuj włączyć lub wyłączyć IPv6. Otwórz
/etc/sysctl.confi zmień wartośćnet.ipv6.conf.eth0.disable_ipv6z1na0, aby włączyć IPv6:
#Disabling SLAAC/Link Local addresses
net.ipv6.conf.eth0.disable_ipv6=0 - Podobnie, ustaw wartość 1, aby wyłączyć IPv6.
- Po zapisaniu ustawień uruchom polecenia:
sysctl -a
sysctl -p - Otwórz teraz VMware vSphere Client. Sprawdź, czy po ponownym uruchomieniu wszystko działa poprawnie.
- Spróbuj wyłączyć SMBv1 i włączyć zamiast tego SMBv2. Następnie uruchom ponownie vCenter Server i sprawdź, czy ta metoda pomogła.
Problemy z hasłem
Sprawdź, czy hasło administratora dla vCenter Server Appliance nie wygasło. Jeśli wygasło, nie będziesz w stanie zalogować się do vCenter w celu edycji konfiguracji i naprawienia błędów, w tym błędu vCenter urządzenia 503 Service Unavailable bez stosowania obejścia. Możesz ustawić okres ważności hasła administratora na 0 , jeśli chcesz, aby hasło nigdy nie wygasło.
- Ustawienia wygaśnięcia hasła administratora można edytować w interfejsie graficznym vCenter Server Appliance Management:
https://your_vCenter_IP:5480/ui/administration
- Jeśli występuje niezgodność hasła w
vmdirddla konta określonego wvmdird-syslog.log, może to być przyczyną pojawienia się następującego błędu:503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f3d084a60c0] _serverNamespace = / _isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe)" - Sprawdź plik
/var/log/vmware/vmdird/vmdird-syslog.log, aby zidentyfikować, które hasło konta jest nieprawidłowe i wymaga zresetowania.
Uwaga: Przed edycją konfiguracji należy wykonać kopię zapasową vCenter lub przynajmniej utworzyć migawkę, jeśli serwer vCenter działa na maszynie wirtualnej. To samo należy zrobić w przypadku zewnętrznego kontrolera usług platformy, jeśli jest używany. - Zaloguj się do vCenter Server Urządzenia jako
rootprzez SSH. Wpiszshell.set --enabled trueiShell, aby uzyskać dostęp do konsoli Bash. - Otwórz narzędzie vdcadmintool , uruchamiając polecenie:
/usr/lib/vmware-vmdir/bin/vdcadmintool - Wybierz trzecią opcję:
Reset account password - Wprowadź nazwę konta, którego hasło chcesz zresetować, zgodnie z informacjami zawartymi w pliku
vmdird-syslog.log. - Nowe hasło zostanie wygenerowane automatycznie. Skopiuj i zapisz to hasło.
Uwaga: Jeśli w haśle widzisz pusty znak, wygeneruj nowe hasło, wracając do poprzedniego kroku. Problem ten występuje, gdy hasło zawiera znaki specjalne, a są one wyświetlane jako brakujące (puste) znaki. - Połącz się z vCenter Server przez SSH zgodnie z powyższym opisem (jeśli korzystasz z zewnętrznego PSC). Jeśli korzystasz z wbudowanego modułu PSC, przejdź do następnego kroku.
- Uruchom polecenie, aby zaktualizować nowe hasło:
/opt/likewise/bin/lwregshell
cd HKEY_THIS_MACHINEservicesvmdir
set_value dcAccountPassword "new password"
quit - Uruchom ponownie usługi vCenter Server Appliance za pomocą poleceń:
service-control --stop --all
service-control --start --all
Wykonaj kopię zapasową vCenter
Zasadniczo zaleca się wykonanie kopii zapasowej vCenter po zakończeniu konfiguracji. Należy to zrobić po upewnieniu się, że vCenter działa poprawnie, a przed edycją konfiguracji, aby umożliwić przywrócenie vCenter w razie wystąpienia problemów. Najlepszym podejściem jest tworzenie regularnych kopii zapasowych vCenter, ponieważ konfiguracja vCenter może ulec zmianie podczas działania, a do zasobów vCenter mogą zostać dodane nowe elementy. Nie da się przewidzieć, kiedy wystąpi awaria.
NAKIVO Backup & Replication to uniwersalne rozwiązanie do ochrony danych, które umożliwia wykonywanie kopii zapasowych maszyn wirtualnych VMware vSphere oraz maszyn fizycznych z systemami Windows i Linux, w tym baz danych SQL. Zabezpiecz swoje maszyny vCenter Server za pomocą NAKIVO Backup & Replication, a jeśli coś pójdzie nie tak z vCenter, będziesz mógł przywrócić działającą konfigurację w krótkim czasie. Wsparcie dla kopii przyrostowych i polityki retencji GFS pomaga w bardziej racjonalnym wykonywaniu kopii zapasowych VMware vCenter. Produkt obsługuje obcinanie dziennika SQL w celu oszczędzania miejsca na dysku i zmniejszenia prawdopodobieństwa błędów spowodowanych brakiem miejsca na dysku przy dużych logach baz danych.