Czego szukam w rozwiązaniu do monitorowania?

21

To jest kanoniczne pytanie dotyczące oprogramowania monitorującego.

Również powiązane: Jakiego narzędzia używasz do monitorowania swoich serwerów?

Muszę monitorować moje serwery; co muszę wziąć pod uwagę, decydując się na rozwiązanie monitorujące?

Kyle Brandt
źródło

Odpowiedzi:

19

Istnieje wiele rozwiązań monitorowania. Każdy ma swoje preferencje, a każda firma ma swoje potrzeby, więc nie ma poprawnej odpowiedzi. Mogę jednak pomóc Ci dowiedzieć się, czego możesz chcieć, wybierając rozwiązanie do monitorowania.

Do czego służą systemy monitorowania?

Ogólnie systemy monitorowania służą dwóm podstawowym celom. Pierwszym z nich jest gromadzenie i przechowywanie danych w miarę upływu czasu. Na przykład, możesz chcieć zebrać wykorzystanie procesora i zobrazować go w czasie. Drugim celem jest zaalarmowanie, gdy rzeczy albo nie reagują, albo nie mieszczą się w określonych progach. Na przykład, możesz chcieć otrzymywać powiadomienia, jeśli ping do określonego serwera nie jest osiągalny lub jeśli użycie procesora przekracza określony procent. Istnieją również systemy monitorowania dzienników, takie jak Splunk, ale traktuję je osobno.

Te dwie podstawowe role czasami występują w jednym produkcie, innym razem, a częściej jest to, że produkt jest przeznaczony do każdego celu.

Jakie są podstawowe komponenty i funkcje systemów monitorowania?

Pyłki :
Wszystkie systemy monitorowania potrzebują jakiegoś ptasznika do zbierania danych. Nie wszystkie dane są gromadzone w ten sam sposób. Powinieneś spojrzeć na swoje środowisko i zdecydować, jakie dane potrzebujesz i jak mogą być gromadzone. Następnie upewnij się, że wybrany system monitorowania obsługuje to, czego potrzebujesz. Niektóre typowe metody obejmują:

  • SNMP (Simple Network Management Protocol)
  • WMI (Instrumentacja zarządzania Windows)
  • Uruchamianie skryptów (na przykład uruchamianie skryptu na monitorowanym komputerze lub uruchamianie skryptu z samego pola monitorowania, które korzysta z własnej metody odpytywania). Mogą to być na przykład skrypty Bash, skrypty Perl, pliki wykonywalne i skrypty Powershell
  • Monitorowanie na podstawie agenta. Dzięki nim proces działa na każdym kliencie i gromadzi te dane. Te dane są przekazywane do serwera monitorowania lub serwer monitorowania odpytuje agenta. Niektórzy administratorzy są w porządku z agentami, inni ich nie lubią, ponieważ mogą pozostawić większy ślad na monitorowanym serwerze.
  • Ukierunkowane interfejsy API (tj. VMWare API lub możliwość uruchamiania zapytań SQL)

Jeśli w twoim środowisku jest przeważnie jeden system operacyjny lub podstawowy system operacyjny, niektóre systemy mogą mieć więcej opcji niż inne.

Konfiguracja :
W systemach monitorowania często wykorzystuje się wiele obiektów. Na przykład chcesz monitorować określoną aplikację, taką jak Apache lub IIS na kilku serwerach. Lub chcesz, aby określone progi miały zastosowanie do grup serwerów. Możesz także mieć określone grupy osób, które będą „dyżurować”. Dlatego dobry system szablonów jest niezbędny dla systemu monitorowania.

Konfiguracja odbywa się na ogół za pomocą interfejsu użytkownika lub plików tekstowych. Opcja interfejsu użytkownika będzie na ogół łatwiejsza, ale pliki tekstowe zwykle lepiej nadają się do ponownego użycia i zmiennych. Dlatego w zależności od personelu IT możesz preferować prostotę zamiast mocy.

Interfejs użytkownika :
Najpopularniejszym obecnie interfejsem do monitorowania systemów jest interfejs sieciowy. Niektóre rzeczy do oceny w odniesieniu do interfejsu internetowego to:

  • Dobre przeglądy
  • Dobre strony ze szczegółami
  • Szybkość (gdy potrzebujesz znaleźć informacje w trybie kryzysowym, powolny interfejs może być bardzo frustrujący
  • Ogólne odczucie Spędzisz dużo czasu w interfejsie, jeśli będzie ci niezręcznie, twój personel IT będzie odporny na korzystanie z niego
  • Dostosowywanie. Każda organizacja ma pewne rzeczy, które są ważne, i inne rzeczy, które nie są. Ważne jest, aby móc dostosować go do swoich potrzeb

Mechanizm ostrzegania :
Mechanizm ostrzegania musi być elastyczny i niezawodny. Istnieje wiele różnych sposobów powiadamiania, w tym:

  • SMS
  • E-mail
  • Telefon
  • Inne rzeczy, takie jak IM / Jabber

Inne funkcje, których należy szukać, to:

  • Eskalacje (Powiadom kogoś, jeśli inna osoba nie potwierdziła lub nie naprawiła ostrzeżenia)
  • Rotacje i zmiany
  • Grupy (niektóre grupy muszą zostać powiadomione o niektórych rzeczach)

Ważne jest, aby ufać, że gdy coś pójdzie nie tak, otrzymasz alert. Sprowadza się to do dwóch rzeczy:

  1. Niezawodny system
  2. Konfiguracja bez zastrzeżeń. W systemach monitorowania często zdarza się, że powinieneś otrzymać alert, ale z powodu pewnych szczegółów w konfiguracji alert nigdy nie został uruchomiony.

Magazyn danych :
jeśli system gromadzi i przechowuje dane (tj. Systemy zawierające wykresy), wówczas system przechowuje dane. Bardzo częstą implementacją zarówno dla sklepu, jak i wykresów jest na przykład RRD.

Niektóre funkcje, których należy szukać w magazynie danych, to:

  • Surowy dostęp do danych. Może to być przydatne do opracowywania niestandardowych wykresów lub tworzenia ich za pomocą programu Excel.
  • Skalowalność W zależności od tego, ile zgromadzonych danych może się szybko zsumować, jeśli zamierzasz zebrać dużo, chcesz mieć pewność, że będą skalowane.

Biblioteka
grafów : Wykresy mogą być przydatne do szybkiego identyfikowania trendów i nadawania kontekstu obecnemu stanowi czegoś na podstawie jego historii. Niektóre obejmują trendy, które mogą być pomocne w przewidywaniu rzeczy przed ich wystąpieniem (np. Zabraknie miejsca na dysku). Upewnij się, że wykresy podadzą ci informacje, które Twoim zdaniem będą potrzebne w jasny sposób.

Kontrola dostępu :
jeśli masz dużą organizację, możesz potrzebować kontroli dostępu, ponieważ niektórzy administratorzy powinni mieć możliwość dostosowania tylko niektórych rzeczy. Możesz także chcieć publicznych pulpitów nawigacyjnych. Jeśli jest to ważne, należy upewnić się, że system monitorowania ma potrzebne elementy sterujące.

Inne funkcje

Raportowanie :
System zapewniający dobre raporty może pomóc w określeniu, co należy poprawić w dłuższych okresach. Na przykład może dać dobrą odpowiedź na takie pytania, jak: „jakie systemy najbardziej się psują?”. Może to być ważne, gdy próbujesz przekonać kierownictwo do wydania pieniędzy na pewne rzeczy - biznes jest jak niezbity dowód.

Funkcje specjalne :
niektóre systemy monitorowania są ukierunkowane na określone produkty lub mają większe wsparcie niż inne. Na przykład jeśli najważniejszą rzeczą, którą musisz monitorować, jest serwer SQL lub jeśli intensywnie korzystasz z produktów VMWare, powinieneś zobaczyć, jak dobrze są one obsługiwane.

Wstępnie zdefiniowane szablony monitorowania :
System, który jest wyposażony w wiele wstępnie zdefiniowanych szablonów (lub ma bazę użytkowników, która utworzyła wiele szablonów) może być ogromną oszczędnością czasu.

Odkrycie :
jeśli masz duże lub zmieniające się środowisko. Niektóre systemy umożliwiają dodawanie nowych systemów za pośrednictwem interfejsu API lub uruchamianie skanowania w celu znalezienia nowych serwerów lub składników.

Monitorowanie rozproszone:
Jeśli masz wiele lokalizacji do monitorowania, pomocne może być monitorowanie ankieterów w każdej lokalizacji zamiast wielu niezależnych systemów monitorujących za pośrednictwem sieci WAN.

Niektóre popularne systemy monitorowania

Istnieje wiele systemów monitorowania. Mamy listę z podsumowaniem tego starego pytania . W skrócie niektóre z nich, o których słyszę najczęściej, to:

  • Nagios
  • Kaktusy
  • OpenNMS
  • Wiatry słoneczne
  • Zabbix
  • Różne oparte na chmurze systemy monitorowania
  • Microsoft System Center
  • Ten nie jest jeszcze popularny, ale Stack Exchange otworzył system monitorowania http://bosun.org

Jak podjąć decyzję na podstawie powyższego

Nie mogę ci powiedzieć, z czego korzystać, ponieważ każda organizacja ma własne potrzeby. Jeśli chcesz dokonać właściwego wyboru, zastanów się nad wszystkimi powyższymi komponentami i dowiedz się, jakie funkcje są ważne dla Twojej organizacji. Następnie znajdź system lub systemy, które twierdzą, że zapewniają to, czego potrzebujesz, i wypróbuj je. Niektóre z nich kosztują trochę, dużo lub są bezpłatne. Biorąc to wszystko pod uwagę, możesz dokonać wyboru. Z tego, czego użyłem, wszystkie są dalekie od ideału, ale przynajmniej możesz spróbować dostać coś, co pasuje.

Kyle Brandt
źródło
2
Pod „Mechanizmem ostrzegania” naprawdę potrzebujesz „ograniczenia prędkości powiadomień” jako funkcji. Będąc celem powiadomień „burze” setek lub tysięcy powiadomień z powodu awarii kaskadowych lub awarii trzepotania (jest w górę, jest w dół, jest w górę, jest w dół - och, hej, to znowu w górę ...) nie jest zabawne.
Evan Anderson
8

Pomocne jest rozróżnienie między monitorowaniem a alarmowaniem. Monitorowanie oznacza gromadzenie danych i tworzenie wykresów. Alarmowanie oznacza wysłanie mi SMS-a, gdy serwer zostanie wyłączony w środku nocy.

Nagios służy do ostrzegania. Kaktusy i Munin są do monitorowania. Inne produkty łączą dwie funkcje. Zenoss i Zabbix są przykładami.

Zacznę od odpowiedzi na kilka pytań:

Czy potrzebujesz monitorować serwery, urządzenia sieciowe, aplikacje lub wszystkie trzy?

Czy istnieją ograniczenia dotyczące metod monitorowania? Czy możesz zainstalować na serwerach klientów monitorujących, takich jak NRPE, czy będziesz używać SNMP, a może obu?

Kto będzie korzystał z wykresów i kto będzie korzystał z alertów? Jak chcesz wyglądać efekt końcowy? Czy wygląd interfejsu ma znaczenie (czy ludzie biznesu będą z niego korzystać, czy tylko personel techniczny?)

Jakie masz zasoby, zarówno pod względem czasu, umiejętności, jak i sprzętu? Czy masz przynajmniej skromną umiejętność pisania skryptów? Czy potrzebujesz gotowego rozwiązania?

Moim zdaniem pierwszą zasadą zarówno ostrzegania, jak i monitorowania powinno być Keep it Simple! Organizacja może żyć lub umrzeć na podstawie tego, w jaki sposób ostrzega i gromadzi dane, a przez większość czasu i tak sama się komplikuje. Zacznij od podstaw i buduj stamtąd.

J Adams
źródło
4

tl; dr

Pomyśl o usługach, które zapewnia twoje oprogramowanie , wysyłaj powiadomienia, gdy te usługi zawiodą lub gdy ryzyko awarii tych usług wzrośnie.

Umowy o poziomie usług

Teoria strategii monitorowania polega na powiązaniu monitorowania i alertów z jakimś porozumieniem dotyczącym poziomu usług . W końcu chcesz być powiadamiany o tym, że tracisz pieniądze, niekoniecznie że istnieje gwałtowny wzrost liczby połączeń TCP z nji0019.myserver.com. Istnieją różne narzędzia, które dadzą ci mnóstwo alertów, określą zależności między alertami, ale wiele z tych kontroli nie jest bezpośrednio związanych z usługami, które udostępniasz komuś.

Naruszenie służby

Zidentyfikuj ważne świadczone przez ciebie usługi, takie jak możliwość obsługi strony internetowej i możliwość modyfikacji tej strony internetowej (np. Pewnego rodzaju CMS). Należy je sprawdzić (np. Monitorując, czy można uzyskać stronę internetową i czy można). Awaria tych dwóch Usług (używanych tutaj z wielką literą S) powinna wywołać ostrzeżenie, aby Cię powiadomić.

Jeśli ważne jest, aby witryna zareagowała w rozsądnym czasie, to również powinno wywołać alerty. Rodzaj „naruszenia SLA”, jeśli chcesz.

Zwiększone ryzyko

Zwykle istnieje nieodłączne ryzyko awarii Usługi i często ryzyko to jest zmniejszane przez wprowadzenie redundancji, np. Drugiego serwera lub bazy danych slave lub dodatkowych kart sieciowych ...

Po utracie tej nadmiarowości Usługa nadal działa, ale ryzyko niepowodzenia Usługi właśnie wzrosło.

Jest to drugi główny powód do wywoływania alertów; że nadmiarowość zniknęła (np. że zmarł drugi serwer) lub istnieje bezpośrednie zagrożenie, że ryzyko wzrośnie (np. na dysku pozostało tylko 500 Mb, lub trend dysku wskazuje, że dysk zapełni się za około 5 godzin).

Co z tymi wszystkimi wskaźnikami?

Ale check_mk daje mi 50-60 czeków na hosta, czy wszystkie są bezwartościowe?

Nie. Wszystko to nie oznacza, że ​​chcesz porzucić mnóstwo automatycznych czeków, które otrzymujesz za pomocą np. Check_mk, ale oznacza to, że powinieneś spróbować podzielić każdą z kontroli na kategorie, na które Usługi mogą wpłynąć, jeśli coś się nie powiedzie.

Na jaką usługę wpłynęłoby wypełnienie partycji / var /? Na jaką usługę wpłynęłoby wyłączenie interfejsu eth0? ... jeśli wychodzące połączenia TCP są blokowane przez jakąś zaporę? ... jeśli liczba wątków przekracza 800? ... jeśli baza danych ulegnie awarii?

Przykład

Masz 2 serwery sieciowe i serwer bazy danych obsługujący witrynę za modułem równoważenia obciążenia, którego nie jesteś właścicielem (np. ISP). Dostarczana przez ciebie usługa to port 80 na dwóch serwerach i mają one ogromne pamięci podręczne, które mogą przetrwać np. Przestoje bazy danych (baza danych na trzecim serwerze).

W tym scenariuszu całkowita awaria serwera WWW nie spowodowałaby awarii witryny. Stało się tak, że redundancja zniknęła, więc ryzyko niepowodzenia właśnie wzrosło. To powinno wywołać alarm.

Całkowita awaria bazy danych może w ogóle nie wpływać na możliwość obsługi witryny z powodu dobrze dostrojonych pamięci podręcznych; To wtedy nie ma to wpływu na życzenie służenia stronę internetową, ale może to mieć wpływ na inną usługę, a mianowicie aktualizowanie strony internetowej, lub przyjmowanie zamówień ...

Każda usługa miałaby swój poziom usług, który określa, jak ważne jest przywrócenie usługi lub uniknięcie awarii

Bądź zwinny

Za każdym razem, gdy pojawi się alert, wykonaj jedną z następujących czynności: - zmień monitorowany system, aby naprawić problem, który spowodował alert (np. Wymień dysk lub ponownie skonfiguruj logrotate lub coś takiego) - zmień system monitorowania, aby uniknąć ostrzeżenia wysłane następnym razem, gdy sytuacja się pojawi. (np. zmień poziomy na „wolne od dysku”, aby dysk mógł wypełnić do 90% zamiast tylko 80%)

Moje własne doświadczenie

W większości znam Nagiosa i jego pełną konfigurację i od tego czasu jestem uzależniony od wielu witryn Check-mk. Niedawno dowiedziałem się, że check_mk ma tę koncepcję Business Intelligence (od 1.11), która wydaje się dobrze pasować do tego myślenia. Możesz zdefiniować, że kontrole w nagios są częścią większej usługi i mają reguły, które definiują stan „Usługi” jako funkcji stanu wielu kontroli, agregując do stanu najgorszego lub najlepszego .

mogsie
źródło
Wow, dwa opinie negatywne i brak komentarzy. Dobra forma.
mogsie
1
Ludzie boją się, jeśli myślisz zbyt daleko przed siebie :)
Florian Heigl
1

