Hallo Gruppe, Hallo Andreas,
wiedermal saß der Fehler vorm Bildschirm.
'pmacct' zählt richtig, alle anderen nicht. Die Auflösung: 'ipac-ng' schaut
sich "nur" IPv4 an und da läuft nachts ja noch ein Backup ins RZ über - oh
staune IPv6. Der Hoster ist so gütig mir traffic in seinen Netzen nicht zu
berechnen und zeigt ihn mir deshalb auch nicht an. Nun habe ich gelernt,
dass 'obnam' nicht mehr in einer Stunde fertig ist und über 20gb vom
Backupziel pro Sicherung einliest.
Nun sammeln sich die Daten und machen vermutlich absehbar die Datenbank
unbedienbar. 'ipac-ng' hatte da eine super Funktion "-r : replace", die
Daten zusammengefasst hat. So habe ich Daten alle Minute gesammelt, aller
Stunden, Tage, Wochen und Monate aber zusammengefasst. Sowas hätte ich jetzt
gern wieder um der Millionen Zeilen Herr zu werden. 'pmacct' selbst kann das
offenbar nicht, nur in täglich neue Tabellen schreiben was die Datenmenge ja
nicht minimiert.
Jetzt braucht es wohl intelligente und performante SQL-Syntax das für mich
zu erledigen - ein Wunder, dass es sowas offenbar noch nicht fertig gibt.
Ich habe die Spalten ip_src, ip_dst, ports_src, port_dst, bytes sowie
inserted (vereinfacht). Nun sollen alle Zeilen, deren 4 erste Spalten
identisch sind und deren 'inserted' innerhalb einer Stunde liegen zu einer
Zeile mit summierten 'bytes' zusammengefasst werden. Nur muss man dazu immer
wieder iterativ über die gesamte DB rennen, was mir Sorgen bereitet.
Hier die aktuelle Tabelle:
CREATE TABLE acct (
mac_src macaddr NOT NULL DEFAULT '0:0:0:0:0:0',
mac_dst macaddr NOT NULL DEFAULT '0:0:0:0:0:0',
ip_src inet NOT NULL DEFAULT '0.0.0.0',
ip_dst inet NOT NULL DEFAULT '0.0.0.0',
port_src INT NOT NULL DEFAULT 0,
port_dst INT NOT NULL DEFAULT 0,
ip_proto SMALLINT NOT NULL DEFAULT 0,
packets BIGINT NOT NULL,
bytes BIGINT NOT NULL,
stamp_inserted timestamp without time zone NOT NULL DEFAULT
CURRENT_TIMESTAMP(0),
stamp_updated timestamp without time zone,
CONSTRAINT acct_pk PRIMARY KEY (mac_src, mac_dst, ip_src, ip_dst,
port_src, port_dst, ip_proto, stamp_inserted)
);
Ich möchte da so wenig wie möglich keys drin haben, da die die INSERTS und
UPDATES durch 'pmacct' sicher nur verlangsamen - kann man da welche
entfernen?
Und wie komme ich jetzt am Besten zu meiner Datenzusammenführung?
>neben stamp_updated auch noch stamp_inserted. Ich weiß nicht, wann
>stamp_updated gesetzt wird und auch nicht auf was, vermute aber, Du
>solltest eher auf stamp_inserted aggregieren.
>
Ja, wenn die Konfiguration - und dort konkret sql_refresh_time und
sql_history - zusammenpassen, dann ist 'stamp_insterted' wohl das Mittel der
Wahl.
Mit freundlichen Grüßen / Kind regards
Ronny Seffner
--
Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen
www.seffner.de | [email protected] | +49 35245 72950
7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
_______________________________________________
Lug-dd maillist - [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd