26

Re: Vnstat на Keenetic

Zyxmon пишет:

AndreyUA, может быть при загрузке кинетика и первом запуске скрипта (start) еще не создан нужный интерфейс для мониторинга? По хорошему нужно бы подправить скрипты, чтобы не было двойного старта (start и restart). А в скрипте запуска vnstat, возможно, следует проверять, есть ли нужный интерфейс.

PS Нужно использовать или запуск из cron, или vnstatd. Оба не стоит.

В том то и дело, что по другому не работает, уличная магия smile



27

Re: Vnstat на Keenetic

Ничего понять не могу. В логах

24 окт 21:31:10    vnstatd[1576]    vnStat daemon 1.11 started.
24 окт 21:31:10    vnstatd[1575]    vnStat daemon 1.11 started.
24 окт 21:31:10    vnstatd[1575]    Monitoring: ra0 eth2.2 eth2.1 br0
24 окт 21:31:10    vnstatd[1576]    Error: pidfile lock failed, exiting.

Вручную запускается без проблем...



28

Re: Vnstat на Keenetic

AndreyUA пишет:

Ничего понять не могу. В логах

Не должно так быть. Разберетесь - напишите. Глупость какая-нибудь.
А по поводу vnstad и cron нужно что-либо одно. Я бы попробовал выкинуть cron, а в php скрипт перед вызовом "$vnstat_bin --dumpdb -i $iface" вызвал бы exec("$vnstat_bin -u -i $iface").



29

Re: Vnstat на Keenetic

Zyxmon пишет:
AndreyUA пишет:

Ничего понять не могу. В логах

Не должно так быть. Разберетесь - напишите. Глупость какая-нибудь.
А по поводу vnstad и cron нужно что-либо одно. Я бы попробовал выкинуть cron, а в php скрипт перед вызовом "$vnstat_bin --dumpdb -i $iface" вызвал бы exec("$vnstat_bin -u -i $iface").

Не могу понять. Почему-то стартует 2 раза, хотя не должно, там же проверка в скрипте. Вручную правильно работает... Уже сделал

case "$1" in
        start)
        if  [ -f $VPID ] && [ -d /proc/`cat $VPID` ]
        then
        echo vnstatd already running
        else
        start_daemon
        sleep 10
        fi
;;


30

Re: Vnstat на Keenetic

AndreyUA пишет:

Почему-то стартует 2 раза

Может быть два скрипта стартуют его? C разными номерами? И pid файлы разные в скриптах.



31

Re: Vnstat на Keenetic

Zyxmon пишет:
AndreyUA пишет:

Почему-то стартует 2 раза

Может быть два скрипта стартуют его? C разными номерами? И pid файлы разные в скриптах.

Нет, скрипт стартует одинаковый два раза.

start_daemon() {
logger $VBIN $VPID
    $VBIN -d -p $VPID
}
case "$1" in
    start)
    if [ -f $VPID  ] && [ -d /proc/`cat $VPID` ]
    then
    echo vnstatd already running
    else
    logger "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
    start_daemon
    sleep 10
    fi
;;
24 окт 22:53:13    root    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
24 окт 22:53:13    root    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
24 окт 22:53:13    root    /media/DISK_A1/system/usr/sbin/vnstatd /media/DISK_A1/system/var/lock/vnstat.pid
24 окт 22:53:13    root    /media/DISK_A1/system/usr/sbin/vnstatd /media/DISK_A1/system/var/lock/vnstat.pid
24 окт 22:53:17    vnstatd[1580]    vnStat daemon 1.11 started.
24 окт 22:53:17    vnstatd[1580]    Monitoring: ra0 eth2.2 eth2.1 br0
24 окт 22:53:17    vnstatd[1582]    vnStat daemon 1.11 started.
24 окт 22:53:17    vnstatd[1582]    Error: pidfile lock failed, exiting.

Отредактировано AndreyUA (2011-10-24 23:58:47)



32

Re: Vnstat на Keenetic

Похоже диск A1 два раза одновременно монтируется. В /bin/automount.sh имеем

if [ -x $INIT ] && [ "$DISK_NAME" = "DISK_A1" ] && [ ! -f $LOCK_APPS ]; then
                $INIT start automount 2> /dev/null &

Вызов automount.sh определяется в /etc/mdev.conf

А такого быть не должно. Может вызов logger повыше в ext_init.sh повызывать? Я один раз так "бяку" отловил.



33

Re: Vnstat на Keenetic

Zyxmon пишет:

Похоже диск A1 два раза одновременно монтируется. В /bin/automount.sh имеем

if [ -x $INIT ] && [ "$DISK_NAME" = "DISK_A1" ] && [ ! -f $LOCK_APPS ]; then
                $INIT start automount 2> /dev/null &

Вызов automount.sh определяется в /etc/mdev.conf

А такого быть не должно. Может вызов logger повыше в ext_init.sh повызывать? Я один раз так "бяку" отловил.

Подобавлял

17 окт 00:00:17    root    starting
17 окт 00:00:17    root    restarting
17 окт 00:00:18    root    /media/DISK_A1/system/etc/init.d/S01swap starting
17 окт 00:00:19    kernel    Adding 131064k swap on /media/DISK_A1/system/.swapfile. Priority:-1 extents:1 across:131064k
17 окт 00:00:19    root    /media/DISK_A1/system/etc/init.d/S02cron starting
17 окт 00:00:19    udhcpd[1000]    Found static lease ip address: 192.168.1.3
17 окт 00:00:19    udhcpd[1000]    Sending ACK to 192.168.1.3
17 окт 00:00:21    root    /media/DISK_A1/system/etc/init.d/S10dropbear starting
17 окт 00:00:23    dropbear[1545]    Running in background
17 окт 00:00:23    root    /media/DISK_A1/system/etc/init.d/S29php starting
17 окт 00:00:23    root    /media/DISK_A1/system/etc/init.d/S50lighttpd starting
17 окт 00:00:23    root    /media/DISK_A1/system/etc/init.d/S75vnstatd starting
17 окт 00:00:30    httpd[1488]    User logged in (192.168.1.3/'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1')
17 окт 00:00:31    dropbear[1545]    premature exit: Terminated by signal
17 окт 00:00:31    root    /media/DISK_A1/system/etc/init.d/S01swap starting
17 окт 00:00:31    kernel    Adding 131064k swap on /media/DISK_A1/system/.swapfile. Priority:-2 extents:1 across:131064k
17 окт 00:00:31    root    /media/DISK_A1/system/etc/init.d/S02cron starting
17 окт 00:00:31    root    /media/DISK_A1/system/etc/init.d/S10dropbear starting
17 окт 00:00:31    dropbear[1589]    Running in background
17 окт 00:00:31    root    /media/DISK_A1/system/etc/init.d/S29php starting
17 окт 03:00:31    root    /media/DISK_A1/system/etc/init.d/S50lighttpd starting
17 окт 03:00:31    root    /media/DISK_A1/system/etc/init.d/S75vnstatd starting

Скрипт ext_init.sh стартует дважды

17 окт 00:00:17    root    starting
17 окт 00:00:17    root    restarting

ИМХО надо править ext_init на предмет двойного запуска.



34

Re: Vnstat на Keenetic

AndreyUA пишет:

Скрипт ext_init.sh стартует дважды

Это уже обсуждали. При загрузке кинетика первый раз при монтировании диска, второй раз из /bin/init.sh

http://forum.zyxmon.org/topic95-dvoinoi … istva.html

Замечу, что у vnstad время старта во второй раз на 8 секунд позже. В предыдущих логах времена совпадали.

17 окт 00:00:23    root    /media/DISK_A1/system/etc/init.d/S75vnstatd starting
....
17 окт 03:00:31    root    /media/DISK_A1/system/etc/init.d/S75vnstatd starting


35

Re: Vnstat на Keenetic

Zyxmon пишет:

Замечу, что у vnstad время старта во второй раз на 8 секунд позже. В предыдущих логах времена совпадали.

И он запустился нормально в этом случае.



36

Re: Vnstat на Keenetic

AndreyUA пишет:
Семён пишет:

Если инет через VPN, то в файле  /media/DISK_A1/system/www/vnstat/config.php правим
$iface_list = array('ppp0','eth2.2','eth2.1','ra0', 'br0');
$iface_title['ppp0'] = 'WAN';
$iface_title['eth2.2'] = 'MAN';
$iface_title['eth2.2'] = 'WAN';
$iface_title['eth2.1'] = 'Ethernet';
$iface_title['ra0'] = 'Wi-Fi';
$iface_title['br0'] = 'LAN';

а если у нас прямой интернет (от провайдера) это надо закоментировать, (как правильно закоментировать минусом или// ?)

Если у вас прямой интернет, то ничего трогать не нужно. Должно быть так

$iface_list = array('eth2.2','eth2.1','ra0', 'br0');
$iface_title['eth2.2'] = 'WAN';
$iface_title['eth2.1'] = 'Ethernet';
$iface_title['ra0'] = 'Wi-Fi';
$iface_title['br0'] = 'LAN';

Комментировать решеткой, если что.

В случае, когда Keenetic подключен к провайдеру по WiFi, интерфейс eth2.2 вообще недоступен и не отображается в списке, выводимом командой # ifconfig -a. При этом доступен интерфейс с именем eth2.

Методом научного тыка выяснил, что объемы собираемого трафика по интерфейсу eth2 > объемов eth 2.1 > объемов br0

Кто-нибудь может наукообразно объяснить схему маршрутизации трафика между логическими интерфейсами Keenetic-а?

Отредактировано Megalom (2011-11-16 19:04:53)



37

Re: Vnstat на Keenetic

Спасибо за замечательный пакет.

Хочу добавить пару моментов:
1) у меня путь к vnstat немного отличаются от указанного выше (задание для cron), кому то это может помочь).

