Co się stanie, gdy zostawimy serwer bez nadzoru? Czy serwer w ogóle trzeba nadzorować? Takie pytanie zadają sobie często właściciele serwerów VPS po czym odpowiadają nie. Oto co może się stać, gdy reprezentujemy takie podejście.
Stając się właścicielem serwera VPS musimy liczyć się z tym, że obejmujemy również funkcję jego administratora, a co się z tym wiąże jesteśmy odpowiedzialni za jego działanie i nieprzerwaną dostępność umieszczonych na nim informacji. Wiele osób natomiast kupując serwer nie zdaje sobie sprawy (lub skutecznie unika tego faktu), że wymaga on stałego monitoringu. W konsekwencji serwer pozostawiony jest sam sobie, bez odpowiedniego nadzoru, z zaległościami w aktualizacji czy regularnego sprawdzania stanu działania. Dodatkowo w przypadku, gdy mamy więcej niż jeden serwer lub całą sieć serwerów administracja nimi jest jeszcze bardziej pracochłonna i wymaga poświęcenia większej ilości czasu.
Brak efektywnej i sprawnej administracji generuje problemy. W ostatnich dniach mieliśmy okazję pomóc przy przywróceniu funkcjonalności serwera pozbawionego swojego administratora. Przeanalizujmy po kolei oś czasu naszego przypadku, podjęte wraz z każdym krokiem działania oraz sprawdźmy jakie mogą być skutki zaniedbań administracyjnych.
Podczas analizy logów, którą wykonaliśmy, aby znaleźć przyczynę problemów odkryliśmy, że źródło problemu powstało między 5 a 6 lutego 2019 roku. Na te dni przypadł moment, kiedy na serwerze skończyło się wolne miejsce na dysku twardym. W następstwie braku odpowiedniej administracji serwerem w dniu 16.03 doszło do powstania nieprawidłowości. Błąd spowodowany brakiem miejsca na serwerze doprowadził do uszkodzenia struktury bazy danych podczas zapisu informacji. Ponieważ serwer nie był monitorowany o awarii właściciel dowiedział się dopiero po czterech dniach. W tym momencie dostęp do strony był już niemożliwy, a jej funkcjonalność została zakłócona o czym świadczyło pojawienie się komunikatu „brak komunikacji z serwerem MySQL”. Właściciel niezwłocznie zgłasza ten fakt swojemu deweloperowi. Ten z kolei kontaktuje się z nami – S.M.S. Nasza dotychczasowa rola w dziejach tego serwera to jego konfiguracja i przygotowanie do działania produkcyjnego, stąd możliwość podjęcia próby logowania do serwera oraz posiadanie danych uwierzytelniających.
Po otrzymaniu od nas danych dostępowych deweloper zalogował się do panelu klienta. Stwierdził wtedy, że serwer jest przepełniony. W tym miejscu następuje kolejny błąd. Kierując się chęcią zwolnienia miejsca na serwerze, bez poprawnej analizy sytuacji deweloper usuwa trwale dwie najstarsze kopie zapasowe zostawiając jedynie najbardziej aktualny plik. Zrobił to jednak, nie weryfikując wcześniej poprawności i spójności plików backup. Jak się później okazało, pozostawiony ostatni plik był wadliwy, ponieważ podczas wykonywania zapisu danych do skompresowanego archiwum zabrakło wolnego miejsca na dysku twardym. Należy podkreślić też, iż deweloper nie zweryfikował co zajmuje tak dużo miejsca na serwerze a mógł zrobić to np. przy pomocy oprogramowania „ncdu”.
Deweloper ponownie skontaktował się z nami zgłaszając problem. Po otrzymaniu zgłoszenia problemu nasz technik zalogował się do wspomnianego wcześniej serwera, przeanalizował logi i na ich podstawie stwierdził, iż baza i dane w niej zawarte uległy uszkodzeniu. Taką też diagnozę przekazaliśmy deweloperowi, ten zadecydował o tym abyśmy to my podjęli się naprawy zaistniałej sytuacji. W pierwszej kolejności nasz technik wykonał kopie plików danych z serwera MySQL w taki sposób, aby po reinstalacji oprogramowania bazodanowego można było je łatwo i prosto wgrać do nowej instancji MySQL. W związku z brakiem rezultatów technik zdecydował o zastosowaniu bypassu polegającego na odtworzeniu bazy danych z backupu (przeterminowanego) posiadanego przez developera oraz pozostałych na serwerze plików strony www. W tym celu na naszych firmowych serwerach została stworzona dodatkowa instancja serwera MySQL, która posłużyła jako zewnętrzna baza danych dla serwera klienta. Rozwiązanie to pozwoliło na przerwanie czasu niedostępności strony WWW. Technik korzystając z tego, iż fakt uruchomienia strony WWW, a więc głównej aplikacji produkcyjnej klienta należy do czasochłonnych procesów, dało mu to więcej czasu na wykonanie pełnej kopii plików z serwera WWW na przygotowany w naszej sieci VPS i odtworzenie tam całości danych. Dla łatwości migracji danych na serwer docelowy stworzony został backup – wzór, który miał posłużyć do odtworzenia strony WWW na serwerze klienta.
W związku z tym, iż serwer kliencki do przywrócenia pełnej funkcjonalności wymagał pełnej reinstalacji – technik uznał, iż szczątkowe naprawianie kolejnych pojawiających problemów może nieść z sobą ryzyko kolejnych awarii w przyszłości – takowy zabieg został wykonany. W niedługim czasie wykonana została procedura reinstalacji systemu operacyjnego, serwera WWW, serwera MySQL oraz pozostałych elementów składowych. Po zakończeniu tej procedury z wcześniej utworzonego backupu technik odtworzył strukturę strony WWW, wyłączył bypass oraz przekierował całość ruchu na serwer klienta tak by działanie odbywało się już w normalny sposób.
Działania przedstawione w powyższym scenariuszu (od momentu zgłoszenia problemu przez dewelopera) zajęły w sumie 36 godzin. Biorąc pod uwagę, że problem z brakiem miejsca na serwerze powstał na początku lutego, usługa była wadliwa przez przeszło półtora miesiąca.
Z naszego doświadczenia wynika, że przy stałym monitorowaniu parametrów serwera, posiadaniu działających backupów oraz odpowiedniej administracji czas niedostępności danych w przypadku awarii nie przekracza 90 minut, co jest niezwykle ważne, ponieważ każda niedostępność strony WWW czy też samego serwera niesie z sobą poważne konsekwencje.
Największym i najmniej przyjemnym skutkiem braku dostępności strony www/serwera jest spadek w rankingu wyszukiwarek internetowych, zindeksowanie błędów serwera jako treści strony czy też po prostu zmniejszony ruch na stronie a w konsekwencji niepowodzenie projektu.
Wniosek? Pilnuj serwera! A jeśli nie masz wystarczającej wiedzy, czasu bądź ochoty to zleć zadanie dbania o swój serwer zaufanemu adminowi, który zajmie się nim z należytą dbałością oraz systematycznością. Jeśli nie wiesz, gdzie lub do kogo się zwrócić możesz skontaktować się z nami. Wesprzemy cię nie tylko w dobrze najlepszej strategii działania, ale pomożemy rozwiązać twoje problemy związane z administracją serwerem.