Monitoring Serwerów - Forum o monitoringu infrastruktury IT
Zaawansowane wyszukiwanie w Splunku - Printable Version

+- Monitoring Serwerów - Forum o monitoringu infrastruktury IT (https://monitoringserwerow.pl)
+-- Forum: MONITORING INFRASTRUKTURY IT (https://monitoringserwerow.pl/forumdisplay.php?fid=1)
+--- Forum: Splunk (https://monitoringserwerow.pl/forumdisplay.php?fid=15)
+--- Thread: Zaawansowane wyszukiwanie w Splunku (/showthread.php?tid=23)



Zaawansowane wyszukiwanie w Splunku - ArturB - 07-30-2019

KOD: ZAZNACZ CAŁY
Code:
sourcetype=apache2|chart count by http_code

Takim zapytaniem zakończyłem poprzedniego posta - przyznacie że możliwe wizualizacje i prezentacje robią dobre wrażenie.

Dzisiaj omówimy sobie dokładniej zaprezentowaną składnię, nie skupiając się na polach, które zostały omówione tu
https://monitoringserwerow.pl/showthread.php?tid=21

a na funkcjach po operatorze "|", tak aby móc stworzyć taki oto zegar:
[attachment=17]
Zegar przedstawiający procent, odwiedzin na serwerach www, które nie są w statusie 200.


Zdradzając, może nie najlepiej, ale co najmniej edukacyjnie takie zapytanie mogłoby wyglądać tak:
Code:
sourcetype=apache2|eventstats count as "Total"|eventstats count as "Statusy" by http_code|eval percent=(Statusy/Total)*100 |stats sum values(percent) by http_code|search http_code!=200|chart sum(values(percent)) as wartość|gauge wartość


Zaprezentowane kilka funkcji to jedynie mały fragment wszystkich funkcji które podpowiada wyszukiwarka.
[attachment=16]
Inne funkcje podpowiadane przez wyszukiwarkę


I tak kolejno funkcja eventstats dodaje "statystykę" do wyniku - w naszym przypadku użyliśmy funkcję "count" która ma zliczyć wybrane zdarzenia - W pierwszym przypadku wszystkie w drugim zgrupowane przez http_code.
Dostępne funkcje zliczające to między innymi średnia, ilość na godzinę, suma, policzenie rodzajów (np ilości różnych http_code).
Pełna lista poniżej
Quote:
avg() | c() | count() | dc() | distinct_count() | first() | last() | list() | max() | median() | min() | mode() | p<in>() | perc<int>() | per_day() | per_hour() | per_minute() | per_second() | range() | stdev() | stdevp() | sum() | sumsq() | values() | var() | varp() 


Kolejna funkcja która się pojawiła po kolejnym "pajpie" to eval. Jak można się domyślić ma ona na celu wykonanie jakiejś operacji - w naszym przypadku arytmetycznej, która ma określić procentowy udział poszczególnych kodów w wyniku.

Code:
stats sum values(percent) by http_code


Stats doprowadzi nam statystykę którą ma być suma, wg statusu http.
A następnie wykorzystaliśmy domyślną funkcję wyszukiwarki - search aby wyszukać informacje o kodach różnych od 0, chart żeby zsumować informację i gauge żeby wyświetlić wynik. Tylko na pierwszy rzut oka wydaje się to skomplikowane.

ciekawą funkcjonalnością jest jeszcze funkcja rename gdzie w pewnym momencie możemy przetłumaczyć powstałą kolumnę np. sum(count(avg(value))) na wynik
Code:
|rename sum(count(avg(value))) as wynik

[/code]

Mam nadzieję że teraz już każdy widzi dlaczego wyszukiwarkę uważam za najpotężniejsze narzędzie w Splunku - nie tylko na pierwszy rzut oka, ale również na drugi i trzeci ogranicza nas tylko wyobraźnia.

Miłego splankowania.