Jednym z najbardziej krytycznych punktów, o których firmy zapominają, wybierając rozwiązanie monitorujące, jest to, że nie chodzi tylko o rozwiązanie natychmiastowych problemów operacyjnych, chodzi o nieprzewidziane problemy jutra! Oczywiście rozwiązywanie pilnych problemów jest ważne, ale uwierz mi, w wielu przypadkach ta krótkowzroczna strategia nie gwarantuje przetrwania firmy.

Na rynku dostępnych jest kilkadziesiąt świetnych rozwiązań monitorujących. Zakwalifikowanie małego zestawu rozwiązań spełniających Twoje wymagania jest trudnym i długim zadaniem, a ponadto znalezienie takiego, które będzie pasować do Twojego budżetu, jest jeszcze trudniejsze. Interesującą częścią jest znalezienie takiej, która będzie dopasowana do twojej teraźniejszości i przyszłości . I nie ma procesu oceny, aby to wykryć, to kwestia doświadczenia + intuicja + bardzo ważny czynnik: zaufanie , które nie jest łatwą do zhakowania .

Zasadniczo wyszukuj i wyszukuj historie sukcesu swojego krótkiego zestawu rozwiązań do monitorowania, szczególnie jeśli ma to wpływ na firmę z twojego sektora. Zapytaj sprzedawcę o ich historie sukcesu, a nawet poproś o zgodę na rozmowę z jednym z jego klientów. Firmy, które nie boją się tego programu, mają prawdziwe relacje ze swoimi klientami i tego nie ukrywają, a obecnie jest to niezwykle rzadka rzecz.

Zabbix, Icinga, Pandora FMS, op5, Datadog, New Relic ... wszystkie mają swoje wzloty i upadki, ale prawdziwym problemem jest znalezienie, który z nich lepiej pasuje do twojej przyszłości.

Axel
źródło
0

Jeśli zastanawiasz się nad zdalnym monitorowaniem systemu, dobrym pomysłem może być poszukiwanie rzeczywistych testów lokalizacji. Problemy z łącznością nie należą już do przeszłości, a jeśli sprzęt obsługuje grupę w określonym regionie, warto upewnić się, że zasoby są dostępne w tej konkretnej lokalizacji.

Svetoslav Stefanov
źródło