pmacct - wie konfigurieren, starten, loggen?

Post Reply
Hellfire
Posts: 679
Joined: November 8th, 2015, 8:54 am

pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 7th, 2019, 7:01 pm

Hi,

nachdem ich nach ein wenig suchen und eines eigenen Threads hier viewtopic.php?f=22&t=23439#p127741 nun über das Tool pmacct gestolpert bin viewtopic.php?f=50&t=14849, habe ich dieses natürlich gleich Mal installiert. Ich mach' jetzt trotzdem einen neuen Thread auf, da ich nicht alles in Englisch im ursprünglichen Thread reinklopfen möchte, weil evtl. meine Fragen nicht richtig rüberkommen.

Die Installation ging mit der verlinkten Anleitung reibungslos. Im obigen Link zu pmacct ist noch die Rede von einem Init-Skript, welches aber über dort zu findenden Link, dort so nicht mehr existiert dazu später unten mehr...

Anyway, es ist ja ohnehin die Rede davon, dass pmacct entweder MySQL benötigt (nicht mehr unter IPFire laufbar/verfügbar) oder PostgreSQL. Ich möchte aber beides nicht einsetzen, auch auf die Gefahr hin, dass die Traffic-Daten bei einem Neustart verschwunden sind.

Ich würde gerne ein paar Fragen zu pmacct stellen:
1) Ich benötige eine .conf Datei damit pmacct überhaupt mal losläuft. Soweit ich gesehen habe, wird keine mit installiert, korrekt?

2) Ich glaube gelesen zu haben pmacct kann auch noch anders loggen, bspw. dateibasierend? Ist dies korrekt? Wenn ja, wie stelle ich da was ein?
Hintergund meiner Frage: ich würde gerne ein Python-Script einplanen, welches mir die Traffic-Daten periodisch in eine InfluxDB schreibt, welche ich dann per Grafana auswerten kann (läuft beides auf einem anderen Host).

3) Ziel der ganzen Übung ist es eben, dass der Traffic je IP-Adresse und evtl. Protokoll aufgezeichnet wird. Welche Einstellungen sind dazu in der .conf-Datei notwendig? Nicht falsch verstehen, ich könnte mich da jetzt auf der Homepage von pmacct auch einlesen, suche jedoch eine schnelle Lösung um mir einen schnellen Überblick zu verschaffen, ob pmacct überhaupt was für mich ist - also einen Quick and Dirty Ansatz zunächst.

4) In welchen Zeiträumen wird eigentlich geloggt? Täglich, monatlich, jährlich? Oder ist es ausschließlich täglich und die restlichen Intervalle muss ich mir selbst aufsummieren?

Wie bereits oben erwähnt, soll es ja ein Init-Script geben. Ich denke es ist ganz normal unter /etc/init.d zu finden. Zumindest gibt es dort ein solches und soweit ich in der Datei gesehen habe, ist auch kein Start von MySQL und dergleichen mehr vorgesehen. Schon Mal prima für mich ;-)

Bleibt eigentlich nur mehr die Frage nach einer Beispielt-pmacct.conf Datei ^^ mit einem Beispiel für das Loggen in, ja in was genau?

Muss da gleich nochmals nachhaken, weil ich etwas mutig war:

Code: Select all

[root@ipfire pmacct]# sfacctd
sfacctd: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
[root@ipfire pmacct]# pmacctd
pmacctd: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
Kann man pmacct noch sfacctd so starten oder handelt es sich hier tatsächlich um einen Fehler?

Danke,
Michael
Image

ummeegge
Community Developer
Community Developer
Posts: 4944
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 7th, 2019, 7:39 pm

