Jak wdrożyć wysoką dostępność SolarWinds HA

Funkcjonalność SolarWinds High Availability jest nowym rozwiązaniem dla wysokiej dostępności systemu monitorowania, który integruje się ze wszystkimi usługami SolarWinds.

SolarWinds HA potrafi czuwać nad zdrowiem każdej usługi, która wchodzi w skład systemu monitorowania, i ocenić jej pracę. W przypadku problemów, SolarWinds automatycznie przeniesie dany serwer do drugiej lokalizacji. Producent wspiera High Availability dla swoich usług, co za tym idzie – wymaga rozwiązań trzecich dla instancji bazy danych. Warto wspomnieć, że SolarWinds wspiera dowolne rozwiązania HA dla Microsoft SQL, włącznie z natywnym rozwiązaniem Always On / Availibility Groups.

Zawsze możemy także przetestować funkcjonalność High Availability. Wszystkie instalacje SolarWinds posiadają wbudowane 30 dni okresu próbnego.

Przedstawiony diagram prezentuje prostą konfigurację HA, w której znajduje się jeden główny silnik Orion, dodatkowy serwer HA oraz instancja bazy danych bez wsparcia dla wysokiej dostępności. Warto wspomnieć, że jedna licencja HA uwzględnia dowolną liczbę modułów dla danego silnika, np. Network Performance Monitor, NetFlow Traffic Analyzer itd.

Kolejny diagram prezentuje bardziej złożoną architekturę, w skład której wchodzi główny serwer Orion oraz kilka dodatkowych silników Additional Polling Engine. Cała architektura korzysta z instancji bazy danych w Availability Group.

 

Architektura jest bardzo ciekawa, ponieważ pokazuje jak SolarWinds HA jest elastyczny. W naszym przykładzie HA jest zagwarantowane dla części systemu monitorowania, który jest odpowiedzialny za lokalne urządzenia oraz serwery. Natomiast część systemu, który monitoruje zasoby w chmurze AWS, nie została objęta w SolarWinds HA. Przykład zakłada potencjalny scenariusz awarii, który uwzględnia jedynie serwery lokalne.

 

Wirtualny adres IP (VIP) vs. Wirtualny Hostname

Dostęp do SolarWinds HA możemy skonfigurować na dwa sposoby. Pierwszym jest wirtualny adres IP, tzw. VIP, a drugim jest wirtualny hostname. Obydwie metody posiadają swoje plusy oraz minusy.

Wirtualny adres IP

Największą zaletą wirtualnego adresu IP jest możliwość przesyłania pakietów z urządzeń (takich jak syslog/trap/flow) do jednego adresu IP. Użytkownicy, którzy logują się do systemu, także mogą używać jednego adresu IP w przeglądarce internetowej. Podczas przełączania usług w HA, wirtualny adres IP gwarantuje minimalną utratę pakietów.

Głównym minusem wirtualnego adresu IP jest wymóg istnienia danego adresu IP w obydwu lokalizacjach dla HA. Dodatkowo, trzeba pamiętać  o dodaniu wirtualnego adresu IP do wszystkich Access List oraz reguł dla Firewalli.

Plusy

Pakiety z urządzeń sieciowych do SolarWinds są przesyłane do jednego adresu IP (syslog/trap/Flow)

Użytkownicy SolarWinds mogą używać jednego adresu IP

Minimalna utrata pakietów podczas przełączania

Minusy

Adres IP VIP musi istnieć w obydwu lokalizacjach dla HA

Wirtualny adres IP musi być dodany do Acces List oraz Firewalli, wraz z adresami IP indywiduanych serwerów SolarWinds

Wirtualny Hostname

Natomiast główną zaletą wirtualnego Hostname jest fakt, że lokalizacje HA mogą istnieć w dwóch niezależnych podsieciach. Także liczba wpisów w Access Listach oraz reguł Firewalli będzie mniejsza, z uwagi na mniejszą liczbę adresów IP systemu monitorowania. Dodatkowym ułatwieniem jest możliwość integracji z Microsoft DNS lub BIND, w celu szybkiego odświeżenia rekordów DNS.

