1

Temat: VNSTAT – Portal WWW ze statystykami interfejsów

Witam,
pakiet vnstat umożliwia zbieranie informacji o ruchu na wskazanych (w konfiguacji) interfejsach. Pakiet vnstati umożliwia zaś wygenerowanie wykresów z danych zebranych przez vnstat. Tym z Was którzy chcieli by w prosty sposób obejrzeć wszystko przez przeglądarkę polecam skrypt który to automatycznie zrobi.

Do działania wymagane są:
- działające pakiety vnstat i vnstati
- działający serwer WWW np. uhttpd
- poniższy skrypt

Skrypt należy wkleić do pliku /bin/vnstati_make.sh

#!/bin/sh
# Auto-generate vnstat portal.
# Script version 1.00 Rafal Drzymala 2013
#
# Changelog
#    1.00    RD    First stable code
#
VNSTAT_DB=$(awk '{if($1=="DatabaseDir") print substr($2,2,length($2)-2)}' /etc/vnstat.conf)    # db location
VNSTATI_WWW=/www/vnstat                                # vnstati www dir
VNSTATI_OUT=/tmp/vnstat                                  # output images and HTML to here
VNSTATI_BIN=$(which vnstati)                          # which vnstati
VNSTATI_HTML=${VNSTATI_OUT}/index.html                # output HTML file
VNSTATI_CMD="--transparent --noheader --style 1"    # vnstati additional commands
VNSTATI_OUTS="vs d"                                   # what images to generate
#
# h        hours
# d        days
# m        months
# t        top10
# s        summary
# hs    horizontal summary with hours
# vs    vertical summary with hours
# 
[ -d ${VNSTATI_OUT} ] || mkdir -p ${VNSTATI_OUT}
[ -L ${VNSTATI_WWW} ] && [ $(ls -l ${VNSTATI_WWW} | awk '{print $11}') == ${VNSTATI_OUT} ] || rm ${VNSTATI_WWW}
[ -L ${VNSTATI_WWW} ] || ln -s ${VNSTATI_OUT} ${VNSTATI_WWW}
echo "<!DOCTYPE html>">${VNSTATI_HTML}
echo "<HTML>">>${VNSTATI_HTML}
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"300\">">>${VNSTATI_HTML}
echo "<META GENERATOR=\"$($VNSTATI_BIN --version)\">">>${VNSTATI_HTML}
echo "<HEAD>">>${VNSTATI_HTML}
echo "<TITLE>vnStat - $(uci get system.@system[0].hostname)</TITLE>">>${VNSTATI_HTML}
echo "</HEAD>">>${VNSTATI_HTML}
echo "<BODY BGCOLOR=\"#F0F0F0\">">>${VNSTATI_HTML}
echo "<FONT FACE=\"Tahoma\">">>${VNSTATI_HTML}
interfaces="$(ls -1 $VNSTAT_DB)"
outputs_count="$(echo \"$VNSTATI_OUTS\"|wc -w)"
if [ -z "$interfaces" ]; then
    echo "<H1>No database found ($VNSTAT_DB), nothing to do.</H1>">>${VNSTATI_HTML}
else
    for interface in $interfaces; do
        iface_jump="$iface_jump <A HREF=\"#$interface\">$interface</A>"
    done
    echo "<TABLE BORDER=\"0\" WIDTH=\"100%\">">>${VNSTATI_HTML}
    for interface in $interfaces; do
        echo "<TR>">>${VNSTATI_HTML}
        echo "<TH COLSPAN=\"$outputs_count\" ALIGN=\"center\" BGCOLOR=\"#DDDDDD\">">>${VNSTATI_HTML}
        echo "<A NAME=\"$interface\">">>${VNSTATI_HTML}
        echo "<DIV>Interface <STRONG>$interface</STRONG></DIV>">>${VNSTATI_HTML}
        echo "</A>">>${VNSTATI_HTML}
        echo "</TH>">>${VNSTATI_HTML}
        echo "</TR>">>${VNSTATI_HTML}
        echo "<TR ALIGN=\"center\" VALIGN=\"top\">">>${VNSTATI_HTML}
        for output in $VNSTATI_OUTS; do
            echo "<TD>">>${VNSTATI_HTML}
            case  $output in
                h) image_type="Hourly";;
                d) image_type="Daily";;
                m) image_type="Monthly";;
                t) image_type="Top 10";;
                s|hs|vs) image_type="Summary";;
                *) image_type="Unknown $output";;
            esac         
            echo "<DIV>$image_type</DIV>">>${VNSTATI_HTML}
            image=vnstat_${interface}_${output}.png
            $VNSTATI_BIN ${VNSTATI_CMD} --dbdir ${VNSTAT_DB} --iface $interface --output ${VNSTATI_OUT}/${image} -${output} 
            echo "<IMG SRC=\"$image\" ALT=\"$interface $image_type\"/>">>${VNSTATI_HTML}
            echo "</TD>">>${VNSTATI_HTML}
        done
        echo "</TR>">>${VNSTATI_HTML}
        echo "<TR>">>${VNSTATI_HTML}
        echo "<TD COLSPAN=\"$outputs_count\" ALIGN=\"center\" BGCOLOR=\"#E9E9E9\">">>${VNSTATI_HTML}
        echo "<DIV>Jump to:$iface_jump</DIV>">>${VNSTATI_HTML}
        echo "</TD>">>${VNSTATI_HTML}
        echo "</TR>">>${VNSTATI_HTML}
        echo "<TR><TD><P><BR></P></TD></TR>">>${VNSTATI_HTML}
    done
    echo "</TABLE>">>${VNSTATI_HTML}
fi
echo "</FONT>">>${VNSTATI_HTML}
echo "</BODY>">>${VNSTATI_HTML}
echo "</HTML>">>${VNSTATI_HTML}
exit 0
# Done

Następnie należy nadać odpowiednie uprawnienia do skryptu, wydając polecenie:

chmod 700 /bin/vnstati_make.sh

Skrypt można uruchamiać cyklicznie przez cron np. co 15 miniut. Edycja:

crontab -e

i dodajemy dwie linie:

*/15 * * * * /usr/bin/vnstat -u
*/15 * * * * /bin/vnstati_make.sh

Jeżeli serwer uhttpd i pakiety vnstat,vnstati nie są jeszcze zainstalowane należy wydać polecenie:

opkg update
opkg install uhttpd vnstat vnstati
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
/etc/init.d/vnstat enable
/etc/init.d/vnstat start
 

* oczywiście pakiety te należy skonfigurować według swoich potrzeb.

Aby skrypt zbudował portal od razu należy wydać polecenie:

/bin/vnstati_make.sh

Teraz wystarczy wpisać w przeglądarce adres routera i scieżkę np.:

http://192.168.1.1/vnstat
install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

2

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Wrzuciłbyś jakieś screeny jak to w ogóle wygląda?

3 (edytowany przez zdzichu6969 2013-03-24 14:14:39)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

http://gruchaa.us.to/vnstat
U siebie pozwoliłęm sobie lekko zmodyfikować dla własnych potrzeb

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

4

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Charset nie jest zdefiniowany, a polskie litery używasz...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

U mnie się nie sypie nic smile

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

6

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Bo używasz windowsa i całkiem przypadkiem masz znaki w windows-1250

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez zdzichu6969 2013-03-24 16:32:04)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Ok, poźniej dodam kodowanie do dokumentu

Zrobiłem

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

8

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Koledzy chciałbym uruchomić sobie te statystyki ale nie wiem ile poszczególne pakiety i dane zajmą miejsca (nie używam jeszcze extroot). Czy ktoś byłby w stanie orientacyjnie podać wymagane miejsce do instalacji wszystkich niezbędnych pakietów do uruchomienia tych statystyk?

9 (edytowany przez manguscik 2015-08-14 09:04:09)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Panowie zainstalowałem vnstat ale brak pliku vnstat.config mimo ze odinstalowałem i instalowałem ponownie czy ktoś mogłby mi wkleic jego zawartość

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

10

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

/etc/vnstat.conf?
/etc/config/vnstat?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

w sumie to brakuje obu ale najważniejszy jest /etc/vnstat.conf? bo tamten powinien mi się sam stworzyć po wybraniu interfejsu. Ale profilaktycznie poproszę obu.

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

12

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

To odinstaluj i zainstaluj pakiet jeszcze raz.Bo ona są w pakiecie...

/usr/bin/vnstat chociaż masz?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Ten plik  /usr/bin/vnsta mam robiłem odinstaluj i instaluj to już dwa razy i nie dodaje mi plików config

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

14

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Jaki system i czy pakiet był z repo?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

OpenWrt Chaos Calmer 15.05 / LuCI (git-15.196.77355-69fd4f1)  twoja kompilacja i pobieranie http://downloads.openwrt.org/chaos_calm … ar71xx.ipk.

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

