Kapitola 8. Účtování

Obsah
8.1. Aktuální síťový provoz
8.2. Archiv síťového provozu

Pokud má uživatel v administrační části nastavena přístupová práva pro zobrazování grafů na vybraných síťových rozhraních, zobrazí se mu ve Webisu další položka Účtování v horní nabídkové liště. V tabulce nalevo je vidět seznam sítí, u kterých má uživatel povoleno sledovat grafy.

Obrázek 8-1. Náhled záložky Účtování

Ve výběrovém menu zcela nalevo jsou dispozici dva druhy grafů: archiv síťového provozu zobrazuje dlouhodobé statistiky přenosových rychlostí a objemu přenesených dat, aktuální síťový provoz zachycuje krátkodobé, ale mnohem přesnější informace o přenesených datech na síti v závislosti na prostředcích sítě, tedy na IP adresách, síťových portech a přenosových protokolech.

8.1. Aktuální síťový provoz

V rámci jednotlivých síťových rozhraní lze podrobně sledovat množství přenesených dat nebo počty různých spojení ve specifikovaných časech. Sledování aktuálního síťového provozu poskytuje úplný a strukturovaný záznam síťové komunikace. Data se ukládají do databáze MySQL a to každý den do nové.

Příklad 8-1. Praktické použití výpisu síťového provozu

Pokud vás například zajímá, který počítač během dopoledne nejvíce vytěžoval váš server a ke kterým službám se připojoval, zjistíte to následujícím způsobem. Nejprve ve výběrovém menu Filtr zvolíte přednastavenou hodnotu komunikace tohoto serveru s jinými počítači. Dále ve výběrovém menu v prostoru pod grafem zvolíte položku zadaný rozsah a vyplníte například 9 až 12 hodin. Potom v tabulce kliknete na rozbalovací menu u prvního sloupce a zvolíte IP – Ostatní. Uvidíte seznam strojů, které komunikovali se serverem, uspořádaný podle množství přenesených dat. Pak kliknete na jméno nebo IP adresu prvního počítače v seznamu a v rozbalovacím menu zvolíte Porty – Server. Následně v seznamu uvidíte čísla nejvytíženějších portů, které jsou v případě významných serverových služeb pojmenované.

Zobrazovaní samotných dat o přenosech se řídí několika úrovněmi omezujících podmínek. Jedná se o filtry, časy a spojení.

Ještě před jejich popisem je potřeba se zmínit o některých obecných funkcích dostupných z rozbalovacího menu:

8.1.1. Filtry

Filtr je primární prostředek pro omezení výpisu dat z databáze síťového provozu. Jeho nejdůležitější funkcí je vymezit komunikující strany, aby bylo možno vhodně interpretovat výsledná data. Několik přednastavených filtrů je k dispozici ve stejnojmenném výběrovém menu, jak je vidět na obrázku níže. V menu nalevo jsou položky na vytváření, editování a mazání filtrů. Přednastavené filtry nelze editovat ani mazat. Při vytváření nového uživatelského filtru se do jeho nastavení zkopírují údaje z aktuálně zvoleného filtru. Podrobný popis nastavení uživatelských filtrů najdete v kapitole níže.

Obrázek 8-2. Filtry síťového provozu.

8.1.1.1. Přednastavené filtry

  • komunikace lokální sítě s Internetem – na lokální straně filtru jsou všechny IP adresy uvnitř sítě s vyloučením adres síťových rozhraní, na protější straně je jakákoliv IP adresa, která nenáleží do žádné sítě na lokálním serveru. Součty nejsou nijak omezeny.

  • komunikace tohoto serveru s jinými počítači – na lokální straně jsou všechny IP adresy lokálního serveru, na protější straně je jakákoliv jiná IP adresa. Součty nejsou nijak omezeny.

  • všechna komunikace – tento filtr neobsahuje žádná omezení – vlastně nic nefiltruje, ale poskytuje pohled na všechna zaznamenaná data. Proto je seznam IP adres nebo portů ve výsledné tabulce za obě strany stejný (strany nejsou specifikovány). Proto jsou také množství odeslaných a přijatých dat při zobrazení provozu přes protokoly nebo v minutovém rozvrhu totožné – jsou započítány zdrojové i cílové adresy a sloupec Celkem pak tedy de facto zobrazuje dvojnásobné množství přenesených dat.

8.1.2. Časy