Jeśli chodzi o minusy wirtualnego Hostname, urządzenia sieciowe muszą być kompatybilne z wysyłaniem pakietów syslog/trap/flow bezpośrednio na Hostname, zamiast adresu IP. Także przełączanie usług w trybie HA może potrwać do około 60 sekund, co może spowodować utratę pakietów wysyłanych do SolarWinds.

Plusy

Lokalizacje HA mogą istnieć w dwóch niezależnych podsieciach

Mniej adresów IP jest wymaganych dla Access List oraz Firewalli

Możliwość integracji z Microsoft DNS lub BIND, w celu szybkiego odświeżenia rekordów DNS

Minusy

Urządzenia sieciowe muszą mieć możliwość przekierowania ruchu syslog/trap/flow do Hostname (zamiast adresu IP)

Przełączanie usług w trybie HA może potrwać do 60 sekund, co może spowodować utratę pakietów wysyłanych do SolarWinds

 

Dla celów prezentacji rozwiązania HA, przygotowałem dwa serwery SolarWinds: główny silnik Orion z wieloma modułami oraz jeden dodatkowy silnik Additional Polling Engine.

Możemy zweryfikować aktualną architekturę systemu poprzez przejście do Ustawień i wyborze My Orion Deployment. Widzimy dwa serwery z możliwością stworzenia nowego serwera HA.

Wybieramy „Set Up a New HA Server”. SolarWinds prezentuje nam dwie możliwości konfiguracji adresów IP. W drugiej zakładce jest krótka instrukcja dla wdrożenia HA. Najpierw musimy ściągnąć instalator. Następnie otworzyć odpowiednie porty sieciowe dla komunikacji pomiędzy usługami SolarWinds, stworzyć nowy HA Pool oraz dodać licencje.

Zacznijmy od instalatora, który jest dostępny w linku „Download the Orion HA Installer”.

Przycisk jest odnośnikiem do lokalnego pliku instalacji na głównym serwerze SolarWinds, w naszym przypadku „Test-Orion-1”. Warto zauważyć, że sam instalator waży niewiele. Jednak posiada on wszystkie niezbędne narzędzia, które pozwolą na połączenie się do głównego serwera i ściągnięcie wszystkich brakujących plików. Instalator nie wymaga podłączenia do Internetu.

Teraz możemy się zalogować poprzez zdalny pulpit do naszych maszyn wirtualnych, które będą dedykowane pod usługę High Availability. W moim przykładzie już skopiowałem plik instalacji na pulpit.

Po włączeniu Instalatora, zostaną zainstalowane ewentualne brakujące biblioteki. W poniższym przypadku została doinstalowana biblioteka Microsoft .NET Framework 4.8.

Następnie będziemy poproszeni o dane do logowania się do głównego silnika SolarWinds.

W kolejnym kroku Instalator poprosi nas o zdefiniowanie „Server Role” oraz lokalizacji plików. W naszym przypadku posiadamy dwa serwery SolarWinds – główny silnik Orion oraz Additional Polling Engine. W celu zagwarantowania pełnego HA, musimy zainstalować usługi SolarWinds na dwóch serwerach.

Wybieramy kolejno:

– „High Availability – Backup Server for Main Server Protection” dla pierwszej maszyny HA

– „High Availability – Backup Server for Orion module Additional Polling Engine” dla drugiej maszyny HA

Producent SolarWinds wymaga kupienia licencji High Availability dla każdego serwera systemu monitorowania. W przypadku mniejszego budżetu, można najpierw zakupić HA dla głównego serwera Orion, a w przyszłości zakupić licencję dla Additional Polling Engine.

Kolejnym krokiem jest akceptacja EULA i zatwierdzenie instalacji. Warto zwrócić uwagę na prędkość pobierania plików. W naszym przypadku ok. 189 MB/s, co potwierdza, że pliki są pobierane lokalnie z głównego serwera SolarWinds.

Po instalacji, SolarWinds zainicjuje automatycznie Configuration Wizard. W przypadku pierwszej maszyny, instalator spyta o skonfigurowanie Microsoft IIS dla interfejsu webowego  – klikamy „Yes”.

Następnie Configuration Wizard poprosi nas o skonfigurowanie połączenia do bazy danych. Wszystkie uprawnienia powinny być automatycznie pobrane z głównego silnika SolarWinds.

Potwierdzamy wszystkie kroki.

Poniższy komunikat oznajmia, że konfiguracja została przeprowadzona prawidłowo i środowisko jest gotowe do skonfigurowania HA Pools. Pools można traktować jak kontenery, w których ręcznie przypisujemy dany serwer do danej funkcji HA.

Możemy teraz wrócić do przeglądarki internetowej i odświeżyć widok „My Orion Deployment”. SolarWinds dodał dwa serwery, które są gotowe to stworzenia Pools.

Po kliknięciu w „Set Up High Availability Pool” dla głównego silnika Orion, mamy możliwość wyboru wirtualnego adresu IP lub wirtualny hostname. W preferencja także posiadamy możliwość ustawienia preferencji dla serwerów. W większości przypadków preferencyjny serwer będzie znajdować się w głównej (pierwszej) lokalizacji.

Po zweryfikowaniu ustawień, potwierdzamy tworzenie Pool.

Analogicznie postępujemy z drugim silnikiem Additional Polling Engine.

Tak wygląda efekt końcowy oraz w pełni zabezpieczony przed awariami system monitorowania.

Warto się także zapoznać z ustawieniami „High Availability Settings”, które pozwalają na zdefiniowanie przedziałów czasowych dla awarii oraz notyfikacji o ewentualnych problemach.

 

Mamy także możliwość włączenia lub wyłączenia funkcji High Availability z użyciem wiersza poleceń, wykonując poniższą komendę. Funkcja jest szczególnie przydatna, jeśli nie mamy dostępu do interfejsu webowego lub planujemy kontrolować mechanizmem HA poprzez skrypty lub aplikacje trzecie.

C:\Users\Administrator>cd C:\Program Files (x86)\SolarWinds\Orion

C:\Program Files (x86)\SolarWinds\Orion>
C:\Program Files (x86)\SolarWinds\Orion>
C:\Program Files (x86)\SolarWinds\Orion>
C:\Program Files (x86)\SolarWinds\Orion>HAEnableDisable

USAGE:
    HAEnableDisable /? | /Info | /DisablePool ['PoolName'] | /EnablePool ['PoolName'] | /DisableHA | /EnableHA

Options:
    /?            Display this help
    /Info         Shows current HA configuration/environment info
    /DisablePool  Disable HA Pool with specified name 'PoolName' (If name
                  is not provided disable Pool where local member is hosted)
    /EnablePool   Enable HA Pool with specified name 'PoolName' (If name
                  is not provided enable Pool where local member is hosted)
    /DisableHA    Disable HA globally
    /EnableHA     Enable HA globally


C:\Program Files (x86)\SolarWinds\Orion>HAEnableDisable /DisableHA
HA was successfully DISABLED on global level.

C:\Program Files (x86)\SolarWinds\Orion>HAEnableDisable /Info
 - HA (global state: DISABLED)
   - pool 'Main Pool' (status: Up, state: ENABLED but overrided by global HA setting to DISABLED)
       member 'TEST-ORION-1' (status: Up)
       member 'TEST-ORION-1HA' (status: Up)
   - pool 'Additional Poller Pool 1' (status: Up, state: ENABLED but overrided by global HA setting to DISABLED)
       member 'TEST-ORION-2' (status: Up)
       member 'TEST-ORION-2HA' (status: Up)


C:\Program Files (x86)\SolarWinds\Orion>HAEnableDisable /EnableHA
HA was successfully ENABLED on global level.

C:\Program Files (x86)\SolarWinds\Orion>HAEnableDisable /Info
 - HA (global state: ENABLED)
   - pool 'Main Pool' (status: Up, state: ENABLED)
       member 'TEST-ORION-1' (status: Up)
       member 'TEST-ORION-1HA' (status: Up)
   - pool 'Additional Poller Pool 1' (status: Up, state: ENABLED)
       member 'TEST-ORION-2' (status: Up)
       member 'TEST-ORION-2HA' (status: Up)


C:\Program Files (x86)\SolarWinds\Orion>

Poniższy link opisuje wszystkie wymagania dla High Availability oraz kolejne odnośniki do dokumentacji.

W przypadku potrzeby ręcznego przebudowania pełnej konfiguracji High Availability, zachęcam do zapoznania się z poniższym artykułem producenta: