Splunk - Upravljanje dnevničkim zapisima

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Marija Živičnjak --Marija Živičnjak 08:36, 7. studenog 2015. (CET)

Filip Panđić --Filip Panđić 09:24, 7. studenog 2015. (CET)

Ana Gazdek --Ana Gazdek 11:13, 7. studenog 2015. (CET)


Sadržaj

Uvod

Dnevnički podaci su računalni zapisi u koje se standardiziranim načinima unose podaci koji opisuju zbivanja na računalnim sustavima i mrežama. Sastoje se od dnevničkih unosa (eng. log entry). Upravljanje dnevničkim zapisima je proces stvaranja, prenošenja, pohranjivanja i analiziranja podataka s računala u svrhu računalne sigurnosti. (Izvor: Log management Basics)

Za upravljanje dnevničkim podacima važno je spremanje dovoljne količine podataka kroz određeni duži vremenski period. Osnovni problem s upravljanjem dnevničkim podacima je učinkovito balansiranje ograničenih resursa za tu aktivnost jer se dnevnički podaci stalno stvaraju. Kod stvaranja i pohranjivanja dnevničkih podataka može doći do problema zbog nepostojanosti sadržaja dnevničkih podataka, formata i vremenskih oznaka između različitih izvora dnevničkih podataka.

Dnevnički zapisi s aspekta sigurnosti

Mrežni i računalni resursi poduzeća i organizacija svakodnevno stvaraju velike količine (u GB) dnevničkih podataka iz različitih izvora. Sve te aktivnosti bilježe se u digitalnom dnevničkom zapisu. Primjer toga može biti nezadovoljni zaposlenik poduzeća. Ako pokuša ukrasti povjerljive podatke, o tome postoji dnevnički zapis koji sadrži korisničko ime zlonamjernog zaposlenika, IP adresu s koje je pristupio resursu kao i točno vrijeme pristupa.

Također, s aspekta sigurnosti mogu se spriječiti štetne aktivnosti ako administrator na vrijeme identificira sigurnosne prijetnje, kršenje sigurnosnih politika tvrtke, izmjenu datoteka, zaobilaženje korisničkih ograničenja. U nekim zemljama koristenje dnevničkih zapisa se zakonski regulira. Kao primjer možemo uzeti SAD u kojem postoji nekoliko je zakona kao savezni zakon o upravljanju informacijskom sigurnošću (eng. Federal Information Security Management Act of 2002, FISMA) ili zakon o prenosivosti zdravstvenog osiguranja (eng. Healt Insurance Portability and Accountability Act of 1996, HIPPA) koji obvezuju federalne i zdravstvene organizacije da koriste dnevničke zapise u svrhu računalne sigurnosti.

Vrste dnevničkih zapisa

Postoje tri vrste dnevničkih zapisa:

*Dnevnički zapisi sigurnosnih programa
*Dnevnički zapisi operacijskih sustava
*Mrežni dnevnički zapisi

Dnevnički zapisi sigurnosnih programa

Dnevničke zapise sigurnosnih programa organizacije koriste za otkrivanje zlonamjernih aktivnosti, zaštitu podataka i sanaciju štete uzrokovane zlonamjernim djelovanjem korisnika. Primjeri programa su:


Dnevnički zapisi operacijskih sustava

Ova vrsta dnevničkih zapisa služi za identifikaciju ili istraživanje sumnjivih aktivnosti host računala. Kao primjer možemo uzeti mrežni uređaj koji može otkriti napad na host računalo. Pritom opreacijski sustav bilježi korisnika koji je tada bio prijavljen na računalo i otkriva krivca za napad. Primjeri zapisa su:

Operacijski sustav Windows zapis sprema u formatu zatvorenog koda, a većina ostalih operacijskih sustava bilježi dnevničke zapise u syslog formatu.


Mrežni dnevnički zapisi

Opisuju podatke koji se šalju i primaju preko mreže te se mogu koristiti za praćenje cjelokupne mrežne infrastrukture organizacije. Oni nisu ograničeni isključivo na jedno računalo već izvještavaju administratore o aktivnostima na čitavoj mreži. Aktivnosti koje prate su veze među računalima, protokole koji su korišteni za prijenos, izvori i destinacije poruka, vrijeme kada su poruke poslane, vrste poruka, duljinu poruke. Zapisi ne daju informaciju o korisniku koji je koristio mrežnu vezu nego podatke o vezama. Primjer alata za generiranje mrežnih dnevničkih zapisa je Wireshark. Dijelovi te vrste dnevničkog zapisa: vrste protokola, izvorišni priključak (source port) i odredišni priključak (destination port).

