Piszki Lab

Analiza przypadku w języku przodków…

Konfiguracja VMware Log Insight BIG-IP F5 Management Pack

| 0 comments

Całkiem niedawno pojawił się BIG-IP F5 Management Pack dla VMware Log Insight, moduł ten może dać wgląd w ruch na serwerach VIP osobom (Administratorom) które normalnie nie mają dostępu do interfejsu BIG-IP. Jak wiemy BIG-IP zawiera w sobie moduł analityczny Application Visibility and Reporting (AVR), moduł ten zbiera wszystkie potrzebne dane statystyczne i jest on wymagany przy wysyłaniu informacji do Log Insight. Informacje w Dashboardzie są pogrupowane następująco:

big0

Widok ogólny pokazuje błędy w dostępie do BIG-IP, błędy procesu tmm i inne (przeważnie jest pusty). Następny jest widok ogólny statusu poszczególnych członków puli. Jest to bardzo ciekawa informacja której wprost nie uzyskamy z AVR. Często wypadnięcie członka z puli może oznaczać problemy sieciowe lub z samym serwerem i warto im się przyjrzeć bliżej.

big13

Kolejnym ciekawym widokiem jest Web Access – Traffic By Request. Ten widok pozwoli wyłapać najbardziej obciążonych członków puli oraz sprawdzić który z VIP jest najbardziej “gadatliwy”. Dodatkowo możemy sprawdzić który z klientów w danym czasie wykonał najwięcej zapytań, w trybie “Interactive Analytics” możemy dokładnie sprawdzić jakie pliki były pobierane.

big3

W widoku Web Access – Traffic By Response Time możemy sprawdzić czasy odpowiedzi w podziale na serwer, aplikacje, klienta i wielkość odpowiedzi.

big1

Przy każdej informacji możemy przechodzić w tryb analizy i sprawdzać co dokładnie działo się w danym czasie z wybranym obiektem.

big2

Pozostałe widoki to statystyka modułu AVR oraz statystyka DNS i widok operacji na serwerze DNS. Niestety nie posiadam aktywnego modułu GTM więc nie pokażę tych informacji tutaj.  Mi osobiście najbardziej brakuje informacji statystycznych z ASM, mam nadzieję, że w kolejnych wersjach Management Pack pojawią się też Dashboardy pokazujące ataki na poszczególne VIP. Instalacja BIG-IP F5 Management Pack po stronie VMware Log Insight jest standardowa i nie wymaga dodatkowej konfiguracji. Po stronie BIG-IP musimy spełnić szereg warunków i wykonać kilka kroków. Zaczynamy od stworzenia puli której członkiem jest Log Insight:

big8

Jeżeli używamy klastra Log Insight to powinniśmy podać adres IP wspólny dla całego klastra.

big9

Następnie w sekcji System—>Logs—>Configuration—>Remote Logging dodajemy Log Insight jako serwer syslog.

big4

W Log Destination tworzymy dwie konfiguracje, jedna to Remote HSL (High Speed Logging) wskazująca na pulę którą stworzyliśmy wcześniej.

big5

Druga to standardowy syslog ze wskazaniem na stworzyny przez nas HSL.

big6

Następnie tworzymy nowy Log Publisher który będzie wysyłał logi na stworzony przez nas Log Destination (syslog).

big7

Wysyłanie logów z VIP nie odbywa się globalnie, dla każdego serwera który nas interesuje musimy stworzyć oddzielną konfigurację. Jak już wspomniałem, moduł AVR jest wymagany, zaczynamy zatem od stworzenia (lub skonfigurowania istniejącego) profilu analitycznego. W profilu tym musimy zaznaczyć Logging Type jako External i wybrać stworzony przez nas Publisher. Profil podpinamy pod interesujący nas Virtual Server.

big10

To nie koniec konfiguracji, wraz z BIG-IP Management Pack dostarczana jest iRule którą musimy podpiąć pod Virtual Server. Wbrew temu co piszą w dokumentacji, nazwa iRule i nazwa puli oraz noda mogą być dowolne, ważne aby w iRule była podana prawidłowa nazwa puli. iRule wygląda tak:

# =============================
# iRule: logInsight_iRule_http START
# ==============================

when CLIENT_ACCEPTED {
    set client [IP::client_addr] 
    set client_req_start_time [clock clicks -milliseconds] 
}

when SERVER_CONNECTED
{
     set server_req_start_time [clock clicks -milliseconds]    
}

when HTTP_REQUEST_SEND
{
    set http_req_send_start_time [clock clicks -milliseconds]
    set node_elapsed_time [expr {$http_req_send_start_time - $server_req_start_time}]
    
}

when HTTP_REQUEST {
   
    set client_latency [expr {[clock clicks -milliseconds] -  $client_req_start_time} ]
    set vhost [HTTP::host]:[TCP::local_port]
    set url [HTTP::uri]
    set method [HTTP::method]
    set http_version [HTTP::version]
    set user_agent [HTTP::header "User-Agent"]
    set tcp_start_time [clock clicks -milliseconds]
    set req_start_time [clock format [clock seconds] -format "%Y/%m/%d %H:%M:%S"]
    set req_elapsed_time 0
    set virtual_server [LB::server]

    if { [HTTP::header Content-Length] > 0 } then {
        set req_length [HTTP::header "Content-Length"]
        if {$req_length > 4000000} then {
            set req_length 4000000
        }
        HTTP::collect $req_length
    } else {
        set req_length 0
    }

    if { [HTTP::header "Referer"] ne "" } then {
        set referer [HTTP::header "Referer"]
    } else {
        set referer -
    }
}


when HTTP_RESPONSE {

    set hsl [HSL::open -proto TCP -pool Syslog-LogInsight]
    set resp_start_time [clock format [clock seconds] -format "%Y/%m/%d %H:%M:%S"]
    set node [IP::server_addr]:[TCP::server_port]
    set status [HTTP::status]
   set req_elapsed_time [expr {[clock clicks -milliseconds] - $tcp_start_time}]
    set server_latency [expr {[clock clicks -milliseconds] -  $server_req_start_time} ]
    
    if { [HTTP::header Content-Length] > 0 } then {
        set response_length [HTTP::header "Content-Length"]
    } else {
        set response_length 0
    }

   HSL::send $hsl "<190>f5_web_access_info|$vhost|$virtual_server|$client|$method|\"$url\"|HTTP/$http_version|$req_start_time|$req_length|$req_elapsed_time|$node|$status|$resp_start_time|$response_length|$user_agent|$client_latency|$server_latency|\"$referer\"\r\n"
}

 

W moim przypadku nazwałem ją SendToLogInsight i podpiąłem ją po interesujący mnie serwer.

big12

big11

Jeżeli dysponujemy wszystkimi potrzebnymi komponentami to warto zainstalować i skonfigurować cały zestaw. Dostarcza on naprawdę ciekawych informacji i możliwości ich analizy, skorzystają z niego tak  Administratorzy BIG-IP jak i VMware lub Ci którzy są odpowiedzialni za poszczególne aplikacje.

Oceń ten artykuł:
[Total: 0 Average: 0]

Dodaj komentarz

Required fields are marked *.