modified on 10 sty 2008 at 10:32 ••• 10 473 views

Wykresy ruchu użytkowników w oparciu o Simple Queue

Z MikroTik Wiki

Spis treści

Wstęp

W tym artykule postaram się pokazać, jak w Dude stworzyć wykresy ruchu użytkowników, gdy ich prędkości ustalane są w MT przy pomocy Queue Simple. MT dla każdego wpisu w Queue Simple generuje 5 wartości, które udostępnia poprzez mechanizm SNMP: nazwę kolejki, liczniki bajtów wychodzących i przychodzących, oraz liczniki paczek wychodzących oraz przychodzących. Z drugiej strony, Dude posiada możliwość generowania wykresów z danych pobranych poprzez protokół SNMP. Po połączeniu tych dwóch rzeczy uzyskujemy wykres ruchu danego użytkownika wyglądający np. tak:

Grafika:Queue_USER1.png‎


Konfiguracja MikroTika

Ustawienia ogólne

W celu zarysowania sytuacji oraz uniknięcia nieporozumień poniżej znajdują się ogólne informacje o danym MT:

  • Interfejsy. Użytkownicy podłączeni są do interfejsu lan
[admin@MikroTik] interface> print 
Flags: X - disabled, D - dynamic, R - running 
 #    NAME        TYPE             RX-RATE    TX-RATE    MTU  
 0  R lan         ether            0          0          1500 
 1  R wan         ether            0          0          1500 
  • Adresy. Użytkownicy posiadają adresy z klasy 10.0.0.0/24
[admin@MikroTik] ip address> print 
Flags: X - disabled, I - invalid, D - dynamic 
 #   ADDRESS            NETWORK         BROADCAST       INTERFACE
 0   10.0.0.1/24        10.0.0.0        10.0.0.255      lan      
 1 D 172.18.0.33/26     172.18.0.0      172.18.0.63     wan
  • Maskarada uruchomiona jest na interfejsie wan
[admin@MikroTik] ip firewall nat> print 
Flags: X - disabled, I - invalid, D - dynamic 
 0   chain=srcnat out-interface=wan action=masquerade


Protokół SNMP

W celu umożliwienia pobierania danych z MT przez Dude, należy uruchomić usługę SNMP. Można to uczynić przez winboxa lub wpisując komendy z poziomu konsoli:

/ snmp 
set enabled=yes contact="" location="" 
/ snmp community 
set public name="public" address=0.0.0.0/0 read-access=yes 

Gdy chcemy ograniczyć osobom trzecim dostęp do danych udostępnianych przez SNMP, należy zmienić w community parametr name na własny lub zezwolić na dostęp wybranej klasie IP, poprzez zmianę pola address.


Queue Simple

W tym przykładzie została utworzona kolejka główna queue_MAIN oraz dwie podkolejki dla użytkowników (queue_USER1 i queue_USER2), które jako rodzica mają ustawioną kolejkę queue_MAIN:

[admin@MikroTik] queue simple> print 
Flags: X - disabled, I - invalid, D - dynamic 
 0    name="queue_MAIN" dst-address=0.0.0.0/0 interface=lan parent=none direction=both priority=8 \
      queue=default-small/default-small limit-at=0/0 \
      max-limit=1000000/1000000 total-queue=default-small 

 1    name="queue_USER1" target-addresses=10.0.0.2/32 dst-address=0.0.0.0/0 interface=lan \
      parent=queue_MAIN direction=both priority=8 \
      queue=default-small/default-small limit-at=0/0 max-limit=256000/256000 total-queue=default-small 
 
 2    name="queue_USER2" target-addresses=10.0.0.3/32 dst-address=0.0.0.0/0 interface=lan \
      parent=queue_MAIN direction=both priority=8 \
      queue=default-small/default-small limit-at=0/0 max-limit=256000/256000 total-queue=default-small 


Chcąc uzyskać identyfikatory liczników poszczególnych kolejek, to z poziomu konsoli i będąc w menu /queue simple należy wykonać polecenie print oid

[admin@MikroTik] queue simple> print oid
Flags: X - disabled, I - invalid, D - dynamic 
 0    name=.1.3.6.1.4.1.14988.1.1.2.1.1.2.1 bytes-in=.1.3.6.1.4.1.14988.1.1.2.1.1.8.1 \
      bytes-out=.1.3.6.1.4.1.14988.1.1.2.1.1.9.1 packets-in=.1.3.6.1.4.1.14988.1.1.2.1.1.10.1 \
      packets-out=.1.3.6.1.4.1.14988.1.1.2.1.1.11.1 

 1    name=.1.3.6.1.4.1.14988.1.1.2.1.1.2.2 bytes-in=.1.3.6.1.4.1.14988.1.1.2.1.1.8.2 \
      bytes-out=.1.3.6.1.4.1.14988.1.1.2.1.1.9.2 packets-in=.1.3.6.1.4.1.14988.1.1.2.1.1.10.2 \
      packets-out=.1.3.6.1.4.1.14988.1.1.2.1.1.11.2 

 2    name=.1.3.6.1.4.1.14988.1.1.2.1.1.2.3 bytes-in=.1.3.6.1.4.1.14988.1.1.2.1.1.8.3 \
      bytes-out=.1.3.6.1.4.1.14988.1.1.2.1.1.9.3 packets-in=.1.3.6.1.4.1.14988.1.1.2.1.1.10.3 \
      packets-out=.1.3.6.1.4.1.14988.1.1.2.1.1.11.3 