Alati za dnevničke zapise - Splunk

Uspješne tvrtke znaju da pravilno podešavanje i nadgledanje podataka može igrati značajnu ulogu u identificiranju problema kada se dogodi, zato prilikom odabira alata prolaze kroz sve uvjete i scenarije.

S obzirom da je prikupljanje sistemskih logova u okružjima velikih tvrtki izrazito zahtjevno, gdje su količine tih podataka veoma velike, važno je pronaći smisao i pojavu onih problema zbog kojih i nadgledamo rad sustava, i tu do izražaja dolazi kvaliteta alata. Neki od uvjeta pri odabiru alata koje trebaju uzeti u obzir su sljedeći: pouzdanost, dostupnost podrške (u slučaju da dođe do situacije u kojoj niste dovoljno iskusni), da li je dostupno praćenje podataka koji su vama potrebni, koliko brzo vam je potreban program (zbog kompleksnosti podešavanja), sistem uočavanja i obavještavanja pogrešaka, kvaliteta pretraživača i cijena. Većina sys admina u svoje preporuke uvrštava Spunk. U svojoj besplatnoj/pristupačnijoj verziji, poznatijoj kao Splunk Lite, alat je dosta ograničen i postoji veliki broj alternativnih alata koji obavljaju bolji posao, koje ćemo naravno spomenuti u nastavku. Međutim, ono što ga izdvaja od konkurencije su mogućnosti koje dolaze u punoj verziji.

U teoriji, Splunk je vodeća platforma za praćenje podataka u realnom vremenu, nakon čega se kreiraju razni interaktivni grafovi, tablice, izvještaji, napredne statističke pretrage, upozorenja i druge stvari kako bi se smanjilo vrijeme potrebno za poduzimanje akcija nad IT podacima. Glavna misija programa je kreiranje računalnih podataka dostupnih cijeloj organizaciji. Podaci servera, aplikacija i raznih mrežnih uređaja prikupljaju se i indeksiraju, omogućujući centraliziranu analizu milijuna transakcija i događaja koji se odvijaju u radu nekog informacijskog sustava. Glavna svrha alata je nadgledanje, uzbunjivanje i izvješćivanje pogrešaka u sustavu. Jedna od prednosti alata je što može prikupiti podatke iz bilo kojeg IT izvora, bez potrebe za korištenjem baza podataka, skupih konektora te posebnih konzola za interpretaciju. Primjerice, moguće je pratiti rad cijelog sustava ili svih servera i u realnom vremenu pratiti promjene.

Neke od komponenti informacijskog sustava u kojima se koristi Splunk su sljedeće: • mrežni uređaji (usmjerivači, vatrozidi, IDS/IPS sustavi) • operacijski sustavi (Windows, Linux/Unix, HP-UX, AIX, Tandem i sl.) • baze podataka (Oracle, MS SQL, DB2 i sl.) • poslovne aplikacije (autorizacijski sustavi, back-office, središnje bankarske aplikacije, e-commerce itd.).

S obzirom da mora analizirati milijune transakcija, alat ujedno zaprimljene logove kompresira, kako bi podaci bili lakše i brže dostupni, a samim time koristili i manje skladišnog prostora. Osim što kompresira podatke, korisnici odabiru dulji ili kraći vremenski period kako bi što brže našli anomalije, a uklanjanje nepotrebnih informacija je lako omogućeno s obzirom da alat automatski prepoznaje i izdvaja bitne informacije. Da se radi o ozbiljnom alatu govori i činjenica da Splunk kao tvrtka ima preko 1700 zaposlenika, koji osim što unaprijeđuju alat, pomažu drugima u podešavanju alata vlastitim potrebama.

Trenutno, Splunk dolazi u tri verzije – Splunk Enterprise, Splunk Cloud i Splunk Light, koji je dostupan i u Cloud verziji.


Splunk Enterprise

Splunk Enterprise je puna verzija alata koja prikuplja, analizira te reagira u slučaju pogrešaka unutar organizacije, davajući uvid u podatke koji su potrebni za dobre performanse tvrtke. Cijena je određena količinom nekompresiranih indeksiranih podataka izraženih u GB/danu, a primjera radi 1 GB podataka po danu mjesečno košta u ovom trenutku $5.175 ili 36.000 kn, dok 100 GB/danu košta $1.725 ili 12.000 kn.

Glavne funkcije alata su sljedeće: • prikupljanje i indeksiranje podataka • pretraživanje i istraživanje • povezati i analizirati • vizualiziranje i izvješćivanje • praćenje i upozoravanje • pristup i s mobilnog uređaja (Android i iOS)


Splunk Cloud

Splunk Cloud donosi sve funkcije Splunk Enterprise samo kao cloud rješenje. Cijena je određena jednako, a indeksiranih podaci se čuvaju 90 dana uz mogućnost produživanja. 5 GB podataka po danu mjesečno stoji približno $1.900 ili 13.000 kn. Također se garantira 100% up-time SLA vrijeme. SLA označuje minimalni nivo usluge, što je u ovom slučaju 100.


Splunk Light

Splunk Light je namijenjen za mala IT okruženja za pretraživanje dnevničkih zapisa i njihovu analizu. Cijena je određena količinom nekompresiranih indeksiranih podataka izraženih u GB/danu, koja je za razliku od Enterprise paketa dosta povoljnija te iznosi $2,070 ili 15,000kn za 1 GB/danu mjesečno. Treba napomenuti kako je besplatna verzija dostupna u kojoj je moguće imati 500 MB podataka po danu. Prednost je brza instalacija i laka kontrola podataka.

Glavne funkcije alata su sljedeće: • prikupljanje i indeksiranje dnevničkih zapisa • pretraživanje i istraživanje • povezati i analizirati • vizualiziranje i izvješćivanje • praćenje i upozoravanje.


Osim osnovnih proizvoda, Splunk je dostupan i u tzv. Premium paketima. Prednost Premium paketa je specijalno podešavanje alata poslovanju organizacije. • Splunk Enterprise Security • Splunk IT Service Intelligence • Splunk User Behavior Analytics.

Alternativni alati za dnevničke zapise

Najveći konkurent Splunku je GrayLog, a od ostalih alata možemo spomenuti Fluentd, Logstash, Kibana i Elasticsearch.

GrayLog je besplatan open-source alat koji je razvijan kako bi zamijenio upravo Splunk. Sama funkcija alata je ista, ali kako je open-source, Graylog koristi neke vanjske alate poput MongoDB za metapodatke te Elasticsearch za pretraživanje i spremanje podataka. Osim prikupljanja i čitanja log podataka ujedno nudi opciju naprednije analize podataka, postavljanje monitoringa, generiranje izvještaja o podacima i drugo.

Praktični dio

Splunk je programski alat za centralizirano upravljanje IT podacima. On može prikupiti i indeksirati velike količine podataka u realnom vremenu (odnosno u definiranom duljem ili kraćem zadanom periodu promatranja). Izvori prikupljanja mogu biti serveri, aplikacije, direktoriji i datoteke, mrežni uređaji i drugi IT izvori. Nad prikupljenim podacima omogućava trenutni pregled, analizu prema određenim parametrima, interpretaciju dobivenih rezultata, automatsko generiranje izvještaja i slanje obavijesti. Postoje i brojne druge mogućnosti primjene alata poput koreliranja događaja iz različitih izvora, čime se nastoji pratiti povezanost različitih tipova događaja iz različitih izvora prema postavljenim zahtjevima. Osim što se zapisi nakon pretraživanja i analiziranja mogu vizualizirati i spremiti kao izvještaji, u obliku dashboarda, upozorenja ili kao vrsta događaja u sustavu, Splunk pruža mogućnost izgradnje baze znanja. Na taj način, nadgledanjem sustava, može se bilježiti učestalost pojave određenih problema nakon ili tijekom njihova nastanka i na vrijeme otkriti i spriječiti funkcionalni, sigurnosni i drugi problemi. Splunk je alat koji se sastoji od aplikacija i ekstenzija. Svaki Splunk dolazi za predinstaliranom aplikacijom Search & Reporting. Preko te ekstenzije se rade pretrage nad indeksima i skupinama podataka, što je i osnova korištenja. (Moguće je kreirati indeks na kojeg se dodaju podaci i nad kojim se vrše pretrage. Primjerice ako posjedujemo 3 datoteke koje pridružimo određenom indeksu, unutar tog indeksa bit će vidljivi pridruženi podaci koji se tada mogu pretraživati).