Moin Hellfire,
Hellfire wrote:
October 7th, 2019, 7:01 pm
nachdem ich nach ein wenig suchen und eines eigenen Threads hier viewtopic.php?f=22&t=23439#p127741 nun über das Tool pmacct gestolpert bin viewtopic.php?f=50&t=14849, habe ich dieses natürlich gleich Mal installiert.
der kam mir irgendwie bekannt vor ::) .
Hellfire wrote:
October 7th, 2019, 7:01 pm
Die Installation ging mit der verlinkten Anleitung reibungslos. Im obigen Link zu pmacct ist noch die Rede von einem Init-Skript, welches aber über dort zu findenden Link, dort so nicht mehr existiert dazu später unten mehr...
Musste selber kruschteln aber hier --> https://people.ipfire.org/~ummeegge/pmacct/ ist das Paket doch noch zufinden incl. Init.
Hellfire wrote:
October 7th, 2019, 7:01 pm
Anyway, es ist ja ohnehin die Rede davon, dass pmacct entweder MySQL benötigt (nicht mehr unter IPFire laufbar/verfügbar) oder PostgreSQL. Ich möchte aber beides nicht einsetzen, auch auf die Gefahr hin, dass die Traffic-Daten bei einem Neustart verschwunden sind.
Jaein, hier --> viewtopic.php?f=50&t=14699#p89551 finden sich die Kommandos für die Echtzeit anzeige (lässt sich vielleicht ausleiten ? Weiss ich aber auch gerade nicht mehr), flat-file ging damals auch müsstest du aber selber mal schauen wegen der Options (hab ich nicht mehr im Kopf.)
Hellfire wrote:
October 7th, 2019, 7:01 pm
2) Ich glaube gelesen zu haben pmacct kann auch noch anders loggen, bspw. dateibasierend? Ist dies korrekt? Wenn ja, wie stelle ich da was ein?
Hintergund meiner Frage: ich würde gerne ein Python-Script einplanen, welches mir die Traffic-Daten periodisch in eine InfluxDB schreibt, welche ich dann per Grafana auswerten kann (läuft beides auf einem anderen Host).
Schau mal hier rein --> https://github.com/pmacct/pmacct/blob/master/QUICKSTART <-- das ist nun nicht die neueste Version von meinem Public, ist aber event. einen Versuch wert ?
Hellfire wrote:
October 7th, 2019, 7:01 pm
3) Ziel der ganzen Übung ist es eben, dass der Traffic je IP-Adresse und evtl. Protokoll aufgezeichnet wird. Welche Einstellungen sind dazu in der .conf-Datei notwendig? Nicht falsch verstehen, ich könnte mich da jetzt auf der Homepage von pmacct auch einlesen, suche jedoch eine schnelle Lösung um mir einen schnellen Überblick zu verschaffen, ob pmacct überhaupt was für mich ist - also einen Quick and Dirty Ansatz zunächst.
Unter den von dir vorgegebenen Parametern kann ich dir auf die Schnelle keine Lösung liefern (vielleicht jemand anderes?), ich denke aber mal das dass prinzipiell geht ?!
Hellfire wrote:
October 7th, 2019, 7:01 pm
4) In welchen Zeiträumen wird eigentlich geloggt? Täglich, monatlich, jährlich? Oder ist es ausschließlich täglich und die restlichen Intervalle muss ich mir selbst aufsummieren?
Zeitintervalle in der Form wären dann was für eine DB.
Hellfire wrote:
October 7th, 2019, 7:01 pm
Wie bereits oben erwähnt, soll es ja ein Init-Script geben. Ich denke es ist ganz normal unter /etc/init.d zu finden. Zumindest gibt es dort ein solches und soweit ich in der Datei gesehen habe, ist auch kein Start von MySQL und dergleichen mehr vorgesehen. Schon Mal prima für mich ;-)
Siehe Link zum Paket oben, hab´s gerade mal kurz getestet ob das noch lebt -->

Code: Select all

