# Diagramme

`argus-chart` zeichnet das Diagramm eines Zeitfensters, das Sie wählen: ein Tag, eine ISO-Woche, ein Monat, ein Quartal, ein Jahr oder ein Zeitraum. Es hat drei Ansichten, `daily`, `period` und `hourly`, und läuft auf dem Server, wo die Datendateien liegen. Jeder Befehl schreibt ein PNG in `/srv/argus/<year>/images/`.

## Die drei Ansichten

- `argus-chart daily [YEAR]` zeichnet den Verlauf eines Jahres, ein Punkt pro Tag, standardmäßig das laufende Jahr.
- `argus-chart period [window]` zählt jede Serie über ein Zeitfenster, eine Linie pro Serie.
- `argus-chart hourly [window]` zählt jede Serie zu jeder Stunde des Tages, 00 bis 23, über ein Zeitfenster addiert.

`period` und `hourly` akzeptieren dieselben Zeitfenster: `--day YYYY-MM-DD`, `--week YYYY-Www` für eine ISO-Woche von Montag bis Sonntag, `--month YYYY-MM`, `--quarter YYYY-Qn`, `--year YYYY` oder `--from YYYY-MM-DD --to YYYY-MM-DD`. Ohne Zeitfenster verwenden sie das laufende Jahr. Ein Zeitfenster, das zwei Jahre umfasst, liest die Dateien beider.

## Drei Befehle

```bash
argus-chart period --day 2026-10-30
argus-chart period --month 2026-10 --split week
argus-chart hourly --week 2026-W44
```


Der erste zeichnet einen Tag, mit einem Punkt pro Stunde. Der zweite zeichnet ein Bild pro ISO-Woche des Oktobers. Der dritte zeichnet 24 Positionen pro Serie für die Woche, was zeigt, zu welchen Stunden Sie angegriffen werden, nicht an welchen Tagen.

Ein gewöhnlicher Benutzer kann nicht in `/srv/argus/` schreiben; fügen Sie `--out DIR` hinzu, um in einem Home-Verzeichnis zu schreiben. Wenn ein Zeitfenster höchstens 31 Punkte enthält, wird der Wert neben jedem Punkt ausgegeben.

## Die Beobachtungsstunde, nicht die Stunde des Angriffs

Jede Zeitscheibe trägt die lokale Uhr des Servers, geschrieben vom Sammler in dem Moment, in dem das Protokoll den Versuch aufgezeichnet hat. Dieser Zeitstempel kann später liegen als der Moment, in dem der Versuch begann; der Diagrammtitel sagt „local server time“, damit der Leser ihn nicht für den Beginn des Angriffs hält. Die Zeitumstellung verschiebt einen Tag um eine Stunde, ein Effekt, der über eine ganze Woche verblasst.

## Serien werden übereinandergelegt, nie summiert

Jede Linie des Bildes ist eine Serie: `ssh_direct` für SSH, `ip_ban_<jail>` für jedes Fail2Ban-Jail, `ip_ban_<scenario>` für jedes CrowdSec-Szenario. Ihr Name ist der Dateiname ohne das Jahr, also gehört `ssh_direct_2026.txt` zu `ssh_direct`.

Argus erfindet keine Punktzahl aus verschiedenen Werkzeugen. Jede Serie behält dieselbe Farbe von Jahr zu Jahr, festgelegt mit `ARGUS_COULEUR_<series>` oder aus einem Hash des Namens genommen.

```bash
argus-chart period --week 2026-W44 --list-series
argus-chart period --week 2026-W44 --series ssh_direct
argus-chart hourly --month 2026-10 --series ssh_direct,ip_ban_sshd --out ~/argus-out
```


## Die Zahlen statt des Bildes lesen

`--print-data` gibt die Zahlen statt des Bildes, als tabgetrennte Tabelle auf der Standardausgabe:

```bash
argus-chart period --week 2026-W44 --print-data
argus-chart hourly --day 2026-10-30 --print-data
```


## Ältere Tagesdaten in der Stundenansicht

Eine Zeile einer Datendatei lautet `<count> <date>T<hour>`, zum Beispiel `492 2026-10-30T14`. Ältere Dateien, geschrieben als die Sammlung noch täglich war, enthalten eine Zeile pro Tag mit Stunde 00. Eine solche Serie trägt keine brauchbare Stunde, daher schließt die Stundenansicht sie aus und nennt sie im Diagrammtitel, statt einen einzelnen Balken um Mitternacht zu stapeln. `period` und `daily` zeichnen sie weiterhin als Tagespunkte.

Die Zeitfenster, die Aufteilung, die Optionen und die `T00`-Regel sind in [docs/charts.md](https://github.com/RonanDavalan/Argus/blob/main/docs/charts.md) ausführlich beschrieben.