16

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Świetnie. Ale ty instalujesz vnstati a nie vnstat. Nie ten pakiet zainstalowałeś.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17 (edytowany przez manguscik 2015-08-14 09:42:09)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

tzn sie wkleiłem bardziej aby pokazać scieszkę repo bo instaluje oba naraz opkg install vnstat vnstati.

Teraz zrobiłem tak i wywala bład:

ati.
root@OpenWrt:~#  opkg install  --force-reinstall vnstat vnstati
Removing package vnstat from root...
sed: /etc/vnstat.conf: No such file or directory
Error: No PidFile set in vnstat.conf
You can force removal of packages with failed prerm scripts with the option:
        --force-remove
Removing package vnstati from root...
Package vnstat (1.12-1) installed in root is up to date.
Installing vnstati (1.12-1) to root...
Downloading http://downloads.openwrt.org/chaos_calm … ar71xx.ipk.
Configuring vnstati.
Collected errors:
* pkg_run_script: package "vnstat" prerm script returned status 1.
* opkg_remove_pkg: not removing package "vnstat", prerm script failed

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

18

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Ehh, odinstaluj normalnie pakiet, wywal wszystko i dopiero zainstaluj, a nie kombinujesz jak koń po górę. Nie usunął w ogóle pakietu vnstat bo buntuje się ze plików nie ma.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19 (edytowany przez manguscik 2015-08-14 10:06:47)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Cezary ja już nie wiem co jest nie tak robię to tak:

opkg remove vnstat
Removing package vnstat from root...
sed: /etc/vnstat.conf: No such file or directory
Error: No PidFile set in vnstat.conf
You can force removal of packages with failed prerm scripts with the option:
        --force-remove
No packages removed.
Collected errors:
* pkg_run_script: package "vnstat" prerm script returned status 1.
* opkg_remove_pkg: not removing package "vnstat", prerm script failed


I teraz pytanie czy usunęło mi vnstat aby zainstalować ponownie ?

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

20

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

No packages removed. Nie.

zrób rm /usr/lib/opkg/info/vnstat*.prerm i jeszcze raz "usuń".

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21 (edytowany przez manguscik 2015-08-14 10:35:36)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

dalej nic

root@OpenWrt:~# /usr/lib/opkg/info/vnstat*.prerm
sed: /etc/vnstat.conf: No such file or directory
Error: No PidFile set in vnstat.conf

Zawsze pluje się o plik vnstat.conf

Cezary podaj mi jego zawartość do wklejenia może to pomorze smile

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

22

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

rm /usr/lib/opkg/info/vnstat*.prerm

a nie wykonanie tego pliku. Zawartość masz w pakiecie, ale masz popsutą instalację. Nie nie półśrodki tylko zrób to "dobrze".

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23 (edytowany przez manguscik 2015-08-14 10:53:07)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Pakietu już nie ma ale nadal wywaliło błędy ale to już o braku pliku smile

root@OpenWrt:~# opkg remove vnstat
Removing package vnstat from root...
Not deleting modified conffile /etc/config/vnstat.
Not deleting modified conffile /etc/vnstat.conf.
Collected errors:
* file_sha256sum_alloc: Failed to open file /etc/vnstat.conf: No such file or d


Usunąłem ręcznie jeszcze /etc/config/vnstat ponowna instalacja i działa big_smile

Wielkie dzięki Cezary smile

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

24

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

touch /etc/vnstat.conf zrób.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25 (edytowany przez manguscik 2015-08-27 08:20:52)

Odp: VNSTAT – Portal WWW ze statystykami interfejsów

Czy ktoś z was próbował zrobić statystyki wyświetlane w PHP ? korzystając z tej strony http://www.sqweek.com/sqweek/?p=1

BO mi coś nie wychodzi bo jak zmienię w pliku congif.php interfejs jaki mnie interesuje

// list of network interfaces monitored by vnStat
    $iface_list = array('eth0', 'sixxs');

na eth0.2 to wywala mi błąd :

Warning: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /www1/vnstat.php on line 140

Fatal error: strftime(): Timezone database is corrupt - this should *never* happen! in /www1/vnstat.php on line 140


Macie może jakieś pomysły jak to uugryść?


I jeszcze jedna rzecz w config.php jest taki wpis:

// You can generate vnstat dumps with the command:
    //   vnstat --dumpdb -i $iface > /path/to/data_dir/vnstat_dump_$iface
    //
    $vnstat_bin = '/usr/bin/vnstat';
    $data_dir = './dumps';
czy $data_dir =   podać lokalizację bazy czy nie ma potrzeby

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.