$ /etc/init.d/pmacct start                                  
Starting the pmacct daemon... 
ERROR: [/etc/pmacct/pmacct.conf] Unknown plugin type: mysql. Ignoring.
WARN: [/etc/pmacct/pmacct.conf] No plugin has been activated; defaulting to in-memory table.
DEBUG: [/etc/pmacct/pmacct.conf] plugin name/type: 'default'/'core'.
DEBUG: [/etc/pmacct/pmacct.conf] plugin name/type: 'default_memory'/'memory'.
DEBUG: [/etc/pmacct/pmacct.conf] interface:any
DEBUG: [/etc/pmacct/pmacct.conf] daemonize:true
DEBUG: [/etc/pmacct/pmacct.conf] pidfile:/var/run/pmacctd.pid
DEBUG: [/etc/pmacct/pmacct.conf] aggregateclass,:src_mac,dst_mac,vlan,dst_as,as_src,src_host,dst_host,proto,src_port,dst_port,tcpflags,tos
WARN: [/etc/pmacct/pmacct.conf:14] Unknown key: aggregateclass,. Ignored.
DEBUG: [/etc/pmacct/pmacct.conf] sql_user:pmacct
DEBUG: [/etc/pmacct/pmacct.conf] sql_passwd:pmacct
DEBUG: [/etc/pmacct/pmacct.conf] sql_db:pmacct
DEBUG: [/etc/pmacct/pmacct.conf] sql_table:acct_v8
DEBUG: [/etc/pmacct/pmacct.conf] sql_table_version:8
DEBUG: [/etc/pmacct/pmacct.conf] sql_refresh_time:90
DEBUG: [/etc/pmacct/pmacct.conf] sql_history:10m
DEBUG: [/etc/pmacct/pmacct.conf] sql_history_roundoff:mh
DEBUG: [/etc/pmacct/pmacct.conf] debug:true
WARN ( default/core ): debug is enabled; forking in background. Logging to standard error (stderr) will get lost.                    [  OK  ]
sieht soweit erstmal gut aus, muss halt für ohne MySQL umgeschrieben werden... finde gerade aber keine Symlinks worauf sich das statement mit MySQL bezogen hatte wenn MySQL mitschreibt sollte es vor Pmacctd starten.
Hellfire wrote:
October 7th, 2019, 7:01 pm
Bleibt eigentlich nur mehr die Frage nach einer Beispielt-pmacct.conf Datei ^^ mit einem Beispiel für das Loggen in, ja in was genau?
Das war der Test damals ob sich jemand mal umgeschaut hat ob es da was gibt was laufen könnte :D . Eigentlich musst du /etc/pmacct'pmacct.conf.example' nur in '/etc/pmacct/pmacct.conf' umbennnen und starten und am besten auch noch die Config mal anschauen und verstehen.
Hellfire wrote:
October 7th, 2019, 7:01 pm

Code: Select all

[root@ipfire pmacct]# sfacctd
Gibt es auf dem Fire so nicht, war damals ein fetterer Hack mit Trikolon zusammen (Kernel anfassen +).


Sind erstmal nur Kurzantworten (der Topic ist von 2015) vielleicht hilft es dir ja dennoch.

UE
Image
Image

Hellfire
Posts: 679
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 8th, 2019, 4:55 pm

ummeegge wrote:
October 7th, 2019, 7:39 pm

Code: Select all

$ /etc/init.d/pmacct start                                  
Starting the pmacct daemon... 
Hi UE,

erst Mal fettes Danke für deine umfangreiche Antwort! Habe jetzt meine Test-IPFire-VM Mal angeworfen, damit ich nicht alles in meiner Produktiv-Umgebung testen muss.

Habe dann auch pmacct start getestet, dabei kommt es aber zum gleichen Fehler, wie auch schon auf meinem Produktiv-IPFire:
/usr/bin/pmacctd: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
Kann es sein, dass auf deiner Maschine diese Lib existiert und bei mir nicht? Hab Mal gegooglet und libpq scheint zur PostgreSQL-DB zu gehören. Das läuft bei mir hier natürlich nicht.

Wobei, ich habe die pmacct.conf noch nicht eingestellt, genau genommen gibt es diese bei mir gar nicht. Gehe daber davon aus es ist so wie bei dir?
Edit: habe ich jetzt nachgeholt, nur der Fehler verschwand damit nicht...

Michael
Image

ummeegge
Community Developer
Community Developer
Posts: 4944
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 8th, 2019, 5:39 pm

Du hast Recht in dem ENV hab ich auch Postgresql gebaut und Pmacct hat sich da gleich mal abhängig gemacht. Bau gerade eh und hab da Pmacct mal wieder mitreingepackt diesesmal ohne PostgreSQL (dauert halt einwenig). Wegen einer config müsstest du mal schauen was für dich gut ist, du kannst mir die hier auch posten dann bau ich die in´s Paket mitein. Ich habe gerade auch mal das hier --> https://github.com/pierky/pmacct-to-elasticsearch gefunden, ist auch ein Python Skript was Pmacct ausliesst wenn auch überproportioniert aber vielleicht finden sich da ein paar nette Ideen.

Grüße,

UE
Image
Image

Hellfire
Posts: 679
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 8th, 2019, 6:39 pm