Splunk1.jpg


Unutar izbornika koji je pozicioniran s lijeve strane, nalaze se svi prečaci za pokretanje ekstenzija. Popis ekstenzija se može otvoriti pritiskom na + gumb. Ekstenzije su raznolike - od ekstenzija za pristup bazi pa do pregledavanja posebnih logova. Jednom dodane, omogućene su za korištenje.


U donjem segmentu Splunka prikazuje se nadzorna ploča. Nadzorna ploča (eng. dashboard) je obično tablični ili grafički prikaz stanja nekog seta podataka. Korisnici mogu definirati svoje dashboardove i prikačiti ih na početnu stranicu kako bi bili lako dostupni za pregled.


U gornjem segmentu Explore Splunk Enterprise, koji se nalazi u svakom Splunk paketu, postavljeni su prečaci do korisnih stvari: tutoriala, dodavanja podataka itd.


Splunk2.jpg


Jedan od važnijih dijelova Splunka je dodavanje podataka nad kojima će Splunk raditi. Postoje 3 načina na koje Splunk može doći do izvora podataka.

Prvi je dakle klasični upload file preko kojega se uzme neka datoteka s diska računala i postavi se na Splunk. U tom trenu Splunk obradi sadržaj datoteke pa se nad njom mogu raditi pretraživanja i izvlačenje potrebnih podataka (ukoliko isti prethodno nisu dobro konfigurirani).

Drugi način za dobivanje izvora podataka je taj da se Splunku dodijeli neki set podataka koji će se pratiti. Pritom postoji više različitih setova podataka preko kojih Splunk može uzimati podatke. Ti setovi mogu varirati od Windows Registriy-a, direktorija, datoteka do rada komponente na računalu.

Treći način za dobivanje izvora podataka je postavljanje forwarda podataka s nekog od Splunk klijenata na Splunk server. Kako bi se navedeno postiglo, potrebno je instalirati dodatni alat koji se naziva Universal forwarder. Taj forwarder se instalira na klijente i servere. Na klijentima je potrebno podesiti adresu odredišnog servera koji će tijekom rada indeksirati podatke koji su dobiveni s nekog od klijenata. U principu, klijenti šalju podatke koje onda server obradi. Podaci mogu biti poslani preko TCP-a ili UDP-a, datoteka itd.


Prethodno je opisano da Splunk može prikupljati podatke iz različitih setova podataka. Pritom treba napomenuti da se dodavanjem ekstenzija, koje su prethodno opisane, u listi za odabir izvora podataka mogu pronaći još neki elementi nastali kao posljedica dodavanja ekstenzija. U narednom dijelu će se opisati neki od izvora podataka.

Splunk podatke iz izvora podataka može pregledavati ciklički (slati zahtjeve za pregledom u određenom intervalu), jednom ili na zahtjev korisnika.


Splunk4.jpg


Files and Directories – čini skup podataka koji dolaze iz nekog direktorija ili datoteke na disku. Prilikom učitavanja datoteka, Splunk pita na koji način želimo da se podaci vade. Definira se source type koji se može kasnije koristiti za otvaranje istog skupa datoteka. Nakon toga se mogu definirati regularni izrazi ili delimiteri pomoću kojih se vade podaci. Na koncu se otvara prozor Search ekstenzije čiji upit zapravo pretražuje zadani set podataka. Svako pretraživanje ide na datoteku(e) i ponovno je pretvara u set podataka prema predefiniranim opcijama.


Splunk5.jpg


Splunk ima i ugrađen servis preko kojeg može primati podatke. Jedino što je potrebno je definirati naziv na koji će se priključiti klijent koji šalje podatke. Podaci se mogu slati s više klijenata i potom obrađivati na isti način kao što se obrađuju podaci iz datoteka.

Za potrebe slanja podataka na servis postoje SDK (Software development kit) paketi za Javu i C# programske jezike koji olakšavaju navedeni proces. Primjer slanja podataka može biti skup računala s različitim korisnicima. Prilikom prijave na računalo, aplikacija na računalo okida proces slanja podataka na Splunk u kojima piše koji se korisnik prijavio. Ti podaci se zatim mogu obrađivati po volji.


Splunk6.jpg


