# Möglichkeit den Netzwerktraffic zu protokollieren

## tuxfan

Hallo zusammen,

kennt jemand ein gutes Programm, um den Netzwerktraffic zu protokollieren?

Ich habe leider nur eine Volumenflatrate und würde gerne wissen wieviel Traffic ich im Monat schon erzeugt habe. Gibt es so etwas für gkrellm oder superkaramba? Falls nicht tut es ein anderes Programm auch.

----------

## b00gy

gkrellm kann das bereits

bei der ansicht des ppp0 aus den kleinen button klicke der erscheint wenn man mit der maus drüber fahrt

da sieht man dann statistik fuer TAG WOCHE MONAT

denke das sollte dir helfen

----------

## tuxfan

Funktioniert das bei eth0 auch? Ich klicke da rum wie ein Held und bekomme keine Informationen. PPP verwende ich nämlich nicht, nur Netzwerk.

----------

## Lenz

Der Befehl ifconfig zeigt den Traffic an. Allerdings müsste man dann immer vor jedem Herunterfahren aufschreiben bei was der Zähler stand und dann immer zusammenzählen. Ob es eine schönere Lösung gibt, weiß ich nicht.

----------

## Irom

Ich mache das mit iptables.

All pakete die gezählt werden sollen, werden über eine bestimmte chain geleitet bevor sie akzeptiert werden. Immer beim abwählen / neu starten schreib ich dann die bytes, die die chain durchlaufen haben in ein logfile.

Dadurch könntest du auch ganz genau festlegen, welche pakete gezählt werden sollen und welche nicht.

Ist natürlich eine ziemliche bastellösung.

----------

## pixelcatcher

schau dir mal vnstat an... das erzeugt ausgaben dieser art:

```
Database updated: Sun Jul  4 23:30:00 2004

        eth0

           received:        223,619 MB (70.5%)

        transmitted:         93,593 MB (29.5%)

              total:        317,212 MB

                        rx     |     tx     |  total

        -----------------------+------------+-----------

        yesterday     7,360 MB |     393 MB |   7,753 MB

            today     3,643 MB |      73 MB |   3,716 MB

        -----------------------+------------+-----------

        estimated     3,717 MB |      74 MB |   3,791 MB

  eth0

           #       day          rx      |     tx      |  total

        --------------------------------+-------------+-------------

           1    17.04.04     12,274 MB  |  38,747 MB  |  51,021 MB

           2    22.02.04      8,735 MB  |   8,144 MB  |  16,879 MB

           3    06.04.04     14,233 MB  |     369 MB  |  14,602 MB

           4    07.04.04     10,738 MB  |     732 MB  |  11,470 MB

           5    01.05.04      9,667 MB  |     175 MB  |   9,842 MB

           6    06.05.04        360 MB  |   9,078 MB  |   9,438 MB

           7    06.06.04      7,514 MB  |     255 MB  |   7,769 MB

           8    03.07.04      7,360 MB  |     393 MB  |   7,753 MB

           9    23.05.04      7,226 MB  |     190 MB  |   7,416 MB

          10    02.05.04      6,982 MB  |     120 MB  |   7,102 MB

        --------------------------------+-------------+-------------

```

ich weiss nicht ob die version die aktuell im portage ist inzwichen lauffähig ist - versuchs mal, sonst musst es "manuell" installieren.

Micha

----------

## b00gy

also bei mit zeigt gkrellm die stats fuer jedes interface an egal ob ppp0 oder eth0

----------

## m.b.j.

hi iron, ich setze mich gerade mit iptables auseinander, kannst du mich eben einweien wie man rausfindent wieviele bytes über deinen Chain geleitet werden? Muss man ein besonderes

```
# iptables bala blab bla -j XXX
```

verwenden?

----------

## Irom

hi

Nein, einfach eine ganz normale chain.

Beim auflisten mit -L werden die übertragenen bytes angezeigt, wenn man zusätzlich die option -v (verbose) verwendet.

Außerdem braucht man -x, damit es auch wirklich in bytes und nicht in kb, mb usw. angezeigt wird.

Um die werte nach der ausgabe auf 0 zurückzusetzen benutzt man -Z

-n, damit die namen nicht aufgelöst werden

also

```

iptables -L ACC_CHAIN -nvxZ

```

das ganze dann noch durch sed oder awk jagen, um die benötigten werte raus zu filtern, z.B.

```

iptables -L ACC_CHAIN -nvxZ  | awk '/^ *[0-9]/ { print $9 "\t" $2 }' >> $logfile

```

schreibt die (destination-)IPs in der chain und die dazugehörigen übertragenen byte in ein logfile.

Wenn du willst kannst du dir die kompletten scripte auf meinem webserver angucken. Ist aber ohne größere erklärungen, da das bis jetzt eigentlich nur als private spielseite gedacht war.

----------

## schmutzfinger

also du machst dir ne chain, wo du alles durchleitest, was du vom provider als traffic verbucht bekommst. sagen wir mal der einfachheit halber, alles was über eth0 geht.

```

iptables -N count

iptables -A count -j ACCEPT

iptables -A OUTPUT -o eth0 -j count

iptables -A INPUT -i eth0 -j count

```

so jetzt solltest du mittels 

```

iptables -v -L -Z count 

```

ablesen können, wieviele bytes durch eth0 gegangen sind. durch das -Z wird der counter wieder auf 0 gesetzt. das ganze jetzt noch hübsch in nen cronjob packen, der aller 5min ausliesst und auf den bisherigen wert added. 

also das ist jetzt nur das prinzip, ich denke mal es wäre mind. 2 chains sinnvoll (incoming, outgoiing) ausserdem ist das cron script vielleicht gar nicht so einfach. ich kenne aber ein system, was genau das für ca 200 hosts macht. eine mysql db und ein cronjob der alle 5min die counter auf 0 setzt und die db aktualisiert.

----------

## m.b.j.

thx all! Funktioniert wunderbar mal schaun ob die mich bescheißen *g*

----------

## HotteX

ich nehme immer iptraf, der ezigt einen alle ip/udp pakete aktuelle datenrate usw. an

----------

## lordmat

kennt jemand ein gutes howto fuer mrtg?

 :Smile: 

mfg

lordmat

----------

## ChrisM87

Hi,

vnstat ist super, die Version in Portage funktioniert.

Vor allem ist es nicht so überladen, sondern nur ein paar Kilobyte groß und auf das Wesentliche beschränkt.

ChrisM

----------