DAAANKE fürs Recompilieren!

Das Python-Script für Elasticsearch habe ich auch bereits entdeckt. Momentan arbeite ich mich hier schrittweise ran und habe auch aus der Webpage deren Github-Seite schon das ein oder andere rausgelesen was evtl. hilfreich sein könnte.

Unter anderem, dass ich pmacct manuell starten oder per Cronjob einplanen kann: https://github.com/pierky/pmacct-to-ela ... URATION.md

Ich habe dies auch gleich Mal versucht, und soweit hoffentlich alles richtig gemacht. NUR, pmacct möchte gerne Zugriff auf eine Pipe, per Default auf /tmp/collect.pipe oder wie in meinem folgenden Beispiel, gegen /var/spool/pmacct/my_mem.pipe.
pmacct -l -p /var/spool/pmacct/my_mem.pipe -s -O csv
In jedem Fall erscheint jedoch ein Fehler:
INFO: Connection refused while trying to connect to /var/spool/pmacct/my_mem.pipe

Da bin ich jetzt zuwenig Linux-Guru als dass ich hier weiter komme. Kennst du evtl. eine Möglichkeit?

Ich habe die Pipe-Datei natürlich für beide Fälle, Default-Pipe und meine eigen Pipe-Datei, vorab erstellt:

Code: Select all

mkfifo /var/spool/pmacct/my_mem.pipe --mode=777
Aber weder mit MODE oder ohne startet pmacct.

Michael
Image

ummeegge
Community Developer
Community Developer
Posts: 4944
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 9th, 2019, 4:43 pm

Jo gerne,
das neue Paket findest du hier --> https://people.ipfire.org/~ummeegge/pma ... cct-1.7.3/ . Kannst du wie gewohnt unter /opt/pakfire/tmp nach dem SHA256 Check mit einem update.sh überinstallieren.

Was wurde geändert:

- JSON support ist mit drinne.
- Neues Verzeichnis unter /var/spool/pmacct für Plugins und PIPES.
- Update auf aktuelle Version 1.7.3 .
- Konfig (unter /etc/pmacct/pmacct.conf) wurde simplifiziert, keine DB mehr drinne.
- Pmacct lauscht derzeit nur auf green0 kannt man aber über die Konfig ändern.
- PostgreSQL Abhängigkeit ist nicht mehr gegeben.
- Läuft alles über Memory Plugin.
- sfacctd ist u.a. auch enthalten.
- PIPE wird mittels

Code: Select all

imt_path[plugin1]:/var/spool/pmacct/plugin1.pipe
über die Konfig erstellt.
- Am initskript muss ich noch was machen seh ich gerade der bleibt beim Debug hängen, du kannst aber auch erstmal per Commandline Daemonizen (Beispiel weiter unten) <-- FIXED, update is in der Mache...
Hellfire wrote:
October 8th, 2019, 6:39 pm
In jedem Fall erscheint jedoch ein Fehler:
INFO: Connection refused while trying to connect to /var/spool/pmacct/my_mem.pipe

Da bin ich jetzt zuwenig Linux-Guru als dass ich hier weiter komme. Kennst du evtl. eine Möglichkeit?

Ich habe die Pipe-Datei natürlich für beide Fälle, Default-Pipe und meine eigen Pipe-Datei, vorab erstellt:

Code: Select all

mkfifo /var/spool/pmacct/my_mem.pipe --mode=777
Aber weder mit MODE oder ohne startet pmacct.
Du musst die PIPE erstmal mittels Pmacct starten der legt die selber an, das sollte die Konfig mittlerweile machen.
Simpler Start vom Daemon mit config:

Code: Select all

pmacctd -f /etc/pmacct/pmacct.conf -D
was erstmal gut aussieht:

Code: Select all

$ ps aux | grep pmacct
root     11930  0.1  0.3  17796  6952 ?        Ss   18:34   0:00 pmacctd: Core Process [default]      
root     11934  0.3  0.5  25924 12108 ?        S    18:34   0:00 pmacctd: IMT Plugin [plugin1] 
Dann dein Kommando:

Code: Select all