Preko Splunka se može pregledavati promet između TCP-a i UDP-a. Ukoliko postoji chat aplikacija ili nešto slično između dva računala, možemo pratiti podatke ukoliko je poznat port.


Splunk7.jpg


Splunk omogućuje i pregledavanje podataka o prometu na mreži. U tu svrhu daje se ime pregleda, tipovi paketa, protokol i putanja zahtjeva koji se žele pratiti. Moguće je specificirati adrese prema kojima i od kojih se prati promet, za koji proces i kojeg korisnika. Primjer uporabe ovog je pregled zahtjeva na neku web stranicu (npr. Facebook). Kad god korisnik navigira na željenu stranicu Splunk će zabilježiti zahtjev, te se tako pratiti koliko je zahtjeva prema danoj stranici imao korisnik. Ovo je veoma korisno ukoliko je korisnicima zabranjeno posjećivanje takvih stranica. Drugi primjer je praćenje prometa korisnika na način da se prate sve stranice te da se pritom zaključi koje stranice korisnik posjećuje najčešće. Više ovakvih računala mogu forwardati svoj promet na Splunk server koji će onda predstaviti najposjećenije stranice neke grupe korisnika.


Splunk8.jpg


Splunk može okidati i skripte, te pregledavati izlazne podatke skripti. Ukoliko se radi primjerice o Windows operativnom sustavu, moguće je pokrenuti neku powershell skriptu koja skuplja neke podatke i vraća ih natrag. Splunk uzima te podatke i onda ih obrađuje po želji.


Splunk10.jpg


Splunk može pristupati i bazama podataka. Za kraj će se prikazati ekstenzija koja omogućuje Splunku da pregledava ili piše po bazama. Jednom kad se doda Splunk DB connect ekstenzija, ove opcije postaju dostupne. Potrebno je definirati server na kojem se baza nalazi, putanje, korisnika i upite koji će se koristiti. Lookup i input generiraju izlazne podatke na način da izvrše sql upit i vrate podatke. Povratni podaci se prosljeđuju Splunku koji ih onda vizualizira ili mijenja po željama. Output daje mogućnost Splunku da generirane podatke zapiše u neku bazu podataka.

Primjeri

Pregled datoteke

U svrhu primjera navest ćemo neke načine pregleda i prikupljanja podataka koji se nude u Splunku. Pri tome će se prikazati izvori podataka koji se odnose na web servis, bazu podataka te tekstualnu datoteku. Prilikom rada s bazom će se prikazati i funkcioniranje ekstenzija Splunk-a.

Na početku ćemo kreirati i indeks unutar kojeg ćemo prikupljati podatke sa svih naših izvora.


Splunk10.png


Primjer koji ćemo opisati kroz projekt je da imamo aplikaciju koja piše u bazu, tekst datoteku, i web servis „pogreške sustava“ te ih mi kroz Splunk monitoriramo.

U prethodno opisanim dijelovima naveli smo da postoji mogućnost čitanja i pregleda datoteka. U našem primjeru pretpostavit ćemo da se dio grešaka nalazi u tekstualnoj datoteci te ćemo ih pregledavati preko Splunk-a.

Nakon odabira putanje do datoteke, Splunk pita koju smo vrstu izvora pružili. Postoji lista predefiniranih, ali mi smo uzeli predefiniranu.


Splunk11.png


Uz opcije, prikazane na slici, prikazuje se dio sadržaja datoteke. Iz tog sadržaja datoteke potrebno je odabrati one vrijednosti koje će se monitorirati. Nakon što smo odabrali tip izvora (ili ga definirali ako ne postoji), potrebno je samo odrediti indeks nad kojim će se podaci prikupljati. Moramo biti sigurni da smo označili indeks koji smo prethodno napravili.


Splunk12.png


Nakon definiranja, dolazimo do faze kada možemo pregledati izvor. Ali, prije toga trebamo odrediti polja koja će se vaditi iz datoteke.


Splunk13.png


Odabirom izdvajanja dijela datoteke kao potrebnog polja, Splunk daje mogućnost označavanja dijela datoteke preko kojeg će on onda kreirati regularni izraz koji će vaditi te podatke. Plavi dio se puni odabirom na jedan od _raw elemenata.


Splunk14.png


U idućem koraku nudi se mogućnost odabira delimitera ili regularnog izraza za razdvajanje polja u podatke koji su potrebni. Regularni izrazi su primjerice jako korisni ukoliko postoje datoteke koje su specifično kreirane od strane naših aplikacija, te se tada pomoću njih iz hrpe podataka mogu izdvojiti podaci koji su nam potrebni.