V liště pod grafem můžete ve výběrovém menu přepínat konkrétní časový interval. Tlačítka s lupou slouží k přepínání časových rozsahů z menu s tím, že přiblížení grafu znamená zobrazení následujícího kratšího intervalu z menu a obráceně. Na časové ose se lze rovněž posunovat pomocí směrových šipek v téže liště. V řádku těsně nad vykresleným grafem se v každém případě zobrazuje aktuální časový interval.

Obrázek 8-3. Časové filtry síťového provozu.

8.1.3. Spojení

Tabulka pod grafem zobrazuje data, která odpovídají zadanému filtru v daném časovém intervalu. První sloupec zobrazuje procentuální podíl jednotlivých spojení na celkovém objemu přenesených dat. Záznamy, které pokrývají méně než jedno procento úhrnného síťového provozu, se zobrazují dohromady pod jednou barvou.

Druhý sloupec obsahuje zvolenou podmínku pro zobrazovaná data spojenou s výběrovým menu pro její změnu. U IP adres a portů je za pomlčkou vyznačeno jméno komunikující strany, které je součástí zvoleného filtru a je buď přednastaveno nebo nastaveno uživatelem. Více v podkapitole o filtrech:

  • IP – podle názvu, který následuje za pomlčkou se jedná buď o lokální IP adresy nebo o protější IP adresy tak, jak jsou nadefinovány ve zvoleném filtru. Výsledný seznam obsahuje IP adresy, které se na příslušné straně podíleli na datovém přenosu na síťovém rozhraní.

  • Porty – port je číslo, které protokoly TCP a UDP používají k identifikaci služeb nebo aplikací, které komunikují přes síť. Podle názvu, který následuje za pomlčkou, se jedná buď o lokální porty nebo o protější porty tak, jak jsou nadefinovány ve zvoleném filtru. Čísla portů se automaticky překládají, pokud jsou tyto porty pojmenovány. Položky beze jména a bez čísla označená pomlčkou nejsou ve skutečnosti porty, ale přenosy vztahující se k protokolům, které porty nepoužívají, např. ICMP.

  • Protokoly – protokol se soubor pravidel, podle kterých probíhá provoz skrze počítačovou síť. Při zobrazení provozu podle protokolů se nerozlišují komunikující strany na lokální a protější.

  • Minuty – nejjemnější časový interval pro zobrazení je pět minut, ale touto volbou můžete zobrazit datové přenosy pro každou minutu ve zvoleném intervalu. Při tomto zobrazení se nerozlišují komunikující strany na lokální a protější.

Obrázek 8-4. Spojení síťového provozu.

Ke každé položce v tabulce lze zobrazit kliknutím další podrobnosti výběrem jiné omezující podmínky z menu. V takovém případě se všechna dosavadní omezení zobrazují postupně za sebe do stavového řádku těsně pod graf. Tento stavový řádek obsahuje první až předposlední omezující podmínku, poslední podmínka je potom zobrazena v názvu druhého sloupce tabulky. Podmínky ve stavovém řádku mají rovněž své menu, které se otevře při kliknutí. Položka Jdi zpět na zruší všechny později zadané podmínky, položka Odstranit podmínku vyjme jen onu zvolenou z posloupnosti podmínek a položka Upravit podmínku umožní změnit konkrétní hodnotu pro danou podmínku. Kliknutím na tlačítko Zpět zrušíte poslední podmínku v posloupnosti.

Obrázek 8-5. Příklad posloupnosti omezujících podmínek při zobrazení síťového provozu.

Následuje stručný popis zbývajících sloupců tabulky:

  • odesláno – název tohoto sloupce obsahuje pro porty a IP adresy také jméno komunikující strany použité ve filtru, aby nemohlo dojít k nedorozumění při interpretaci množství přenesených dat.

  • přijato – množství přijatých dat se vždy vztahuje k opačné komunikující straně, než která je specifikována u sloupce odesláno.

  • celkem – součet sloupců odesláno a přijato. Pokud máte aktivní filtr, ve kterém nejsou specifikovány komunikující strany (např. implicitní filtr všechna komunikace), pak při zobrazení podmínek, které komunikující strany nerozlišují (např. zobrazení provozu podle protokolů), započítávají příchozí i odchozí data dvakrát. Proto jsou v tomto případě relevantnější hodnoty ze sloupce odesláno nebo přijato. Ty zahrnují všechny komunikující strany a proto jsou totožné.

  • paketů – celkový počet přenesených paketů v daném časovém rozsahu.

  • spoj. – počet spojení, která byla pro danou položku v seznamu navázána v době vymezené nastaveným časovým intervalem. Pokud je tato hodnota nulová, zatímco přenesených dat je více, znamená to, že buď byla tato data přenesena protokoly, které spojení nenavazují (např. UDP nebo ICMP) nebo byla všechna spojení navázána ještě před okamžikem začátku zvoleného časového rozsahu.

  • v čase – obsahuje přepočítání aktuálně zvoleného časového intervalu do konkrétních hodnot.

8.1.4. Konfigurace vlastního filtru

Při vytváření nebo editaci filtru se otevře nové dialogové okno. Název filtru by měl popisovat, jaká data filtr z databáze vyhledává. Výběrové menu Uložit do se týká přístupových práv, tedy dostupnosti tohoto filtru jiným uživatelům. Filtr může být přístupný buď pouze samotnému uživateli nebo všem uživatelům, kteří mají nastaveno oprávnění číst graf v dané lokální síti, resp. na celém serveru.

Obrázek 8-6. Nový filtr.

Aby bylo možné se lépe orientovat ve vypočítaných údajích, je možné přidělit jednotlivým komunikujícím stranám vlastní názvy (nejvýše 10 znaků). IP adresy a porty jedné strany (obvykle lokální) jsou označeny proměnnými ip a port, IP adresy a porty protější strany pak proměnnými second_ip a second_port. Názvy jednotlivých stran jsou potom vyznačeny u zvolené podmínky a u sloupce s množstvím odeslaných dat ve výsledné tabulce.

Následují dvě pole, do kterých se zadávají další omezující podmínky filtru. Pole Vyhledávání upřesňuje parametry komunikujících stran, pole Součty se týká omezení souhrnných množství přenesených dat v různých formátech (počet bytů, paketů nebo spojení). Obě tato pole přijímají předpis v podobě asociativního pole (nazývaného také hash) v syntaxi jednoduchého jazyka JSON. Prvky hashe jsou dvojice ve tvaru (klíč: hodnota), případně pole, jehož prvky jsou hashe. Vyhodnocování výsledného předpisu takového zápisu se řídí následujícími pravidly:

  • Pokud omezující podmínka obsahuje více hashů spojených do výsledného pole, aplikuje se na ně logický součet. To znamená, že údaje z databáze odpovídající kterémukoliv dotazu zapsanému v hashi, se objeví ve výsledné tabulce síťového provozu.

  • Pokud jeden hash obsahuje více prvků, aplikuje se na ně logický součin. To znamená, že aby byla splněna podmínka celého hashe, musí být splněny všechny podmínky v něm.

Pro samotné psaní omezujících podmínek je potřebná znalost klíčů, hodnot a proměnných, které lze v hashích využívat. Pro pole jako hodnotu klíče existují tři speciální řetězce, které ovlivní vyhodnocování jeho obsahu, pokud jsou umístěny jako první prvek pole:

  • or – při vyhodnocování výrazu se prvky pole spojí operací logického součtu.

  • and – při vyhodnocování výrazu se prvky pole spojí operací logického součinu.

  • not – při vyhodnocování výrazu se použije negace obsahu pole.

Pokud není zadán žádný z těchto řídících řetězců, vyhodnocuje se obsah pole tak, jako by byl zadán řetězec or. Pole může obsahovat jako prvek další pole. Následuje popis jednotlivých klíčů s příklady.

Tip: V zápisu vlastních filtrů lze používat dokonce ještě odlehčenější a přehlednější syntaxi jazyka JSON:

  • kolem jmen klíčů není potřeba psát uvozovky,

  • řády tisíců lze v zápisu čísla oddělovat podtržítkem (např. 1_000_000),

  • prvky polí a hashů není potřeba oddělovat čárkou.

Poznámka: Zápis vyhledávacího nebo součtového filtru může obsahovat komentáře. Ty mohou být označeny buď takto: /* všechno tohle je komentář */ , nebo mohou být uvozeny dvěma lomítky: // vše až do konce řádku je komentář .

8.1.4.1. Vyhledávání