$ pmacct -l -p /var/spool/pmacct/plugin1.pipe -s -O csv 
SRC_IP,DST_IP,SRC_PORT,DST_PORT,PACKETS,BYTES
192.168.7.128,192.168.7.2,222,46122,52,8496
192.168.7.2,192.168.7.128,41340,222,94,6916
192.168.7.2,192.168.7.128,46122,222,52,2812
192.168.7.128,192.168.7.2,222,41340,64,7096
Sieht auch soweit gut aus.

Für eine Life Übersicht geht z.b. ein:

Code: Select all

watch pmacct -p /var/spool/pmacct/plugin1.pipe -s
Hint:
Zum PIPE leer machen und Prozess wieder starten geht z.b. ein:

Code: Select all

killall pmacctd -w ; pmacctd -f /etc/pmacct/pmacct.conf -D
...

Wie geschrieben ich muss das Initskript nochmal anfassen aber du kannst testweise per Commandline Daemonizen dann läuft der bis zum nächsten Reboot, dann musst du wieder manuell Starten. Wenn ich da weitergekommen bin schieb ich das in´s Paket und mach da ein Update sofern du das alles überhaupt brauchen kannst.

Soweit erstmal.

Grüße,

UE

EDIT: Vergess nicht die Konfig umzubenennen (.example muss weg) ;-) .
Image
Image

Hellfire
Posts: 679
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 10th, 2019, 7:42 am

Hi und Danke für das neue Paket und die zahlreichen Infos zur Konfiguration!

Werds mir voraussichtlich erst Morgen dann Mal ansehen können!

Grüße,
Michael
Image

ummeegge
Community Developer
Community Developer
Posts: 4944
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 10th, 2019, 10:18 am

ummeegge wrote:
October 9th, 2019, 4:43 pm
Wenn ich da weitergekommen bin schieb ich das in´s Paket und mach da ein Update
Das hab ich jetzt mal gemacht, update ist nach wie vor hier --> https://people.ipfire.org/~ummeegge/pma ... cct-1.7.3/ zufinden.

Gefixt und ergänzt wurde:
- Das Initskript läuft nun regulär. Nach Installation muss aber manuell gestartet werden

Code: Select all

/etc/init.d/pmacct start
dann kann die PIPE gleich Output liefern mit z.b.

Code: Select all

pmacct -l -p /var/spool/pmacct/plugin1.pipe -s -O csv
o.ä.
- Symlinks für die runlevel sind gesetzt und Pmacctd startet bei start|reboot wie unter /etc/pmacct/pmacct.conf vorgegeben automatisch.
- Es wird in derzeitiger Konfig eine PIPE unter /var/spool/pmacct/plugin1.pipe aufgemacht (kann über die Konfiguration geändert werden).
- '--enable-ndpi' wurde im configure ergänzt.
- Die Konfiguration heisst nun pmacct.conf und muss nicht mehr umbenannt werden.

Ich glaub das war´s erstmal soweit.

Grüße,

UE
Image
Image

Hellfire
Posts: 679
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 10th, 2019, 11:40 am

Bin zwar noch nicht zum Testen gekommen, aber erscheint den im WebIF unter Services, ein neuer Eintrag zu pmacct? Ich glaub zwar nicht, aber ich frag trotzdem hier Mal nach.
Image

ummeegge
Community Developer
Community Developer
Posts: 4944
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 10th, 2019, 3:32 pm

Das Meta File hab ich in der install.sh noch ergänzt, update ist oben.

UE
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 4944
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 14th, 2019, 12:25 pm

Is mir gerade vor die Füsse gefallen ;) -->
JSON2InfluxDB --> https://github.com/piwanejko/pmacct-to-influxdb .
u.a. Sqlite{eigentlich_AMQP}2InfluxDB --> https://github.com/ut0mt8/flow2influx <-- AMQP/Kafka ist nicht einkompiliert
Dashboards sind da auch mit dabei, kennst du aber event. auch schon ?!

So nebenbei.

UE
Image
Image

Hellfire
Posts: 679
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 15th, 2019, 8:14 am

Werde ich mir definitiv auch ansehen - Danke!
Image

ummeegge
Community Developer
Community Developer
Posts: 4944
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » Yesterday, 11:38 am

Zweites Paket mit RabbitMQ --> https://www.rabbitmq.com/ support und ohne DB DEP --> https://people.ipfire.org/~ummeegge/pmacct/ .

Grüssle,

UE
Image
Image

Post Reply