Splunk15.png


Označimo li neko polje i odaberemo li Extract opciju Splunk će za nas stvoriti regularni izraz kojim će izvući podatke. Pri dnu - unutar tablice, zelenom bojom su označeni svi dijelovi koji spadaju pod izraz, a kolona ValueField predstavlja transformaciju teksta iz kolone _raw. U ovom slučaju je to jednostavno, ali u nekim slučajevima ovo je jedini način da se vidi jesu li se uzeli točni podaci.

Idući dio daje korisniku na pravo da validira svoje odabire tako da opet pokaže sva polja koja će ući među podatke za monitoriranje. Na kraju se samo daje naziv načinu izvlačenja podataka koji će imati vezu s odabranim regularnim izrazom.

Nakon odabira svega, prelazimo u pregled nad kojim se pretražuje.


Splunk16.png


Kako bi ovaj dio lakše opisali, prikazat ćemo dijelove ekrana i opisati namjenu. Dio pod brojem 1 je traka pretraživača, unutar kojeg se mogu pretraživati svi skupovi podataka koji postoje u Splunk-u. Primjerice tekt index=* sourcetype=TekstualnaDatoteka, kaže da za bilo koji indeks koji ima sourcetype TekstualnaDatoteka prikaže sve podatke koje dolaze iz danog izvora. Kroz traku pretraživanja se mogu raditi i filtiranja kroz „pipelining“. Primjerice, ukoliko želimo naći koja nam se greška najčešće zavela u datoteci, u traku upišemo index=* sourcetype=TekstualnaDatoteka | top ValueField | head 1, gdje top poreda po veličini odabrano polje, a head 1 prikaže samo prvo polje iz rješenja.

Možemo zaključiti da nam pretraživačka traka pruža pristup i kontrolu nad svim podacima koje Splunk skuplja.

Dio pod brojem 2 prikazuje polja koja Splunk može promatrati. Splunk automatski preuzme polja koja mu se čina zanimljiva te isto tako predlaže i polja koja može izvući, a smatra ih zanimljivima. U ovom slučaju mi smo samo htjeli prikazati ValueField polje koje smo izvukli u prethodno opisanom postupku.

Dio 3 prikazuje vrijednost iz datoteke za izvučenim poljem sa mogućnošću prikaza dodatnih informacija.

Dio 4 nam daje opcije kreiranja tablica i vizualizacija koje možemo postaviti kao početni panel na aplikaciji. Ukoliko odaberemo vizualisation i na njemu opciju pivot moguće je kreirati dijagrame. U ovom primjeru ćemo kreirati histogram prema podacima koji su izvučeni iz datoteke.


Splunk17.png


Iz lijevog izbornika odaberemo samo da nam se na x osi prikažu vrijednosti ValueField, a na y osi broj ponavljanja za svaku.

Ukoliko želimo ovo spremiti kao panel, odaberemo save as -> dashboard.


Splunk18.png


U okvir se popune potrebni podaci te se panel pohrani. U idućem prozoru koji se otvori stisnemo na edit i kliknemo na set as home dashboard.

Otvori li se tada početa stranica Splunk alata, pojaviti će se panel s odabranim podacima.


Splunk19.png

Prikupljanje pomoću servisa

U tu svrhu smo koristili c# aplikaciju koja je koristila Splunk SDK (Software development kit) kojim se olakšava povezivanje na server. Servis omogućuje primjerice spajanje velikog broja klijenata na servis koji postavljaju poruke. Za početak je potrebno prikupljaču (servisu) dati ime:

Servis1.jpg

Zatim je potrebno postaviti indeks nad kojim radi prikupljač:

Servis2.jpg

I pokrenuti ga. Iza toga je potrebno pokrenuti aplikaciju da šalje podatke. Na početku će pretraživač biti prazan:

Servis3.jpg

Nakon nekog vremena početi će se prikazivati rezultati ukoliko se opet pokrene pretraga. Iz rezultata opet treba izvaditi potrebne podatke, kako bi se ispravno koristili u Splunk-u. Kreiranje polja rezultira prikazom podataka koji se šalju u poruci:

Servis4.jpg

