1. Concevoir les politiques #
Une politique par rôle.
Découpage #
Une politique regroupe ce qu'un ensemble d'hôtes doit collecter. Découpez par rôle (serveurs web, bases de données, postes Windows) et par environnement via le namespace, plutôt qu'une politique géante pour tout le parc.
| Politique | Intégrations | Namespace |
|---|---|---|
| web-prod | System, Nginx | prod |
| db-prod | System, PostgreSQL | prod |
| windows-postes | System, Windows, Elastic Defend | corp |
Réglages de la politique #
- Namespace par défaut, sortie de données et sortie de supervision.
- Collecte des logs et métriques de l'agent lui-même (supervision).
- Délai de désinscription des agents inactifs, protection contre la désinstallation (Elastic Defend).
2. Les intégrations #
System, Nginx, Custom Logs.
Ce que contient une intégration #
Une intégration fournit la configuration de collecte, les pipelines d'ingestion qui structurent les données (ECS), les mappings et des tableaux de bord. Ses ressources sont installées dans Elasticsearch et Kibana dès qu'on l'ajoute à une politique.
Logs personnalisés #
# Intégration « Custom Logs (Filestream) » : paramètres principaux
paths:
- /var/log/monapp/*.log
data_stream.dataset: monapp
parsers:
- multiline:
type: pattern
pattern: '^\d{4}-\d{2}-\d{2}'
negate: true
match: after
processors:
- add_fields:
target: ''
fields:
service.name: monapp3. Personnaliser l'ingestion #
Sans modifier les ressources gérées.
Le pipeline @custom #
Chaque data stream d'une intégration appelle un pipeline <type>-<dataset>@custom s'il existe. C'est l'endroit pour ajouter vos traitements : ils survivent aux mises à jour de l'intégration.
PUT _ingest/pipeline/logs-nginx.access@custom
{
"processors": [
{ "set": { "field": "labels.equipe", "value": "web" } },
{ "drop": { "if": "ctx.url?.original?.startsWith('/health') == true" } }
]
}Erreur courante : Modifier directement le pipeline géré de l'intégration (logs-nginx.access-1.x.y) : la prochaine mise à jour l'écrase.Variables et secrets #
Bonne pratique : Pour les mots de passe d'intégrations (bases, API), utilisez les champs secrets de Fleet : ils sont stockés chiffrés et ne réapparaissent pas dans la politique exportée.
