Witam.
W dużym skrócie: przygotowałem moduł uaktualniający statystyki ruchu LMS, na podstawie danych NetFlow.
A teraz rozwinięcie dla osób zainteresowanych tematem. Swego czasu gdy routingiem zajmował się PC z linuxem na pokładzie używałem sktyprów liczących transfer na podstawie wpisów w iptables. Od czasu gdy zmieniliśmy router na mikrotika kombinowałem na kilka sposobów jak uzyskac statystyki, ale nie udawało mi się żadnego szybkiego i logicznego rozwiązania uzyskać. W zeszłym tygodniu na MUM-ie był prowadzony wykład o NetFlow. W dużym uproszczeniu jest to protokół zajmójący się przesyłaniem informacji o ruchu pomiędzy urządzeniami. Stosuje się go między innymi w urządzeniach Cisco i własnie Mikrotikach. Skonfigurowałem na mikrotiku generowanie danych, i na PC demona (flow-capture) odbierającego te dane i zapisującego do plików. W załączniku przerobiony skrypt lms-traffic-logiptables. Popełniłem go kilka godzin temu i jak na razie ładnie działa. Nie zmieniłem domyślnych nazw sekcji konfiguracji - "traffic-logiptables" - jeżeli miał ktoś kiedyś już skonfigurowane, może tego nadal używać. Najważniejsze parametry do ustawienia to : "netflow_stat_binary" i "netflow_cat_binary". Skrypt do poprawnej pracy wymaga parametru z nazwą pliku zawierającego pobrane z urządzenia dane. Nazwa tego pliku sie zmienia, więc nie można użyć ustawień konfiguracji.
flow-capture można skonfigurować (opcje -n i -R ) aby co zadany czas zmieniał plik i ewentualnie uruchamiał dowolny program, przekazując mu jako pierwszy argument nazwę ukończonego pliku z danymi. Nazwa pliku jest podawana bez ścieżki dostępu.
Przykład: Uruchomienie : "/usr/sbin/flow-capture 0/0/1234 -w /var/lib/netflow -N0 -S1 -n 288 -R /lms/lms-stats.sh" - (nasłuchuje na porcie 1234, zapisuje dane do katalogu /var/lib/netflow, nie tworzy podkatalogów, zapisuje bufor co minute, zmienia plik 288 razy na dobe (co 5 min), przy każdej rotacji pliku z logiem uruchamia skrypt /lms/lms-stats.sh)
Plik /lms/lms-stats.sh: #!/bin/bash /lms/lms-netflow-stats --flow-file="/var/lib/netflow/$1" rm -f "/var/lib/netflow/$1"
P.S. Mogą pojawiać się opóźnienia w naliczaniu transferu. Netflow (przynajmniej na mikrotiku) podaje dane o ruchu który się zakończył, czyli transfery które trwały w czasie naliczania ruchu pojawią się dopiero po ich zakończeniu. Byc może daje sie to regulować parametrami "timeout" w mikrotiku, ale nie sprawdzałem jeszcze.
P.S.2. Wydaje mi sie że nieprawidłowo wypełniłem informacje o wersji w źródłach. Proszę - nie bijcie tylko naprostujcie.
W dniu 10 marca 2010 02:20 użytkownik Szymon Kajewski lysysoft@o2.pl napisał:
Witam.
W dużym skrócie: przygotowałem moduł uaktualniający statystyki ruchu LMS, na podstawie danych NetFlow.
Witam
Nie no bardzo fajnie, napewno mi się to przyda, nie wiem tylko czemu nie kojarze jakoś tej prezentacji no ale cóż ;] Pytanie może głupie ale może orientujesz się czy ten skrypcik jest kompatybilny z drzewem lmsa 1.10?
Pozdrawiam gaco
Dnia 10 marca 2010 10:42 Michał "gaco" Gacek michal.gacek@gmail.com napisał(a):
Nie no bardzo fajnie, napewno mi się to przyda, nie wiem tylko czemu nie kojarze jakoś tej prezentacji no ale cóż ;]
W czasie jednej z nnich była kilkuminutowa mowa o netflow właśnie. I o tym że można go stosować do logowania całego ruchu zamiasrt regółek sysloga. :)
Pytanie może głupie ale może orientujesz się czy ten skrypcik jest kompatybilny z drzewem lmsa 1.10?
Głowy dobie nie dam uciąć z tego powodu bo nie testowałem, ale patrząc w historię CVS, powinien być zgodny nawet z 1.8
uczestnicy (2)
-
Michał "gaco" Gacek
-
Szymon Kajewski