/media/DISK_A1/system/usr/bin/vnstat

2) vnstat по всей видимости неправильно отрабатывает извлечение и вставку usb-3g свистка (или простое его отваливание). Т.е. он показывает что в этот час я входящих 3.62 GB, а исходящих 3.95 GB (!!!???). Интересно что эти цифры подозрительно рядом с 4 Гб, т.е. MAXDWORD. Т.е. по всей видимости происходит нет банальной проверки на то что получаемая разность меньше нуля. Есть ли возможность это поправить ?



38

Re: Vnstat на Keenetic

Работаю с vnstat через командную строку. Не нашел на просторах man, как создать запрос по определенному дню в разрезе часов. Что-то типа такого
vnstat -d 16.02.2012 -h -i ra0
Такое возможно вообще?



39

Re: Vnstat на Keenetic

Что такое может быть?
vnstst стартует из init.d c ошибкой на время, почему-то время на самом кинетике сбрасывается на 
2012.01.17 00:00:00, далее в процессе загрузки отрабатывает NTP и время становиться нормальное
Если после загрузки запустить vnstat то все ок.
Что делать?

[2012.01.17 00:00:18] vnStat daemon 1.11 started.
[2012.01.17 00:00:18] Daemon running with pid 1495.
[2012.01.17 00:00:18] Monitoring: ra0 br0 eth2.2
[2012.01.17 00:00:18] Error: Interface "ra0" has previous update date too much in the future, exiting.
[2012.01.17 00:00:21] vnStat daemon 1.11 started.
[2012.01.17 00:00:21] Daemon running with pid 1666.
[2012.01.17 00:00:21] Monitoring: ra0 br0 eth2.2
[2012.01.17 00:00:21] Error: Interface "ra0" has previous update date too much in the future, exiting.
[2012.03.15 14:59:45] vnStat daemon 1.11 started.
[2012.03.15 14:59:45] Daemon running with pid 1691.
[2012.03.15 14:59:45] Monitoring: ra0 br0 eth2.2

Отредактировано andrey__s (2012-03-15 14:59:30)



40

Re: Vnstat на Keenetic

andrey__s пишет:

vnstst стартует из init.d c ошибкой на время

vnstat стартует до того, как проработала синхрониция времени на кинетике. Еще есть и такая проблема
http://forum.zyxmon.org/topic95-dvoinoi … istva.html
Следует модифицировать скрипт запуска vnstat - проверять в нем наличие (или содержание) файла
/tmp/zyntp.log



41

Re: Vnstat на Keenetic

Поправил скрипт, все гуд, мож кому надо

/media/DISK_A1/system/root # cat ../etc/init.d/S12vnstatd
#!/bin/sh

MOUNT="/media/DISK_A1/system"
VBIN="$MOUNT/usr/sbin/vnstatd"
VPID="$MOUNT/var/run/vnstat.pid"

export PATH=$MOUNT/bin:$MOUNT/sbin:$MOUNT/usr/bin:$MOUNT/usr/sbin:/sbin:/usr/sbi                                                                             n:/bin:/usr/bin
export LD_LIBRARY_PATH=$MOUNT/lib:$MOUNT/usr/lib:/lib:/usr/lib

daemon_status ()
{
        [ -f $VPID ] && [ -d /proc/`cat $VPID` ]
}

start_daemon() {

       # Set time
        eval `flash TIMEZONE NTP_SERVER`
        echo $TIMEZONE | cut -f1 -d ' ' > /etc/TZ
        zyntp -rfl -t 5 -c 12 $NTP_SERVER
        $VBIN -d -p $VPID
}

stop_daemon() {
        kill `cat $VPID`
        ### rm -f $VPID
}

reload_daemon() {
        kill -HUP `cat $VPID`
}

case "$1" in
        start)
                if daemon_status
                then
                        echo vnstatd already running
                else
                        start_daemon
                fi
                ;;
        stop)
                stop_daemon
                ;;
        restart)
                stop_daemon
                sleep 1
                start_daemon
                ;;
        reload)
                reload_daemon
                ;;
        status)
                if daemon_status
                then
                        echo Running
                else
                        echo Not running
                fi
                ;;
        link_up)
                ;;
        ppp_up)
                ;;
        link_down)
                ;;
        ppp_down)
                ;;
        *)
                echo "Usage: $0 {start|stop|reload|restart|status|link_up|link_d                                                                             own|ppp_up|ppp_down}"
                ;;
esac


42

Re: Vnstat на Keenetic

andrey__s, используйте тег [ code ] для листингов. Если этот скрипт будет вызван до поднятия wan интерфейса, то ничего не выйдет.