Locked History Actions

NfSen programinis paketas

Žodis angliškai

NfSen


NfSen – Netflow Sensor

NfSen yra pagrindinė programa sukurta grafinio tinklo pagrindu ir skirta nfdump NetFlow įrankiams. NfSen programa suteikia šias galimybes:

  • Sukauptų NetFlow duomenų atvaizdavimas naudojant RRD;

  • Lengvas valdymas tarp pateiktų duomenų;
  • Apdoroti duomenis per nustatytą laiką;
  • Sukurti nuolatinius profilius ir jų istoriją;
  • Nustatyti įspėjimus pagal įvairias sąlygas;
  • Parašyti savo įskiepius norimiems patobulinimas.

Skirtingos užduotys reikalaują skirtingų sąsajų su NetFlow duomenimis. NfSen suteikia galimybę naudotis visais komandinės eilutes privalumais tiesiogiai naudojant nfdump ir taip pat atvaizduoja norimus duomenis (1 pav.).

1 pav. NfSen pagrindinis NetFlow duomenų atvaizdavimo puslapis

1 pav. NfSen pagrindinis NetFlow duomenų atvaizdavimo puslapis.

NfSen profiliai

NfSen profilis – tai tam tikro, profilio nustatymuose nustatyto, vaizdo rodymas. Profilis yra apibrėžiamas savo vardu, tipu ir vienu arba keliais filtrais, kurie yra priimami nfdump sistemos. Be vartotojo sukurtų profilių yra ir dar vienas – „live“ profilis, kuris yra naudojamas duomenims kauptis nenaudojant jokių filtrų. Šis profilis yra sukuriamas automatiškai pradėjus naudoti NfSen programą. Galima pasirinkti du profilio tipus: tęstinis ir istorijos. Istorijos profilio matavimai prasideda ir baigiasi praeityje ir išlieka pastovūs. Tęstiniame profilyje matavimai gali prasidėti praeityje tačiau jie yra nuolat atnaujinami. Jie dinamiškai auga ir gali turėti savo nustatytas pasibaigimo vertes. Papildomai šie profiliai gali būti sukurti kaip šešėliniai profiliai, o tai reiškia, kad jie nerinks NetFlow duomenų ir taip išsaugos vietos saugykloje. Šešėliniai profiliai pasiekia „live“ profilio duomenis kai jie yra apdoroti ir pritaiko jiems savo nustatytus filtrus. 2.1 lentelėje pateikiami profiliai su teiginiais, kurie apibūdina profilio veikimo principus.

2.1 lentelė. NfSen programos profilių tipai

Tęstinis

Istorijos

Naudojami NetFlow duomenys

Turi nustatytos baigties vertes

Prasideda ir baigiasi tiksliai nustatytu laiku

Tęstinis/šešėlinis

Istorijos/šešėlinis

Sudėtyje nėra NetFlow duomenų

Baigties vertes nustato „live“ profilis

Prasideda ir baigiasi tiksliai nustatytu laiku

Kiekvienas profilis turi vieną ar daugiau profilio kanalų. Šie kanalai yra apibrėžiami savo kanalo filtru, spalva, ženklu ir kanalo atvaizdavimo grafike tvarka. Kanalas yra sudarytas iš vieno ar daugiau NetFlow duomenų šaltinio „live“ profilyje. Kanalų skaičius yra nepriklausomas nuo NetFlow duomenų šaltinių. Profiliai gali būti konvertuojami tarpusavyje, tačiau ne visi. Konvertavimo galimybės yra pavaizduotos 2.4 paveiksle.

Profilių konvertavimo tarpusavyje galimybės

2.4 pav. Profilių konvertavimo tarpusavyje galimybės

2.4 paveiksle galima pastebėti, kad konvertuojant į šešėlinius profilio tipus yra prarandami NetFlow duomenys, tačiau tęstinis profilio tipas pradeda apdorojimą nuo vietos, kurioje buvo nutrauktas, todėl šis konvertavimas leidžia duomenų išsaugojimą. Konvertuojant profilius tarp tęstinio ir istorinio profilių tipų yra galimybė laikinai sustabdyti duomenų rinkimą arba pratęsti sustabdytą rinkimą.

NfSen įskiepių programėlės

Įskiepių programėlės leidžia išplėsti NfSen veikimą pridedant papildomą funkcionalumą. NfSen programoje yra galimi du įskiepių tipai: posisteminiai įskiepiai ir sąsajos įskiepiai (2.5 pav.).

NfSen programos įskiepių naudojimas

2.5 pav. NfSen programos įskiepių naudojimas

Posisteminiai įskiepiai yra užkraunami į NfSen programos antrinius procesus, kai yra pradedamas programos darbas. Šios rūšies įskiepiai yra skirti naujų funkcijų, tokių kaip periodiškas duomenų apdorojimas, įspėjimų sąlygų ir galimų veiksmų sudarymas, pridėjimui. Posisteminiai įskiepiai yra rašomi Perl programavimo kalba. Tuo tarpu sąsajos įskiepiai yra skirti posisteminių įskiepių rezultatam atvaizduoti naršyklėje naudojant PHP programavimo kalba sukurtus failus. Abu įskiepiai duomenis gali apsikeisti per standartinį NfSen.comm lizdą. Tam, kad posisteminis įskiepis galėtu atlikti komandas, kurias atsiuntė sąsajos įskiepis, šios komandos paprogramės poreikis turi būti užregistruos posisteminiame įskiepyje. Tai yra atlieka kelių komandinių eilučių pagalba:

our %cmd_lookup = ('try' => \&RunProc,);

Yra sukuriamas masyvas, kurio pavadinimas būtinai turi būti „%cmd_lookup“. Kiekvienas raktas nustato komandos pavadinimą reorganizuotą komandų serverio. Pavadinimo reikšmė nurodo jog paprogramė yra iškviečiama, kai ši komanda įvykdoma. Funkcijos įgyvendinančios paprogramę turi sekti pagrindinės programos nurodymus, t.y. turi atitikti tokį standartą:

sub RunProc {my $socket = shift; my $opts = shift;} # End of RunProc

Šiame kodo pavyzdyje yra nustatomi du parametrai: $socket ir $opts. $socket yra rodyklė į dabartinio prisijungimo komunikacijos lizdą, kuri bus perduota kitas funkcijas. $opts yra „hash“ vertė, kurioje yra masyvų ir skaliarų vertės, kurios buvo atsiųstos iš sąsajos įskiepio programos. Sąsajos įskiepio programa gali iškviesti posisteminę įskiepio programą aktyvuodama nfsend_query funkciją:

$out_list = nfsend_query("Pluginname::try", $opts);

Pirmasis funkcijos argumentas nurodo, kuri komanda bus kviečiama. Šis argumento yra sudurtas iš dviejų reikšmių: įskiepio ir komandos pavadinimų, kurie yra atskirti dviem „:“ simboliais. Antrasis argumentas yra „hash“ vertė, kuri perduodama funkcijai. Šiame argumente saugoma vertė turi sutapti ir posisteminėje ir sąsajos programoje. Siunčiant atsakymą atgal iš posisteminės programos į sąsajos programą yra laikomasi tų pačių taisyklių kaip ir atliekant perdavimą iš sąsajos programos į posisteminę programą, t.y. posisteminė programa aktyvuoja dvi funkcijas: Nfcomm::socket_send_error ir Nfcomm::socket_send_ok. Žemiau pateikiami įskiepių pavyzdžiai:

width=50%