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:
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)
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
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)
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)
Następnie klikamy prawym przyciskiem myszy na linii gdzie znajduje się stworzony wykres i wybieramy opcję Settings (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).
Analogicznie postępujemy w przypadku danych wysyłanych, czyli źródło danych queue_MAIN_up (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)
matczar 01:33, 7 lip 2007 (CEST)









