Monitorowanie aplikacji i rozwiązywanie problemów 21 Maj 2015, Poznań Adrian TUROWSKI [email protected] Agenda Po co monitorować aplikacje sieciowe? Sposoby monitorowania – SPAN vs. Netflow. Przykładowe narzędzia do monitorowania. Monitorowanie aplikacji w środowisku wirtualnym. Monitorowanie kodu aplikacji .NET i JAVA. Rozwiązywanie problemów aplikacji sieciowych – przykłady. Po co monitorować aplikacje sieciowe? Problem z aplikacją Po co monitorować aplikacje sieciowe? Aby mieć widok na: sieć całościowy ruch sieciowy jakość i wykorzystywanie aplikacji wrażenia użytkowników czasy odpowiedzi aplikacji opóźnienia w sieci retransmisje Miejsce problemu Sposoby monitorowania Netflow vs. SPAN Netflow Kolektor Oddział terenowy WAN Data Center Oddział terenowy SPAN Sonda WAN SPAN Oddział terenowy Internet Serwery Data Center Oddział terenowy SPAN Sonda SPAN Sonda WAN SPAN Oddział terenowy Sonda Internet SPAN Serwery Data Center Oddział terenowy SPAN vs. Netflow Dostarczane dane SPAN Netflow Adresy IP (źródłowy i docelowy) √ √ Porty (źródłowy i docelowy) √ √ Ilość pakietów √ √ Ilość danych (b/s) √ √ Flagi TCP √ √ (suma flag) Interfejsy (ruch wychodzący i przychodzący) √ Interfejsy wykorzystanie przepustowości √ Quality of Service √ Próby połączeń TCP (SYN) √ Udane połączenia (three-way handshake SYN-SYN/ACK-ACK) √ Zerwane połączenia (FIN bez ACK) √ Resetowane połączenia (RST) √ Retransmisje √ Opóźnienia RTT √ Czas odpowiedzi serwera √ Czas odpowiedzi do użytkownika √ Dodatkowe statystyki dla wyższych warstw √ (np. http, sql, citrix, voip) √ √ (opcjonalnie http) Przykładowe narzędzia do monitorowania Riverbed AppResponse Analiza Dane aplikacyjne (pakiety i przepływy) * Moduły opcjonalne Wszystkie aplikacje Analiza strumieni aplikacji TCP Aplikacje WWW Analiza transakcji WWW Wszystkie aplikacje Moduł NetShark* Citrix XenApp Moduł CXTracer* Bazy danych SQL Moduł baz danych* Połączenia VoIP i wideo Moduł VoIP i wideo* Dane wydajnościowe Statystyki wydajnościowe i archiwum pakietów Zalety rozwiązania Pasywne monitorowanie – Port Mirroring / SPAN Wgląd w działanie wszystkich aplikacji sieciowych Przedstawianie czasów odpowiedzi dla aplikacji i serwerów Monitorowanie jakości działania aplikacji i wrażeń użytkowników końcowych Wykrywanie problemów z wydajnością sieci, serwerów i aplikacji Monitorowanie opóźnień sieciowych i retransmisji Wykrywanie anomalii sieciowych: • duże ilości zerwanych połączeń - robaki, nieaktywne usługi sieciowy • użycie protokołów nie szyfrowanych – trojany, wyciek loginów i haseł Integracja z akceleratorami WAN Riverbed SteelHead Wgląd w działanie wszystkich aplikacji sieciowych Czasy odpowiedzi aplikacji i serwerów Czasy odpowiedzi aplikacji Wszystkie wykryte aplikacje Całkowity ruch sieciowy Monitorowanie jakości działania aplikacji i wrażeń użytkowników końcowych Jakość działania aplikacji Wrażenia użytkowników Wykrywanie problemów z wydajnością sieci, serwera / aplikacji 1 Czas odpowiedzi do użytkownika Czas odpowiedzi serwera Czas nawiązania połączenia Retransmisje Czas transferu danych Opóźnienie sieci Wykrywanie problemów z wydajnością sieci, serwera / aplikacji 2 Problem z siecią Problem z serwerem / aplikacją Monitorowanie opóźnień sieciowych i retransmisji Wykrywanie anomalii sieciowych: użycie protokołów nie szyfrowanych Riverbed NetExpress NetExpress Korelowanie i deduplikowanie danych ze SPAN oraz Netflow Analiza, analityka, wizualizacja oraz raportowanie Przechwytywanie i przechowywanie pakietów Kolektor Netflow Analiza pakietów Deduplikacja Port Mirroring / SPAN Netflow Netflow – problem duplikacji Kolektor Oddział terenowy Data Center Oddział terenowy Monitorowanie wykorzystania przepustowości na łączach WAN Wykorzystanie przepustowości łącza Monitorowanie ruchu na łączach WAN Monitorowanie klas ruchu na interfejsach WAN Quality of Service Klasa ruchu - znacznik DSCP Monitorowanie aplikacji w środowisku wirtualnym Zastosowanie wirtualnych sond do monitorowania aplikacji w środowisku wirtualnym SPAN ? ESXi Host ? ESXi Host Zastosowanie wirtualnych sond do monitorowania aplikacji w środowisku wirtualnym Zastosowanie wirtualnych sond do monitorowania aplikacji w środowisku wirtualnym SPAN ESXi Host ESXi Host Monitorowanie kodu aplikacji .NET i JAVA AppInternals – monitorowanie kodu aplikacji Analiza kodu .NET, JAVA Monitorowanie wywoływanych klas, metod, zapytań SQL Rejestrowanie wystąpień wyjątków w kodzie źródłowym Wskazywanie miejsca problemu (serwer aplikacji, WEB, SQL) Zbieranie informacji o otwieranych adresach URL Identyfikowanie użytkowników mających problem: login, adres IP Zbieranie podstawowych informacji o wydajności systemu: zajętość pamięci serwera, obciążenie procesorów, operacje dyskowe Monitorowanie operacji wykonywanych na pamięci (Garbage Collection) AppInternals podstawowa architektura Analizy Kolekcja danych Transaction Trace Warehouse Service Management Platform Baza danych Baza danych (Oracle/MS) AppInternals Dynamic Sampling Agent Dynamic Sampling Agent Dynamic Sampling Agent DA Java DA .NET DA SQL DA Java Linux Win Win DA DA DA Dane zbierane przez agentów Szybkie identyfikowanie problemu z wydajnością aplikacji 1. Identyfikowanie kto i w jakiej lokalizacji ma problem z wydajnością aplikacji 2. Przejście do wykresu kropkowego przedstawiającego wszystkie problemy z wydajnością aplikacji dla danej lokalizacji 3. Przejście do konkretnej transakcji i przedstawienie gdzie jest problem 4. Korelowanie transakcji do wykrycia na co problem ma największy wpływ Calls price.jws Transactions that show the issue Does not call price.jws These transactions do not show any sign of the issue Dashboards widok na wszystko “Problemy sieciowe i aplikacyjne są teraz wykrywane i rozwiązywane w ciągu zaledwie kilku minut” Raport z testów na Politechnice Poznańskiej Ruch sieciowy Jakość aplikacji Czasy odpowiedzi serwerów 1 Czasy odpowiedzi serwerów 2 Problemy z siecią 1 Problemy z siecią 2 Problemy z siecią 3 Problemy z siecią 4 Monitorowanie HTTP 1 Monitorowanie HTTP 2 Nieudane połączenia 1 Nieudane połączenia 2 Nieudane połączenia 3 Nieudane połączenia 4 Duża ilość nawiązywanych połączeń przez klienta – skanowanie? Wykrywanie protokołów nieszyfrowanych Rozwiązywanie problemów aplikacji sieciowych – przykłady na żywo Rozwiązywanie problemów aplikacji sieciowych – AppTransaction AppTransaction Xpert gdzie pasuje? AppResponse Xpert Shark Module Packet Analyzer / NetShark AppTransaction Xpert Dostarczenie globalnej widoczności Identyfikacja i lokalizacja anomalii Filtrowanie pojedynczych transakcji Analiza transakcji Zalecenia naprawy AppTransaction Xpert AppDoctor Szczegółowe posumowanie Identyfikowanie „wąskich gardeł” wpływających na wydajność Symulacja optymalizacji WAN QuickPredict Przewidzenie jaki wpływ będzie miała akceleracja WAN • Określenie wielkości redukcji czasów odpowiedzi dla wielu scenariuszy np.: Dla oddziałów w rożnych lokalizacjach Dla oddziałów z rożnymi przepustowościami łącza Czasy transakcji w istniejącej infrastrukturze Te same transakcje z użyciem akceleracji WAN Rozwiązywanie problemów aplikacji sieciowych – Packet Analyzer