Objaśnienie parametrów, potrzebnych w późniejszym etapie w Dude:

  • name - wskaźnik do łańcucha znakowego z nazwą kolejki. Niestety na chwilę obecną nie da się tego wykorzystać przy generowaniu wykresów w Dude, ponieważ może on pobierać tylko wartości liczbowe.
  • bytes-in - wskaźnik licznika bajtów odebranych, np. przed danego użytkownika
  • bytes-out - wskaźnik licznika bajtów wysłanych
  • packets-in - wskaźnik licznika pakietów odebranych
  • packets-out - wskaźnik licznika pakietów wysłanych


Konfiguracja Dude

Wstęp

W tym przykładzie korzystałem z Dude w wersji 3.0beta6. Czasem tworząc wykres, a następnie przy próbie dodania do niego źródła danych, pojawiał się błąd unknown type - nie wiem gdzie leży przyczyna. U mnie pomagało ponowne stworzenie wykresu lub/i pozostawienie domyślnej nazwy Chart i dopiero jej późniejsza zmiana na własną.

W przykładzie postaramy się stworzyć wykres liczników pobieranych i wysyłanych bajtów dla kolejki queue_MAIN.


Tworzenie źródeł danych

W Dude istnieją obok siebie dwa niezależne od siebie typy obiektów: wykresy i źródła danych. Tworząc wykres jest on domyślnie pusty i dopiero dodanie do niego dowolnej ilości źródeł danych powoduje, iż staje się on dla nas użyteczny - tzn. dopiero wtedy coś pokazuje (pod warunkiem, że źródła danych zawierają jakieś informacje).


W celu stworzenia źródła danych w menu Dude klikamy Charts, wybieramy zakładkę Data Sources i klikamy czerwony znak plus (patrz rys. 1)

rys. 1


Następnie w oknie jak poniżej (rys. 2) wypełniamy poszczególne pola:

  • Name - nazwa źródła danych (queue_MAIN_down) - będą to dane z licznika bajtów pobieranych
  • Type - typ danych (snmp oid) - dane będą pobierane poprzez SNMP
  • Data - określa w jaki sposób ma być określana dana wartość: jako wartość absolutna, czy jako różnica dwóch kolejnych pomiarów. W naszym przypadku wybieramy delta, gdyż źródłem danych na MT będą liczniki.
  • Scale Mode (multiply) - pozyskana wartość będzie mnożona przez wartość parametru Scale (tutaj przez 8). Liczniki w MT zliczają bajty, po przemnożeniu na wykresach otrzymamy ruch wyrażony w kilobitach.
  • Rate (second) - ustawienie tego parametru na sekundy spowoduje, że na wykresach otrzymamy ruch wyrażony w kilobitach na sekundę (kbps), czyli tak jak jesteśmy przyzwyczajeni (a nie np. w kilobitach na 30min)
  • Address (10.0.0.1) - adres IP routera MT, z którego pobierane są dane
  • Snmp Profile (v1-public) - profil SNMP. Jeśli w MT ustawiliśmy comunity inne niż domyślne, to w Dude należy dodać kolejny profil SNMP zgodnie z naszymi ustawieniami w MT i ustawić w tym miejscu.
  • OID (1.3.6.1.4.1.14988.1.1.2.1.1.8.1) - identyfikator licznika bytes-in dla kolejki queueu_MAIN (patrz Queue Simple). Ważne żeby OID nie posiadał kropki (.) na początku, ponieważ Dude wykaże błąd.
  • Interval (00:00:30) - parametr określa jak często to źródło danych ma być aktualizowane (gg:mm:ss)


Po zatwierdzeniu tych danych klawiszem Apply, klikając Test możemy sprawdzić czy wszystko jest w porządku. Jeśli tak, to na samym dole okna pojawi się czerwony napis z aktualnym stanem licznika: got value:xxxxxx

rys. 2


Analogicznie postępujemy tworząc źródło danych queue_MAIN_up dla danych wysyłanych przez kolejkę queue_MAIN. Zmienia się tylko nazwa i OID - 1.3.6.1.4.1.14988.1.1.2.1.1.9.1 (patrz rys. 3)

rys. 3

Tworzenie wykresu

Mając źródła danych możemy stworzyć wykres na którym będą one wyświetlane. W tym celu przełączany na zakładkę Charts, dodajemy nowy wykres czerwonym klawiszem plus, ustalamy jego nazwę (dowolna, tu:queue_MAIN) i potwierdzamy klawiszem OK (rys.4)

rys. 4


Następnie klikamy prawym przyciskiem myszy na linii gdzie znajduje się stworzony wykres i wybieramy opcję Settings (rys. 5)

rys. 5


Chcemy dodać element na wykresie w postaci linii pokazującej ilość danych pobieranych, więc w okienku które się pojawiło, w zakładce General klikamy czerwony plus i z listy Source wybieramy queue_MAIN_down (rys. 6).

rys. 6


Analogicznie postępujemy w przypadku danych wysyłanych, czyli źródło danych queue_MAIN_up (rys. 7)

rys. 7


W menu głównym Dude w części Charts pojawił się link do powstałego wykresu - wystarczy kliknąć żeby się pojawił (rys. 8)

rys. 8


matczar 01:33, 7 lip 2007 (CEST)