Montowanie transferu
Ostatnia zmiana: 2016-02-22 20:57

Strona projektu: https://codebox.org.uk/pages/bitmeteros
FAQ: https://codebox.org.uk/pages/bitmeteros/faq
Demo: https://codebox.org.uk/pages/bitmeteros/demo
Źródła projektu: https://github.com/codebox/bitmeteros

BitMeter OS jest programem umożliwiającym pomiar użycia łączy, czyli realizuje popularny "bandwidth monitor". Dostępny jest dla Linuksa, Windows i MacOS, pełni rolę systemu zbierania statystyk i prezentacji ich dla użytkownika. Od razu mała uwaga: Bitmeter nie pełni rolę zbieracza statystyk dla całej sieci lokalnej. Monitoruje ruch tylko na hoście na którym został uruchomiony, na wszystkich interfejsach. Co prawda można do niego zaimportować dane z innego hosta, ale generalizując - samodzielnie zbiera dane tylko dla urządzenia na którym został uruchomiony.

Co ten system potrafi?
- Monitor: monitorowanie stanu wykorzystania łącz. Dostajemy wykres z ostatnich 5 minut, możliwość poznania bieżącego obciążenia łącz, wartości maksymalnych, średnich, skalowania wykresu, wyświetlania wykresu dla pobierania/wysyłania lub obu wartości, wyświetlania wartości za określony czas.



- History: wyświetlanie wykresów z ostatnich minut, godzin i dni, jak również eksport tych wartości do formatu CSV



- Summary: podsumowanie transferu za bieżący dzień, ostatni miesiąc, rok i łącznie



- Query: wyświetlanie transferów w określonym okresie czasu



- Alerts: możliwości ustawienia alertów wyświetlanych przy przekroczeniu pewnych warunków (up/down, ilość pobranych danych)
- Calculator: wyliczanie czasu jaki zajmie przetransmitowanie określonego zakresu danych lub odwrotnie
- Preferences: ustawianie kolorów wykresu, zakresu danych, jednostek, RSSów, nazwy serwera oraz czasów odświeżania danych



Instalacja

Jeżeli używane są moje obrazy, to wystarczy


    # opkg update
    # opkg install bitmeteros

Jeżeli nie - trzeba ręcznie pobrać pakiet z mojego repozytorium i zainstalować pakiet dla odpowiedniej platformy.

Uruchomienie



    # /etc/init.d/bitmeteros enable
    # /etc/init.d/bitmeteros start

Testowanie

Wchodzimy przeglądarkę na stronę routera na port 2605 i podziwiamy statystyki - http://192.168.1.1:2605/index.html

Technikalia

- BitMeter OS nie potrzebuje oddzielnego serwera WWW do działania. Posiada własny serwer (program bmws) który realizuje także inne cele (np. odczyt danych)
- baza danych trzymana jest w piku /var/lib/bitmeteros/bitmeteros.db (w OpenWrt jest to w pamięci RAM) i jest to plik sqlite3. Przy uruchomieniu programu skryptem startowym szablon bazy kopiowany jest do tej lokalizacji jeżeli go tam jeszcze nie ma. Jeżeli chcemy aby statystyki przetrwały restart routera, baza danych powinna znaleźć się na zewnętrznym nośniku i skopiowania do katalogu /var/lib/bitmeteros/ PRZED uruchomieniem BitMeter OS. Najprościej można wykonać to zmieniają plik /etc/init.d/bitmeteros i podmieniając linię


    cp /usr/lib/bitmeter/bitmeter.db /var/lib/bitmeter

na np.


    cp /mnt/sda1/bitmeter.db /var/lib/bitmeter

zakładając że baza danych jest na nośniku w katalogu /mnt/sda1. Pamiętajmy także o cyklicznym kopiowaniu bieżącej bazy danych na nośnik (np. przez crona) aby zachować statystyki.
- domyślny port nasłuchu to 2605. Jeżeli chcemy użyć innego, należy jednorazowo użyć polecenia:


    # bmdb setconfig web.port 8080

który ustawia w preferencjach systemu podany port. Przy pomocy programu bmdb mamy dostęp także do innych ustawień BitMeter OS.
- jeżeli chcemy mieć dostęp do statystyk z "internetu", należy pamiętać o odblokowaniu odpowiedniego portu na wan; dla domyślnego 2605 jest to:


    # uci add firewall rule
    # uci set firewall.@rule[-1].name=bitmeteros
    # uci set firewall.@rule[-1].src=wan
    # uci set firewall.@rule[-1].target=ACCEPT
    # uci set firewall.@rule[-1].proto=tcp
    # uci set firewall.@rule[-1].dest_port=2605
    # uci commit firewall
    # reboot

BitMeter OS nie zabezpiecza wykresów w żaden sposób, więc jeżeli odblokujemy dostęp na wan to każdy będzie miał do nich dostęp, o ile sami tego nie zabezpieczymy np. przez iptables.
- BitMeter OS zbiera dane okresowo co 1 sekundę ze wszystkich interfejsów i zapisuje to do bazy danych. Jeżeli bazę trzymamy bezpośrednio we flash lub na nośniku USB i obawiamy się o jego trwałość to można zmienić okres zapisu na np. 10 sekund:


    # bmdb setconfig cap.write_interval 10

- BitMeter OS domyślnie wyświetla dane ze wszystkich interfejsów. Jeżeli chcemy wyświetlić dane tylko z określonego interfejsu (np. wwan0 - z modemu komórkowego) to należy w zakładce "Preferences/Data filter" wybrać określony interfejs - wwan0 w tym przypadku.



- Możliwe jest także wyświetlenie strony "mobilnej" która prezentuje tylko bieżący transfer - jej adres to http://192.168.1.1/m/index.xml