K dispozici jsou tyto klíče do hashů:

  • ip – specifikuje IP adresu, která se bude hledat v databázi. Tento klíč samostatně neurčuje komunikující stranu. Hodnotu lze zapisovat buď klasicky jako čtveřici číslic (1.1.1.1), jako celé číslo (v našem příkladu 16843009) nebo jako zápis s maskou ve tvaru 1.1.1.1/16 nebo 1.1.1.1/255.255.0.0. Je možné také zadávat jméno počítače (hostname – např. aurora.priklad.cz).

  • second_ip – specifikuje IP adresu na protější straně spojení, pokud je již specifikován klíč ip. Jinak se chová stejně jako klíč ip.

  • port – specifikuje číslo portu. Tento klíč samostatně nespecifikuje komunikující stranu, ale vztahuje se ke klíči ip, resp. k opačné straně specifikované v klíči second_ip, pokud je některý z těchto klíčů uveden. Hodnotou je buď řetězec s názvem portu (např. ssh) nebo celé číslo (v našem příkladu 22).

  • second_port – specifikuje port vztahující se ke komunikující straně specifikované klíčem second_ip, resp. k opačné straně, než která je specifikována klíčem ip nebo port, pokud je některý z těchto klíčů uveden.

  • time – specifikuje hodinu a minutu, kdy byl záznam zapsán do databáze. Hodnotou je buď řetězec (např. 11:11) nebo celé číslo označující číslo minuty v daném dnu (v našem příkladu tedy 671).

  • protocol – specifikuje komunikační protokol spojení. Hodnotou je buď řetězec (např. tcp) nebo číslo protokolu (v našem příkladu tedy 6).

Hodnoty k těmto klíčům mohou být seskupeny do polí a mohou obsahovat následující proměnné:

  • all_networks – označuje všechny IP adresy, které nastaveny na všech lokálních sítích. Do tohoto výčtu spadají i adresy definované maskou sítě.

  • interface_ips – označuje všechny IP adresy náležící síťovému rozhraní, do kterého filtr náleží. Do tohoto výčtu se nepočítají adresy definované maskou sítě.

  • all_ips – označuje IP adresy všech síťových rozhraní na serveru. Do tohoto výčtu se nepočítají adresy definované maskou sítě.

  • network – označuje všechny IP adresy náležící síťovému rozhraní, do kterého filtr náleží. Do tohoto výčtu spadají i adresy definované maskou sítě.

Příklad 8-2. Příklad vyhledávacího filtru.



   second_ip: [ "not", "${all_networks}" ],
   ip: [
          "and",
          "${network}",
          [ "not", "${interface_ips}" ]
       ]
}
    

Tento filtr zobrazí komunikaci adres v síti, s výjimkou adres síťového rozhraní, s adresami, které nepatří do žádné definované lokální sítě. Je to tedy komunikace aktuální lokální sítě s Internetem.

8.1.4.2. Součty

K dispozici jsou tyto klíče do hashů:

  • bytes1_2_sum, bytes2_1_sum – specifikuje množství přenesených bytů, které se zobrazují v tabulce ve sloupcích odesláno a přijato. Strana 1 je určena hodnotou klíče ip, strana 2 hodnotou klíče second_ip. Hodnoty jsou přirozená čísla.

  • bytes_sum – specifikuje celkové množství přenesených bytů, které odpovídá sloupci celkem ve výsledné tabulce. Jedná se o součet hodnot klíčů bytes1_2_sum a bytes2_1_sum. Hodnotou je přirozené číslo.

  • packets_sum – specifikuje celkové množství přenesených paketů. Hodnotou je přirozené číslo.

  • conns_sum – specifikuje celkové množství navázaných spojení. Hodnotou je přirozené číslo.

  • time_min, time_max – specifikuje nejstarší respektive nejnovější čas, kdy byl zaznamenán přenos paketu, který spadá do vyhledávacího filtru. Formát zápisu je stejný jako u klíče time popsaného výše.

Pokud jde o hodnoty k těmto klíčům, lze je zadávat buď jako celá čísla nebo jako intervaly. Krajní hodnota intervalu do něj vždy náleží. Zápis 1..100 znamená hodnoty od 1 včetně do 100 včetně. Zápisy 66.., respektive ..66 znamená hodnoty větší nebo rovno, respektive menší nebo rovno hodnotě 66.

Příklad 8-3. Příklad součtového filtru.


{
    bytes_sum: "1_000_000..",
    conns_sum: "..10"
}
    

Tento filtr zobrazí pouze záznamy těch toků, ve kterých byl v součtu přenesen více než 1 MB dat, ale současně bylo v zadanou dobu navázáno nejvýše 10 spojení.