eth0 auslese und IP Verbindungen in php aufzählen/listen
-
- Beiträge: 4
- Registriert: 04.09.2011 23:24:09
- Wohnort: Wuppertal
-
Kontaktdaten:
eth0 auslese und IP Verbindungen in php aufzählen/listen
Hallo Zusammen...
Ich habe ein vielleicht für Profis lächerliches Problem...
Hoffentlich habe ich es auch noch richtig gepostet... :)
Leider komme ich so im Moment nicht weiter...
Ich habe hier folgenden Server:
Debian 6.0
Linux 2.6.26-2-amd64 auf x86_64
mit ner ganz guten Portion Power auf der Hardware.... (Hetzner-Root)
Nun müßte ich folgende Problematik lösen:
Die Ports:
8000 (Shoutcast Video)
8415 (Shoutcast Audio)
1935 (Red5 Video)
müssten auf die Anzahl der Connections ausgelesen werden.
Sie sollten in einer php Datei anzeigbar sein und sich ggf.
selbständig im 30 bzw. 60 Sek. Rhythmus automatisch aktualisieren.
ist dies möglich, dass auf der php Seite dann nur noch die Info erscheint:
8000 XX Verbindungen
8415 XX Verbindungen
1935 XX Verbindungen
Zusammen XXX Verbindungen.
Wobei es hier genial wäre wenn doppelte IP Verbindungen nur einmal gezählt werden.
Also jede IP de Zugreift darf auch insgesamt nur einmal gezählt sein.
Wäre super wenn so etwas klappen würde ohne das Rad gleich neu erfinden zu müssen...
Vielen Dank aber schon mal im voraus für die Bemühungen und ggf. Ratschläge
Sven
Ich habe ein vielleicht für Profis lächerliches Problem...
Hoffentlich habe ich es auch noch richtig gepostet... :)
Leider komme ich so im Moment nicht weiter...
Ich habe hier folgenden Server:
Debian 6.0
Linux 2.6.26-2-amd64 auf x86_64
mit ner ganz guten Portion Power auf der Hardware.... (Hetzner-Root)
Nun müßte ich folgende Problematik lösen:
Die Ports:
8000 (Shoutcast Video)
8415 (Shoutcast Audio)
1935 (Red5 Video)
müssten auf die Anzahl der Connections ausgelesen werden.
Sie sollten in einer php Datei anzeigbar sein und sich ggf.
selbständig im 30 bzw. 60 Sek. Rhythmus automatisch aktualisieren.
ist dies möglich, dass auf der php Seite dann nur noch die Info erscheint:
8000 XX Verbindungen
8415 XX Verbindungen
1935 XX Verbindungen
Zusammen XXX Verbindungen.
Wobei es hier genial wäre wenn doppelte IP Verbindungen nur einmal gezählt werden.
Also jede IP de Zugreift darf auch insgesamt nur einmal gezählt sein.
Wäre super wenn so etwas klappen würde ohne das Rad gleich neu erfinden zu müssen...
Vielen Dank aber schon mal im voraus für die Bemühungen und ggf. Ratschläge
Sven
Sorry dass ich so blöd Frage, aber ich würde es einfach nur gerne wissen
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
Hat Shoutcast keine Statistik-Plugins etc. woher du die Information holen kannst? Ein Loesungsweg waere ein regelmaessiges "netstat -tn | grep 8000 | wc -l". Der Output wird dann in eine Datei gelegt oder eine Datenbank geschrieben, wo PHP es sich dann abholen kann.
-
- Beiträge: 4
- Registriert: 04.09.2011 23:24:09
- Wohnort: Wuppertal
-
Kontaktdaten:
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
Okay, mit netstat hatte ich auch schon probiert...
Ja, Shoutcast gibt diese Daten aus...
der Red5 gibt sie auch aus...
Leider sind beide in jeweils verschiedenen Ausgaben zu finden und beim Red5 müßte ich den Modis zu viele Rechte verpassen um sie sehen zu können.
Deshalb meine Frage ob ich alles irgendwie bündeln kann und auf einem Dokument ausgeben kann...
Mit shoutcast funktioniert es z.b mit shoutstats (GPL Shoutstats 0.8.4 http://www.glop.org/shoutstats/) richtig gut,
nur kann ich dort den Red5 auf Port 1935 nicht einbinden... wieso auch immer oder mir fehlt einfach nur dass berühmte Schweizer Taschenmesser
Ja, Shoutcast gibt diese Daten aus...
der Red5 gibt sie auch aus...
Leider sind beide in jeweils verschiedenen Ausgaben zu finden und beim Red5 müßte ich den Modis zu viele Rechte verpassen um sie sehen zu können.
Deshalb meine Frage ob ich alles irgendwie bündeln kann und auf einem Dokument ausgeben kann...
Mit shoutcast funktioniert es z.b mit shoutstats (GPL Shoutstats 0.8.4 http://www.glop.org/shoutstats/) richtig gut,
nur kann ich dort den Red5 auf Port 1935 nicht einbinden... wieso auch immer oder mir fehlt einfach nur dass berühmte Schweizer Taschenmesser
Sorry dass ich so blöd Frage, aber ich würde es einfach nur gerne wissen
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
Durch das Fragen von Red5 und Shoutcast wuerdest du halt Ressourcen sparen. Du solltest diese Daten regelmaessig Abfragen und in eine Datenbank eintragen. Auf diese Weise kannst du sie per PHP sehr schnell und einfach Abfragen und darstellen. Von zeitintensiven system-calls wuerde ich dir abraten. Das verlangsamt deine Seite nur unnoetig.
Alternativ koenntest du dich nach einer Monitoring Loesung umsehen (munin, cacti, etc.), welche Plugins fuer die verschiedenen Server besitzt und die Daten sowieso schon fuer dich aggregiert. Ab dann kannst du die beiden Werte auf die gleiche Art und Weise abfragen.
Alternativ koenntest du dich nach einer Monitoring Loesung umsehen (munin, cacti, etc.), welche Plugins fuer die verschiedenen Server besitzt und die Daten sowieso schon fuer dich aggregiert. Ab dann kannst du die beiden Werte auf die gleiche Art und Weise abfragen.
-
- Beiträge: 4
- Registriert: 04.09.2011 23:24:09
- Wohnort: Wuppertal
-
Kontaktdaten:
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
So, ich habe nun mal etwas Experimentiert…
Wenn ich folgenden Befehl eingebe:
Bekomme ich als Ausgabe:
Wenn ich das also richtig sehe habe ich zur Zeit der Abfrage 10 Verbindungen die als ESTABLISHED aktiv sind auf Port 1935.
Da ich im Moment den Wald vor lauter Bäumen nicht mehr sehe meine Frage:
Ist dass der richtige bzw. vernünftige Weg ???
Wie bekomme ich es dann genau hin dass mir diese Abfrage alle 60Sek. Ausgeführt wird und nur die Anzahl der Verbindungen (Hier 10) in einer php via Webbrowser sichtbar wird…
Muß ja irgendwie gehen, nur rasselt mein Kopf in alle Richtungen und ich hab zur zeit echt keinen plan mehr…
Wenn ich folgenden Befehl eingebe:
Code: Alles auswählen
> netstat -n | grep 1935 | grep ESTABLISHED | wc
Code: Alles auswählen
10 60 800
Wenn ich das also richtig sehe habe ich zur Zeit der Abfrage 10 Verbindungen die als ESTABLISHED aktiv sind auf Port 1935.
Da ich im Moment den Wald vor lauter Bäumen nicht mehr sehe meine Frage:
Ist dass der richtige bzw. vernünftige Weg ???
Wie bekomme ich es dann genau hin dass mir diese Abfrage alle 60Sek. Ausgeführt wird und nur die Anzahl der Verbindungen (Hier 10) in einer php via Webbrowser sichtbar wird…
Muß ja irgendwie gehen, nur rasselt mein Kopf in alle Richtungen und ich hab zur zeit echt keinen plan mehr…
Sorry dass ich so blöd Frage, aber ich würde es einfach nur gerne wissen
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
Du willst nur Zeilen zaehlen, deshalb solltest du "wc -l" nutzen. Bei netstat interessieren dich nur die TCP/UDP-Verbindungen, deshalb "netstat -tun". Das Ergebnis schreibst du in eine Datei. Sollte sich /tmp im Arbeitsspeicher befinden (tmpfs) und garnicht erst auf die Platte geschrieben werden, umso besser.
Per PHP kannst du diese Datei dann einfach einlesen. Fuer das Ausfuehren alle 60 Sekunden kannst du einen Cronjob anlegen. Alternativ findest du hier einen Schnippsel, wie du ein Bashskript dazu bringst im Hintergrund zu laufen: http://stackoverflow.com/questions/6168 ... 06#6169006
Das Kernstueck deines Skripts waere dann:
Code: Alles auswählen
netstat -tun | grep :1935 | grep ESTABLISHED | wc -l > /tmp/1935connections.txt
Das Kernstueck deines Skripts waere dann:
Code: Alles auswählen
while true;
do
netstat -tun | grep :1935 | grep ESTABLISHED | wc -l > /tmp/1935connections.txt
sleep 60
done
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
Da so ziemlich jedes Script optimierungsfähig ist, will ich mal mein Lieblingstool lsof in den Ring werfen. Damit verkürzt sich der Aufruf für das Zählen von SSH Verbindungen (Port 22) zu: lsof -Pni:22 | grep -c ":22 "
Oder zu sowas sudo grep -c dport=22 /proc/net/nf_conntrack - viele Wege führen nach Rom.
Viel Spaß beim Scripten!
Oder zu sowas sudo grep -c dport=22 /proc/net/nf_conntrack - viele Wege führen nach Rom.
Viel Spaß beim Scripten!
-
- Beiträge: 4
- Registriert: 04.09.2011 23:24:09
- Wohnort: Wuppertal
-
Kontaktdaten:
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
Also ich habe jetzt schon mal den Vorschlag von Syssi ausprobiert...
Wenn ich jetzt wohl aufliste wie ich dass "gangbar" gemacht habe dann schlagen ungefähr 95% von Euch die Hände überm Kopf zusammen und die anderen 5% setzen mich auf die ignore Liste
Ich habe die Zeilen zum aufruf meiner Ports in eine bash gepackt, lasse sie mittels cron aufrufen und schwups, pro Port eine TXT Datei im festgelegten Ordner und ne PHP datei kramt sich dass ganze zusammen und schmeißt es im TeamBereich der Webseite in ein kleines Panel (WebSeite ist eine PHP-Fusion aktuellen Datums)
Klappt so wirklich gut, nur beim zählen der Shoutcast Video Zugriffe übertreibt diese Version der Abfrage etwas...
Leider zählt er so noch die Serverinternen Zugriffe, die über 127.0.0.1 laufen und natürlich die Source Connection als sozusagenen User mit...
Im Grunde Funktioniert es also, nur es ist natürlich noch anpassungsfähig
Mal sehen vielleicht hat noch jemand von euch nen Vorschlag....
Wenn ich jetzt wohl aufliste wie ich dass "gangbar" gemacht habe dann schlagen ungefähr 95% von Euch die Hände überm Kopf zusammen und die anderen 5% setzen mich auf die ignore Liste
Ich habe die Zeilen zum aufruf meiner Ports in eine bash gepackt, lasse sie mittels cron aufrufen und schwups, pro Port eine TXT Datei im festgelegten Ordner und ne PHP datei kramt sich dass ganze zusammen und schmeißt es im TeamBereich der Webseite in ein kleines Panel (WebSeite ist eine PHP-Fusion aktuellen Datums)
Klappt so wirklich gut, nur beim zählen der Shoutcast Video Zugriffe übertreibt diese Version der Abfrage etwas...
Leider zählt er so noch die Serverinternen Zugriffe, die über 127.0.0.1 laufen und natürlich die Source Connection als sozusagenen User mit...
Im Grunde Funktioniert es also, nur es ist natürlich noch anpassungsfähig
Mal sehen vielleicht hat noch jemand von euch nen Vorschlag....
Sorry dass ich so blöd Frage, aber ich würde es einfach nur gerne wissen
Re: eth0 auslese und IP Verbindungen in php aufzählen/listen
filter localhost einfach aus: | grep -v 127.0.0.1