Witam, próbuję zrobić sobie statystyki w lms i tak mnie zastanawia pewna kwestia. W dokumentacji mam napisane, że pobieranie statystyk z pliku po przez np.: demon traffic i tworzenie pliku ze statystykami powinny być robione raz na powiedzmy 15 minut.
W cronie ustawiam aby statystyki zapisywały się do pliku co 15 minut i co 15 minut ustawiam aby demon traffic pobierał dane z tego pliku. I teraz jaką mam pewność, że najpierw zrobi się plik z danymi a dopiero później zostaną one pobrane?
Łukasz Rostalski wrote:
Witam, próbuję zrobić sobie statystyki w lms i tak mnie zastanawia pewna kwestia. W dokumentacji mam napisane, że pobieranie statystyk z pliku po przez np.: demon traffic i tworzenie pliku ze statystykami powinny być robione raz na powiedzmy 15 minut.
W cronie ustawiam aby statystyki zapisywały się do pliku co 15 minut i co 15 minut ustawiam aby demon traffic pobierał dane z tego pliku. I teraz jaką mam pewność, że najpierw zrobi się plik z danymi a dopiero później zostaną one pobrane?
Akurat w module traffic masz opcję begin_command, w niej ustawiasz komendę generującą plik. Do da ci pewnośc, że plik zostanie wygenerowany tuż przed jego wczytaniem.
W dniu 2010.04.15 11:59, A.L.E.C pisze:
Akurat w module traffic masz opcję begin_command, w niej ustawiasz komendę generującą plik. Do da ci pewnośc, że plik zostanie wygenerowany tuż przed jego wczytaniem.
Faktycznie, zasugerowałem się wpisem: "Więcej informacji (w tym jak utworzyć taki plik) można znaleźć w rozdziale dotyczącym lms-traffic." i od razu tam przeskoczyłem. Dzięki.
Zrobiłem taki mały skrypt, który zapisuje do pliku dane dla potrzeb statystyk. Mile widziane sugestie jeżeli da się to zrobić prościej.
#### #!/bin/bash
#zerujemy plik cp /dev/null traffic.log
#pobieramy adresy, ktore nas interesuja for i in `cat /etc/internet/adresyip | cut -d'#' -f1` do IPADDR=`echo $i | cut -d';' -f1`
#pobieramy dane z ipt dla konkretnego ip i wrzucamy do pliku cat /proc/net/ipt_account/all | grep -w "$IPADDR" | awk '{printf ("%s %.0f %.0f\n",$3,$6/1024,$12/1024);}' >> traffic.log
done
#zerujemy liczniki echo "reset" > /proc/net/ipt_account/all ####
mam podobne rozwiazanie tyle że nie resetuje liczników bo to ciągnie za sobą minimalną ale jednak utratę pewnej ilości danych mój skryp odejmuje poprzednią wartość licznika od aktualnej wartość licznika i wynik dodaje do bazy... zastanawiam się czemu dzielisz $6/1024 i $20/1024(bo zakładam że nie $12 ale $20)
przecież lms przyjmuje dane w bajtach a nie kilobajtach i z tego co widzę chyba ze źle widzę ipt podaje w bajtach...
W dniu 2010-04-15 12:58, Łukasz Rostalski pisze:
W dniu 2010.04.15 11:59, A.L.E.C pisze:
Akurat w module traffic masz opcję begin_command, w niej ustawiasz komendę generującą plik. Do da ci pewnośc, że plik zostanie wygenerowany tuż przed jego wczytaniem.
Faktycznie, zasugerowałem się wpisem: "Więcej informacji (w tym jak utworzyć taki plik) można znaleźć w rozdziale dotyczącym lms-traffic." i od razu tam przeskoczyłem. Dzięki.
Zrobiłem taki mały skrypt, który zapisuje do pliku dane dla potrzeb statystyk. Mile widziane sugestie jeżeli da się to zrobić prościej.
#### #!/bin/bash
#zerujemy plik cp /dev/null traffic.log
#pobieramy adresy, ktore nas interesuja for i in `cat /etc/internet/adresyip | cut -d'#' -f1` do IPADDR=`echo $i | cut -d';' -f1`
#pobieramy dane z ipt dla konkretnego ip i wrzucamy do pliku cat /proc/net/ipt_account/all | grep -w "$IPADDR" | awk '{printf ("%s %.0f %.0f\n",$3,$6/1024,$12/1024);}' >> traffic.log
done
#zerujemy liczniki echo "reset" > /proc/net/ipt_account/all ####
W dniu 2010.04.17 15:17, Marcin S. pisze:
mam podobne rozwiazanie tyle że nie resetuje liczników bo to ciągnie za sobą minimalną ale jednak utratę pewnej ilości danych mój skryp odejmuje poprzednią wartość licznika od aktualnej wartość licznika i wynik dodaje do bazy... zastanawiam się czemu dzielisz $6/1024 i $20/1024(bo zakładam że nie $12 ale $20)
przecież lms przyjmuje dane w bajtach a nie kilobajtach i z tego co widzę chyba ze źle widzę ipt podaje w bajtach...
Masz rację u siebie zmieniłem, dlaczego $20? U mnie $6 to bytes_src a $12 to bytes_dst
cat all |grep -w "IP" ip = IP bytes_src = 11831 packets_src = 287 bytes_dst = 44327 packets_dst = 281 time = 2
W dniu 2010.04.15 11:59, A.L.E.C pisze: Akurat w module traffic masz opcję begin_command, w niej ustawiasz komendę generującą plik. Do da ci pewnośc, że plik zostanie wygenerowany tuż przed jego wczytaniem.
Faktycznie, zasugerowałem się wpisem: "Więcej informacji (w tym jak utworzyć taki plik) można znaleźć w rozdziale dotyczącym lms-traffic." i od razu tam przeskoczyłem. Dzięki.
Zrobiłem taki mały skrypt, który zapisuje do pliku dane dla potrzeb statystyk. Mile widziane sugestie jeżeli da się to zrobić prościej.
#### #!/bin/bash
#zerujemy plik cp /dev/null traffic.log
#pobieramy adresy, ktore nas interesuja for i in `cat /etc/internet/adresyip | cut -d'#' -f1` do IPADDR=`echo $i | cut -d';' -f1`
#pobieramy dane z ipt dla konkretnego ip i wrzucamy do pliku cat /proc/net/ipt_account/all | grep -w "$IPADDR" | awk '{printf ("%s %.0f %.0f\n",$3,$6/1024,$12/1024);}' >> traffic.log
done
#zerujemy liczniki
echo "reset" >> /proc/net/ipt_account/all
####
probuje sobie odpalic statystyki wg powyzszego schematu ale mam problem:
iptables -A statistics -m account --aaddr 192.168.0.0/24 --aname ppp6 --ashort iptables: Invalid argument. Run `dmesg' for more information.
w sysglogu:
kernel: ip_tables: account.0 match: invalid size 88 (kernel) != (user) 84
coz to moze byc?:>
W dniu 28.03.2013 11:55, JOYNET napisał(a):
W dniu 2010.04.15 11:59, A.L.E.C pisze: Akurat w module traffic masz opcję begin_command, w niej ustawiasz komendę generującą plik. Do da ci pewnośc, że plik zostanie wygenerowany tuż przed jego wczytaniem.
Faktycznie, zasugerowałem się wpisem: "Więcej informacji (w tym jak utworzyć taki plik) można znaleźć w rozdziale dotyczącym lms-traffic." i od razu tam przeskoczyłem. Dzięki.
Zrobiłem taki mały skrypt, który zapisuje do pliku dane dla potrzeb statystyk. Mile widziane sugestie jeżeli da się to zrobić prościej.
#### #!/bin/bash
#zerujemy plik cp /dev/null traffic.log
#pobieramy adresy, ktore nas interesuja for i in `cat /etc/internet/adresyip | cut -d'#' -f1` do IPADDR=`echo $i | cut -d';' -f1`
#pobieramy dane z ipt dla konkretnego ip i wrzucamy do pliku cat /proc/net/ipt_account/all | grep -w "$IPADDR" | awk '{printf ("%s %.0f %.0f\n",$3,$6/1024,$12/1024);}' >> traffic.log
done
#zerujemy liczniki
echo "reset" >> /proc/net/ipt_account/all
####
probuje sobie odpalic statystyki wg powyzszego schematu ale mam problem: iptables -A statistics -m account --aaddr
192.168.0.0/24 --aname ppp6 --ashort iptables: Invalid argument. Run `dmesg' for more information.
w sysglogu: kernel: ip_tables: account.0 match: invalid size 88
(kernel) != (user) 84
coz to moze byc?:>
Niezgodność między wersją ipt_account w jądrze i iptaccount w przestrzeni użytkownika (czyli module iptables).
participants (5)
-
A.L.E.C
-
JOYNET
-
Marcin S.
-
Tomasz Chiliński
-
Łukasz Rostalski