Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest niedziela, 22 czerwca 2025, 14:21

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 6 ] 
Autor Wiadomość
Post: sobota, 18 lutego 2006, 20:16 
Offline
Użytkownik

Rejestracja: niedziela, 5 lutego 2006, 21:27
Posty: 251
witam wszystkich probowalem zainstalowac te statystyki ze strony http://www.wiki.nnd.freesco.pl/index.php/Statystyki zedytowalem odpowiednie pliki odnosnie opcji z APACHE ale podczas uruchomienia pokazuje mi cos takiego
: [/] [] ()
[root@NND stat]# ./rc.stat start
[root@NND stat]# /usr/stat/statmat: line 141: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 221: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 222: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 224: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 226: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na `/var/www/stats/stat.tmp': Nie ma takiego pliku ani katalogu


podam jeszcze dwa pliki ktore zedytowalem i plik statmat prosilbym o jakas pomoc i wyrozumialosc poniewaz nie jestem dobry w linux-sie :D
plik il_pol
: [/] [] ()
!/bin/bash
# Obliczanie ilosci polaczen
# Zciech
VER=0.2a-05.04.18

while :; do
echo "<head>
<meta HTTP-EQUIV=Refresh CONTENT=30>
<meta HTTP-EQUIV=Cache-Control content=no-cache>
<meta HTTP-EQUIV=Pragma CONTENT=no-cache>
<meta HTTP-EQUIV=Content-Type CONTENT=text/html; charset=iso-8859-2>
</head>">/tmp/ilosc_html
echo "<center><b><font color=#000080 face=Verdana>Statystyka ilosci polaczen</font></b></p>Godzina: ">>/tmp/ilosc_html
echo `date +%H:%M`>>/tmp/ilosc_html
echo '<br><br></center><body style="background-color: e0e0e0"><center>'>>/tmp/ilosc_html
echo '<table border=1 cellspacing=0 cellpadding=0 style="background-color: FFFFDE">'>>/tmp/ilosc_html
>/tmp/il_pol
echo "<tr><center><td><b>&nbsp IP &nbsp<b></td><td><b>&nbsp RAZEM &nbsp</b></td><td><b>&nbsp TCP &nbsp</b></td><td><b>&nbsp TCP EST.&nbsp</b></td><td><b>&nbsp UDP &nbsp</b></td></center><tr>">>/tmp/ilosc_html
sed -n /^/P /proc/net/ip_conntrack | while read a1 a2 a3 a4 a5 a6 a7 a8;do
    if [ $a1 = "tcp" ]; then
   IP=$a5
   echo $a5"-" "tcp"$a4  >>/tmp/il_pol
   elif [ $a1 = "udp" ]; then
   echo $a4"-" "udp"  >>/tmp/il_pol
    fi
done
sed -n /^/P /etc/hosts|while read IP Nazwa;do
    ile=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|wc -l`
    iletcp=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|grep tcp |wc -l`
    ileudp=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|grep udp |wc -l`
    ileest=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|grep tcpES |wc -l`
    c=black
    if [ $ile -gt 200 ];then
   echo `date`" : "$IP " mial "$ile "polaczen">>/var/log/maskarada
   c="red"
   elif  [ $ile -gt 100 ];then
       c=blue
    fi   
    if [ $ile -gt 0 ];then
    echo "<tr><td><b>&nbsp $IP &nbsp</b></td><font color=$c><td>&nbsp $ile &nbsp</td><td>&nbsp $iletcp &nbsp</td><td>&nbsp $ileest &nbsp</td><td>&nbsp $ileudp &nbsp</td></font><tr>">>/tmp/ilosc_html
    fi
done
    cat << !EOF >>/tmp/ilosc_html
    </LEFT></TABLE>Log polaczen ponad 200: /var/log/maskarada
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR VALIGN=top>
    <TD WIDTH=150 ALIGN=LEFT><FONT FACE="Arial,Helvetica" SIZE=2>version $VER</FONT></TD>
    <TD WIDTH=200 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
    <A HREF="mailto:zciech@wp.pl">&lt;Zciech&gt;</A>
    <A HREF="http://reliserv.pl/nnd">&lt;http://reliserv.pl/nnd&gt;</A></TD>
    </TR><TABLE></CENTER></BODY>
!EOF
mv /tmp/ilosc_html /home/httpd/html/stats/ilosc.html
rm /tmp/il_pol
sleep 30
done


plik statmat.conf

: [/] [] ()
#konfiguracja statmat  - monitor transferu dla duzych dystrybucji


#IP twojego serwera
ipserwera=192.168.0.1


# Linia od ktorej w /etc/hosts znajduja sie adresy hostow wewnetrznych
# 1 - w pierwszej, 2 - w drugiej itd... (licza sie tylko linie z adresami IP)
linia=9


#Sciezka gdzie beda zapisywane pliki loga oraz pliki html
wwwdir=/home/httpd/html/stats/


#Zadna liczba nie bedziewieksza od tej, jesli jest wieksza zostaje zamieniona na jednostke np. 110000 na 11k
podzielnik_stats=10000


#Wyswietlanie tylko hostow ktore maja sciagnieta jakakolwiek ilosc danych w calkowitych, tygodniowych itp  statystykach
tylko_aktywni_stats=1

#Wyswietlanie tylko hostow ktore maja sciagnieta jakakolwiek ilosc danych w dzisiejszych itp  statystykach
tylko_aktywni_dzis=1


#Czas zliczania danych
czas_cyklu=60

#Co ile cykli Monitor ma wyswietlac statystyki tygodniowe miesieczne itp
co_ile_cykli_staty=10


#Nazwy plikow html
stat_name=calkowite.html
statw_name=tygodniowe.html
www_stat=index.html


#Nazwy logow - najlepiej nie zmieniac
dzienne_plik=sdzisiaj.log
dat1_name=scalkowite
dat2_name=stygodniowe


#Tego tez nie ma sensu zmieniac
www_stat_tmp=stat.tmp


oraz plik statmat

: [/] [] ()
#!/bin/bash

#Statystyki transferow na wzor tych z justice by mat1l9s, thx dla v|rusa


#=====konfiguracja=====

. statmat.conf

#path=/var/tmp/
#wwwdir=/usr/local/www/www/
#www_stat=stat.html
#dzienne_plik=sdzisiaj.log
#tylko_aktywni_dzis=1
#czas_cyklu=30
#co_ile_cykli_staty=10
#ipserwera=192.168.0.1
#podsiec=192.168.0.0/24
#www_stat_tmp=stat.tmp
#podzielnik_stats=10000

#=====koniec konfiguracji======

jdn_kb()
{
  if [ $1 -gt 0 ]; then
    if [ $1 -gt $(expr $podzielnik_stats \* 1024) ]; then
      echo "&nbsp;$(expr $1 / 1048576) <font color=black face=courier>GB </font>"
    elif [ $1 -gt $podzielnik_stats ]; then
      echo "&nbsp;$(expr $1 / 1024) <font color=blue face=courier>MB </font>"
    else
      echo "&nbsp;$1 <font color=green face=courier>kB </font>"
    fi
  else echo "&nbsp;0 <font color=green face=courier>kB </font>"
  fi
}

jdn()
{
  if [ $1 -gt 0 ]; then
    if [ $1 -gt $(expr $podzielnik_stats \* 1024) ]; then
      echo "&nbsp;$(expr $1 / 1048576) <font color=blue face=courier>MB </font>"
    elif [ $1 -gt $podzielnik_stats ]; then
      echo "&nbsp;$(expr $1 / 1024) <font color=green face=courier>kB </font>"
    else
      echo "&nbsp;$1 <font color=coral face=courier>&nbsp;B </font>"
    fi
  else echo "&nbsp;0 <font color=coral face=courier>&nbsp;B </font>"
  fi
}

jdn_bit()
{
  if [ $1 -gt 0 ]; then
    if [ $1 -gt $(expr $podzielnik_stats \* 1024) ]; then
      echo "&nbsp;$(expr $1 / 1048576) <font color=blue face=courier>mb/s </font>"
    elif [ $1 -gt $podzielnik_stats ]; then
      echo "&nbsp;$(expr $1 / 1024) <font color=green face=courier>kb/s </font>"
  else
      echo "&nbsp;$1 <font color=coral face=courier>&nbsp;b/s </font>"
    fi
  else echo "&nbsp;0 <font color=coral face=courier>&nbsp;b/s </font>"
  fi
}
               