Kod koji šalje podatke na servis je sljedeći:


           ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
           ServicePointManager.ServerCertificateValidationCallback += (sender1, certificate, chain, sslPolicyErrors) =>
           {
               return true;
           };
           var service = new Service(new Uri("https://localhost:8089"));
           await service.LogOnAsync("admin", "password1");
           
           var index = await service.Indexes.GetAsync("projektniindex");
          
           using (var response = service.Context.PostAsync(index.Namespace, new ResourceName(index.ResourceName, "enable")))
           {
               await response;
           }
           ITransmitter transmitter = service.Transmitter;         
           var error = GetError();//metoda koja dohvaća random poruku
           var t =await transmitter.SendAsync(error, "projektniindex", new TransmitterArgs() { Source="TestniCollector"});


Kod radi na način da se postavi endpoint servisa na kojeg se korsinik spaja, u ovom slučaju admin. Nakon toga se dohvaća indeks koji je kreiran još na početku projekta, te se uspostavlja veza koja omogućuje slanje podataka na taj indeks. SendAsync šalje na određeni indeks poruku koju smo zadali, dok TransmitterArgs definira naziv izvora u koji će se podaci zapisati. Na koncu ukoliko u pretraživač postavimo upit: index=projektniindex sourcetype=unknown-too_small OR sourcetype=TekstualnaDatoteka OR sourcetype = sfsd dobit ćemo podatke iz baze, datoteke i servisa na jednom mjestu, organizirane prema našoj želji. Iz toga se opet može kreirati panel koji će prikazivati zajedničke podatke.

Baza podataka

Sljedeći primjer je izvor podataka u Splunk-u preko baze podataka. Za ovaj primjer korištena je ekstenzija Splunk db connect v2, koja omogućava jednostavno spajanje na baze i izvršavanje upita. Ta ekstenzija se sastoji od dva dijela – jedan koji opisuje identitete koji se spajaju na bazu, te drugi opisuje konekcije.


Slika20.jpg


Identitet se sastoji nazva, korisničkog imena i lozinke za spajanje na bazu te konekcija za danog korisnika. Kreiranje konekcije je zapravo veoma jednostavno, potrebno je dati naziv, ime aplikacije koja se spaja te informacije o adresi baze. Prije svega, potrebno je imati odgovarajuće java drivere kako bi se Splunk mogao spojiti na bazu ispravno. Također, vidljiva je upotreba identiteta za spajanje na bazu.


Slika21.jpg


Iznad ove forme se nalazi gumb koji vodi na query prozor. Taj query prozor nam daje mogućnost da napišemo upit koji ćemo izvršavati nad bazom kako bi dobili potrebne informacije. Kako bi podaci bili isti kao i kod upravljanja datotekom, kreirat ćemo upit koji stvara isti set podataka. SELECT ErrorType,count(*) as ValueField FROM "SplunkExample"."dbo"."ErrorTable" group by ErrorType. Izvršavajući taj upit dobivamo povratne podatke:


Slika22.jpg


Ovaj upit se potom može spremiti kao database input (u izborniku save as). Tada se stvori čarobnjak koji kroz 4 koraka kreira database input iz danih informacija. Kroz čarobnjak se opet unese sql koji se treba izvršiti, te će Splunk opet prikazati rezultate kako bi se uvjerili da oni jesu točni. Nadalje potrebno je odabrati koliko učestalo će se upit izvršavati i na koji način će tretirati nove kolone. On to može raditi po vremenu ili nekoj koloni u bazi koja stalno raste.


Slika23.jpg

Nakon što smo definirali i indeks u zadnjem koraku na koji se upit veže, moguće je provjeriti rezultate klikom na find events. U tom slučaju se opet otvara prozor sa trakom tražilice te prikazuje rezultate.


Slika24.jpg


Selected fields označimo dva polja koja nas zanimaju, error type te value field i imamo isti set podataka kao i u primjeru s datotekom. Ukoliko u pretraživanje postavimo upit index=projektniindex sourcetype=sfsd OR sourcetype=TekstualnaDatoteka dobiti ćemo sve rezultate koji će biti grupirani.


S ovim završava priča o različitim mogućnostima dohvata podatka, a da ih pritom možemo spojiti u jedan izvor.


Literatura

[1] Splunk: http://www.infigo.hr/splunk-s85

[2] Splunk: http://www.splunk.com

[3] Log management basics: http://www.csoonline.com/article/2126060/network-security/log-management-basics.html

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima