Monitorowanie aplikacji i rozwiązywanie problemów 21 Maj 2015, Poznań Adrian TUROWSKI adrian.turowski@passus.com.pl
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 Oddział terenowy WAN SPAN 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 wydajnościowe Wszystkie aplikacje Analiza strumieni aplikacji TCP Aplikacje WWW Analiza transakcji WWW Wszystkie aplikacje Moduł NetShark* Dane aplikacyjne (pakiety i przepływy) Citrix XenApp Bazy danych SQL Moduł CX- Tracer* Moduł baz danych* Statystyki wydajnościowe i archiwum pakietów Połączenia VoIP i wideo Moduł VoIP i wideo* * Moduły opcjonalne
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 Analiza pakietów Kolektor Netflow 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 Transaction Trace Warehouse Baza danych Service Management Platform Baza danych (Oracle/MS) AppInternals Kolekcja danych Dynamic Sampling Agent Dynamic Sampling Agent Dynamic Sampling Agent DA Java DA.NET DA SQL DA Java Linux DA Win DA Win 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 Does not call price.jws Transactions that show the issue 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