#kasowanie na wszelki wypadek.

iptables -D FORWARD -j liczenie 2>>/dev/null
iptables -X liczenie 2>>/dev/null
iptables -F liczenie 2>>/dev/null
#for i in `cat /etc/hosts|awk '{print $1}'`; do
#    iptables -D liczenie -d $i -s ! $ipserwera -j ACCEPT 2>>/dev/null;
#    iptables -D liczenie -s $i -d ! $ipserwera -j ACCEPT 2>>/dev/null;
#done

#Inicjacja zliczania i zerowanie licznikow (ew nabijanie licznikow)
   
iptables -N liczenie
    ipeki[0]="Wszyscy"
    dl_h[0]=0; ul_h[0]=0
    dl_dz[0]=0; ul_dz[0]=0
    dl_now[0]=0; ul_now[0]=0
licznik=$(expr 2 - $linia)
for i in `cat /etc/hosts| grep -v "^#"|grep [0123456789] |awk '{print $1}'`; do
    if [ $licznik -ge 1 ];then
          iptables -A liczenie -d $i -j RETURN 2>>/dev/null
   iptables -A liczenie -s $i -j RETURN 2>>/dev/null
   ipeki[$licznik]=$i
   dl_h[$licznik]=0; ul_h[$licznik]=0
   dl_dz[$licznik]=0; ul_dz[$licznik]=0
    fi
    licznik=$(expr $licznik + 1)   
done
iptables -I FORWARD -j liczenie 2>>/dev/null

if [ -f $wwwdir$dzienne_plik ]; then #jesli mamy juz jakies dane to wczytajmy je
  licznik=0
  for i in ${ipeki[*]}; do  #patrzymy czy dla kezdego IP mamy jakies dane, jesli nie (nowy IP), wtedy ustawiamy  0
    linijka=`grep "$i " $wwwdir$dzienne_plik`
    if [ -n "$linijka" ]
    then #wczytujemy te linijke do tablic
      licznik2=0
      for j in $linijka; do
        licznik2=$(expr $licznik2 + 1)
   case $licznik2 in
     2) dl_h[$licznik]=$j ;;
     3) ul_h[$licznik]=$j ;;
     4) dl_dz[$licznik]=$j ;;
     5) ul_dz[$licznik]=$j ;;
   esac
      done
    else dl_h[$licznik]=0; ul_h[$licznik]=0; dl_dz[$licznik]=0; ul_dz[$licznik]=0; fi
    licznik=$(expr $licznik + 1)
  done
fi

#Zliczanie.

h_skasowane=0; dz_skasowane=0

licznik_cyklu=1
while :; do
C1=`/bin/date +%s`
HM=`date +%H:%M`; S=`date +%S`
echo "<html>
<head>
<meta HTTP-EQUIV=Refresh CONTENT=$czas_cyklu>
<meta HTTP-EQUIV=Cache-Control content=no-cache>
<meta HTTP-EQUIV=Pragma CONTENT=no-cache>
<meta HTTP-EQUIV=Content-Type CONTENT=text/html; charset=iso-8859-2>
</head>
<body bgcolor=e0e0e0>
<p align=center><b><font color=#000080 face=verdana>Monitor Transferu</font></b></p>
<p>Czas wygenerowania statystyk - <b>$HM</b><font size=2>:$S</font>  - srednia transferu z ostatnich $czas_cyklu sek.</p>
<p> <a href=../mrtg/index.html> Statystyki MRTG </p>
<p> <a href=nsstats.txt> Statystyki NICE </p>
<p> <a href=ilosc.html> Ilosci polaczen </p>
<center>
<table  border=1 cellspacing=0 cellpadding=0>
<tr align=center><td width=100>IP</td><td width=100>aktualnie downl<br></td><td width=100>aktualnie upl<br></td><td width=100>ostatnia godz.<br>download</td><td width=100>ostatnia godz.<br>upload</td><td width=100>dzienny<br>download</td><td width=100>dzienny<br>upload</td></tr>" > $wwwdir$www_stat_tmp;
licznik=-1
flaga=0
dl_now[0]=0; ul_now[0]=0
for i in `iptables -v -n -x -L -Z liczenie|awk '{print $2}'`; do
    if [ $licznik -ge 1 ]; then
      if [ $flaga -eq 0 ]
        then dl_now[$licznik]=$i; flaga=1; licznik=$(expr $licznik - 1)
        else ul_now[$licznik]=$i; flaga=0;
             dl_now[0]=$(expr ${dl_now[0]} + ${dl_now[$licznik]})
        ul_now[0]=$(expr ${ul_now[0]} + ${ul_now[$licznik]}); fi
    fi
    licznik=$(expr $licznik + 1);
done          
unset dl_now[$(expr $licznik)]  #ostatnia linijka to napis
licznik=0
for i in ${ipeki[*]}; do
  dl_teraz=${dl_now[$licznik]}
  ul_teraz=${ul_now[$licznik]}
  dl_h[$licznik]=$(expr ${dl_h[$licznik]} + $dl_teraz)
  ul_h[$licznik]=$(expr ${ul_h[$licznik]} + $ul_teraz)
  view_dl_dz=$(expr ${dl_dz[$licznik]} + ${dl_h[$licznik]} / 1024)
  view_ul_dz=$(expr ${ul_dz[$licznik]} + ${ul_h[$licznik]} / 1024)
  if [ $view_dl_dz -gt 0 -o $tylko_aktywni_dzis = 0 ]; then
    echo "<tr><td align=left>$i</td><td align=right>`jdn_bit $(expr $dl_teraz \* 8  / $czas_cyklu)`</td><td align=right>`jdn_bit $(expr $ul_teraz \* 8 / $czas_cyklu)`</td><td align=right>`jdn ${dl_h[$licznik]}`</td><td align=right>`jdn ${ul_h[$licznik]}`</td><td align=right>`jdn_kb $view_dl_dz`</td><td align=right>`jdn_kb $view_ul_dz`</td></tr>">>$wwwdir$www_stat_tmp;
  fi
  licznik=$(expr $licznik + 1)
done

  #Zapis/Kasownie licznikow o polnocy
  if [ $HM = "00:00" -o $HM = "00:01" ]; then
    if [ $dz_skasowane = 0 ]; then
      ./statistics update
      licznik=0
#      rm -f $wwwdir$dzienne_plik
      for i in ${ipeki[*]}; do
        dl_dz[$licznik]=0; ul_dz[$licznik]=0
        dl_h[$licznik]=0; ul_h[$licznik]=0
#   echo "$i ${dl_h[$licznik]} ${ul_h[$licznik]} ${dl_dz[$licznik]} ${ul_dz[$licznik]}" >> $wwwdir$dzienne_plik
        licznik=$(expr  $licznik + 1)
      done
      dz_skasowane=1
    fi
  elif [ $HM = "00:02" -o $HM = "00:03" ]
    then if [ $dz_skasowane = 1 ]; then dz_skasowane=0; fi; fi

  #Zapis co godzine
  czas=`date +%M`
#  echo $h_skasowane czas $czas
  if [ $czas = "00" -o $czas = "01" ]; then
    if [ $h_skasowane = 0 ]; then
#     rm -f $wwwdir$dzienne_plik
      licznik=0
      for i in ${ipeki[*]}; do
        dl_dz[$licznik]=$(expr ${dl_dz[$licznik]} + ${dl_h[$licznik]} / 1024 )
        ul_dz[$licznik]=$(expr ${ul_dz[$licznik]} + ${ul_h[$licznik]} / 1024 )
        dl_h[$licznik]=0; ul_h[$licznik]=0
#       echo "$i ${dl_h[$licznik]} ${ul_h[$licznik]} ${dl_dz[$licznik]} ${ul_dz[$licznik]}" >> $wwwdir$dzienne_plik
        licznik=$(expr $licznik + 1)
      done
      h_skasowane=1
    fi
  elif [ $czas = "02" -o $czas = "03" ]
      then if [ $h_skasowane = 1 ]; then h_skasowane=0; fi
  fi

   
  if [ $licznik_cyklu -eq $co_ile_cykli_staty ]; then
    licznik_cyklu=0
    rm -f $wwwdir$dzienne_plik
    licznik=0
    for i in ${ipeki[*]}; do
      echo "$i ${dl_h[$licznik]} ${ul_h[$licznik]} ${dl_dz[$licznik]} ${ul_dz[$licznik]}" >> $wwwdir$dzienne_plik
      licznik=$(expr $licznik + 1)
    done
    ./statistics view &
  fi
  licznik_cyklu=$(expr $licznik_cyklu + 1)
 
 
  echo "</table>">>$wwwdir$www_stat_tmp
  echo "<p> <a href="$stat_name">Statystyki D/M/R i Razem</a><br><a href="$statw_name">Statystyki tygodniowe</a></p>"  >> $wwwdir$www_stat_tmp 
  C2=`/bin/date +%s`
  echo "<p><font size=2>czas wykonania skryptu: $(expr $C2 - $C1) sek.</font></p>" >> $wwwdir$www_stat_tmp

  echo "</body></html>">>$wwwdir$www_stat_tmp


  mv $wwwdir$www_stat_tmp $wwwdir$www_stat
  sleep $(expr $czas_cyklu + $C1 - $C2)

done



do tego dodam iz na stronie gdzie powinien co 5 sec. odswiezac aktualne transfery nic sie nie dzieje :D
a plik stworzylem recznie i tez nic
wykasowalem dla testu wszystkie pliki w katalogu stats tam gdzie generuje pliki html pokazaly sie statystyki niceshapera ilosc polaczen ale index.html wogole sie nie wygenerowal


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 18 lutego 2006, 21:20 
Offline
Użytkownik

Rejestracja: niedziela, 5 lutego 2006, 21:27
Posty: 251
heh jakos poszlo wszystko pokasowalem i krok po kroku zrobilem to tak samo z tym ze teraz nie pokazuje mi w tabeli nazw uzytkownikow z pliku hosts a w statystykach niceshaper sa


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 4 marca 2006, 16:20 
Offline

Rejestracja: piątek, 27 stycznia 2006, 18:28
Posty: 56
1. W skrypcie liczącym ilość połaczeń jest jakiś błąd. Nie pokazuje liczby połaczeń dla ostatniego wpisu w pliku hosts. Wprawdzie dodałem sobie fikcyjny wpis ale są przez to przekłamania w innych statach wykorzystujących hosts.
Czy ktoś wie co należy poprawić :?:
2. Musiałem wyłączyć zliczanie ilosci danych, gdyż po rebootcie użycie procka 100% (dodatkowo mam mrtg+niceshaper). Czy jest na to jakiś sposób :?:


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 4 marca 2006, 21:07 
Offline

Rejestracja: piątek, 27 stycznia 2006, 18:28
Posty: 56
Ad 1. W pliku hosts musi być na końcu wolna linia (sam doszedłem)
Ad 2. Nie mam pewności ale chyba właśnie dodanie fikcyjnego wpisu w hots spowodowało powstanie pętli sleep w skrypcie liczącym dane i wzrost obciażenia procka do 100%. :oops: Już jest OK. :D


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 14 marca 2006, 20:51 
Offline
Użytkownik

Rejestracja: sobota, 17 stycznia 2004, 22:15
Posty: 129
witam, mi działa jak narazie ładnie na wersji nnd nie pamiętam z kiedy ale chyba jeszcze z 2004 roku, albo sie myle i na apache'u.
bawił sie ktoś może, żeby razem z adresami wyświetlała się nazwa hosta z pliku hosts?
pozdro


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 15 marca 2006, 12:35 
Offline

Rejestracja: piątek, 27 stycznia 2006, 18:28
Posty: 56
U mnie działa na nowym NND i na thttpd. Ale nie jestem przekonany do wiarygodności wskazań. Z grubsza jest OK ale np. dzienny całkowity download pokrywa się z tygodniowym podobnie dla niektórych userów a widać gołym okiem, że to nieprawda. W dziennych statach pokazuje dla wszystkich: poniedziałek 0, wtorek 0, a dla poszczególnych userów wskazania są, więc znowu nieprawda....
http://83.18.250.254:82/stats/tygodniowe.html


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 6 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 31 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl