docs: update README and architecture for v1.0.3 flat JSON structure

- docs: update README.md with flat JSON output example
- docs: update architecture.yml correlated_log schema
- docs: update ClickHouse schema to use fields JSON column
- breaking: document migration from apache/network to fields

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Jacquin Antoine
2026-02-28 22:28:45 +01:00
parent 514cb553ef
commit 52eebafb0b
2 changed files with 18 additions and 15 deletions

View File

@ -176,6 +176,8 @@ Exemple complet dans `config.example.yml`.
### Log corrélé (sortie) ### Log corrélé (sortie)
**Version 1.0.3+** - Structure JSON plate (flat) :
```json ```json
{ {
"timestamp": "2024-01-01T12:00:00Z", "timestamp": "2024-01-01T12:00:00Z",
@ -184,11 +186,15 @@ Exemple complet dans `config.example.yml`.
"dst_ip": "10.0.0.1", "dst_ip": "10.0.0.1",
"dst_port": 80, "dst_port": 80,
"correlated": true, "correlated": true,
"apache": {"method": "GET", "path": "/api/test"}, "method": "GET",
"network": {"ja3": "abc123def456"} "path": "/api/test",
"ja3": "abc123def456",
"ja4": "xyz789"
} }
``` ```
Tous les champs des sources A et B sont fusionnés au même niveau. Les champs de corrélation (`src_ip`, `src_port`, `dst_ip`, `dst_port`, `correlated`, `orphan_side`) sont toujours présents, et tous les autres champs des logs sources sont ajoutés directement à la racine.
## Schema ClickHouse ## Schema ClickHouse
```sql ```sql

View File

@ -312,7 +312,8 @@ schema:
correlated_log: correlated_log:
description: > description: >
Structure du log corrélé émis vers les sinks (fichier, ClickHouse). Contient Structure du log corrélé émis vers les sinks (fichier, ClickHouse). Contient
les informations de corrélation, les infos communes et les contenus de A/B. les informations de corrélation et tous les champs des sources A et B fusionnés
dans une structure JSON plate (flat).
fields: fields:
- name: timestamp - name: timestamp
type: time.Time type: time.Time
@ -330,22 +331,20 @@ schema:
type: bool type: bool
- name: orphan_side - name: orphan_side
type: string type: string
- name: apache - name: "*"
type: map[string]any type: map[string]any
optional: true description: >
- name: network Tous les champs additionnels provenant de A et B sont fusionnés
type: map[string]any directement à la racine du JSON (structure plate, sans subdivisions).
optional: true
- name: extra
type: map[string]any
description: Champs dérivés éventuels.
clickhouse_schema: clickhouse_schema:
strategy: external_ddls strategy: external_ddls
description: > description: >
logcorrelator ne gère pas les ALTER TABLE. La table ClickHouse doit être logcorrelator ne gère pas les ALTER TABLE. La table ClickHouse doit être
créée/modifiée en dehors du service. logcorrelator remplit les colonnes créée/modifiée en dehors du service. logcorrelator remplit les colonnes
existantes quil connaît et met NULL si un champ manque. existantes qu'il connaît et met NULL si un champ manque.
Depuis la version 1.0.3, les champs apache et network sont remplacés par
une colonne unique fields JSON contenant tous les champs fusionnés.
base_columns: base_columns:
- name: timestamp - name: timestamp
type: DateTime64(9) type: DateTime64(9)
@ -361,9 +360,7 @@ clickhouse_schema:
type: UInt8 type: UInt8
- name: orphan_side - name: orphan_side
type: String type: String
- name: apache - name: fields
type: JSON
- name: network
type: JSON type: JSON
dynamic_fields: dynamic_fields:
mode: map_or_additional_columns mode: map_or_additional_columns