Monitoring serwerów i usług

console-37715_1280Funkcjonalnie temat konfiguracji serwera WWW jest już zamknięty. Zostały jeszcze jakieś niedociągnięcia, ale zostaną poprawione w późniejszym terminie. Podejrzewam, że w trakcie dalszych testów wyjdzie jeszcze sporo rzeczy do poprawienia, więc na razie zbieram je do jednego worka p.t.: „Nice to have”.

W związku z tym zacząłem tworzyć coś nowego. Monitoring. To będzie taka trochę odskocznia od tematów konfiguracyjnych. Monitoring działania serwera w głównej mierze opiera się na tym czy agent serwerowy komunikuje się z agentami klienckimi. Agent – klient wysyła poza dotychczasowymi informacjami systemowymi – czas w formacie UNIX time. Jest on zapisywany w bazie i porównywany przez proces javascript działający w tle przeglądarki. Komunikuje się on z backendem aby skalkulować czas. W momencie wystąpienia problemu z komunikacją pojawia się popup informujący o tym, że dany host nie odpowiada. Alert zapala się jeśli pomiędzy ostatnią aktualizacją w bazie a bieżącym czasie na serwerze spine wystąpi różnica 10 sekund.

Dlatego wyjątkowo należy zadbać o synchronizację czasu pomiędzy wszystkimi serwerami w infrastrukturze!

Rozwiązanie to opiera się na Web Workerach. Mechanizm ten pozwala przetwarzać dane w innym wątku – niezależnie od działania javascriptu na stronie. Badam w tym momencie możliwości web workerów. Sam monitoring wymaga jeszcze poczynienia kilku kluczowych założeń związanych z jego obsługą. Na pewno musi być możliwość zrobienia Acknowledge alertu. Nie ma sensu spamować usera popupami, skoro chcemy danego hosta na jakiś czas (lub na stałe) wyłączyć. Fajnie by było mieć jeszcze wykresy live pokazujące bieżące statystyki utylizacji interfejsu sieciowego.

Temat monitoringu będzie co jakiś czas wracał w miarę uruchamiania nowych funkcjonalności Spine’a. Teraz powstają podwaliny, podstawa na której będzie on zbudowany.

Tak wygląda w akcji to co do tej pory napisałem. Jeszcze wiele może się zmienić 😉