8.6.2. Export des données vers l'ETL Logstash via le protocole syslog

8.6.2.1. Introduction

Cette procédure décrit le configuration de la connexion à Logstash.
Un pipeline développé par Gatewatcher permet de récupérer le contenu JSON des logs exportés afin de pouvoir le manipuler ensuite comme on le souhaite avec les filtres Logstash.
La configuration de la connexion entre le GCenter et l'ETL Logstash nécessite les étapes suivantes :

Note

Voir la présentation de la Connexion vers des serveurs Syslog.
Voir la présentation des données exportées décrites dans le paragraphe Utilisation des données.
L'interface graphique de la fonction export des données est décrite dans l'Ecran `Data export`.

8.6.2.2. Prérequis

  • Utilisateur : membre du groupe Administrator


8.6.2.3. Opérations préliminaires


8.6.2.4. Procédure d’accès à la fenêtre `Data exports`

../../_images/GCE103_MENUBAR.PNG
  • Dans l’interface GCenter, cliquer sur le menu `Administration` (3).

  • Cliquer sur la commande `Log export` dans le sous-menu `Data`.
    La fenêtre `Data export` s’affiche.

8.6.2.5. Procédure de configuration des paramètres généraux

../../_images/GCE103_DATAEXPORT-1.PNG
  • Cliquer sur le bouton `Data export #1` (6).
    La zone `Settings for data export #1` (2) s’affiche.
  • Saisir les paramètres nécessaires.
    La liste des éléments est détaillée dans l'Ecran `Data export`.

Repère

Nom

Valeur à saisir

4

  • Sélecteur `Enabled

  • Activé

5

  • `Nom`

  • $SYSLOG_NAME

9

  • `Hostname/IP address`

  • $LOGSTASH_IP

10

  • `Syslog RFC`

  • 3164

11

  • `Facility`

En-tête Syslog `facility`
noyau par défaut; l’en-tête sera supprimé par le pipeline de réception

12

  • `Protocol`

  • $PROTOCOL

13

  • `Port`

  • $LOGSTASH_PORT

14

  • `Interface`

Choisir l’interface GCenter utilisée pour l’exportation de Syslog
$GCENTER_IFACE

15

  • `Severity`

Valeur de la `severity` dans l’en-tête Syslog
urgence par défaut; l’en-tête sera supprimé par le pipeline de réception

16

  • `Formatting`

  • Choix entre le formatage du journal :

    - ECS log format 1.0.0. pour le format Elastic Common Schema (ECS)
    - Rétrocompatibilité avec héritage 2.5.3.102 pour l’exportation syslog standard

26

`Custom fields and values`

De la zone aux champs et valeurs personnalisés
Contenu de cette zone :

27

  • Sélecteur `Enabled`

  • Active la fonctionnalité. Désactivé par défaut.

32

`Log selection`

Zone pour sélectionner le journal à exporter.
Contenu de cette zone :

31

  • `All logs`

  • Case à cocher pour sélectionner tous les journaux
    La liste des types de journaux s’affiche. Les types de journaux sont les suivants : `alerts` (30), `protocols` (29) et `system_logs` (28)
    Les types d’alertes sont détaillés dans la note ci-dessous.
    Les types de protocoles sont détaillés dans la note ci-dessous : ces protocoles sont les protocoles Sigflow.
    Le système system_logs n’a qu’un seul choix : la notification.

33

`Filter by IP address or subnet`

Permet de sélectionner la source des événements avec son adresse IP ou sous-réseau. Par défaut, toutes les données sont envoyées au serveur distant si le champ est vide.

35

`Gcap involved in events`

Zone pour sélectionner les données à envoyer : toutes les données du GCap jumelées et sélectionnées au GCenter sont envoyées au serveur distant
Contenu de cette zone :

34

  • `All (current and futures)`

  • Case à cocher pour sélectionner tous les GCaps connus
    La liste des GCaps s’affiche. Chaque GCap peut être sélectionné indépendamment.

17

`Ip addresses`

Filtrer par IP ou réseaux. Par défaut, toutes les données sont envoyées au serveur distant si le champ est vide

Note

`Select All` sélectionne tous les protocoles listés : un protocole qui n'est pas sélectionné ne sera pas exporté.
Si la version du GCap est plus récente que celle du GCenter, certains protocoles peuvent manquer.
Pour tout exporter, désactiver ce filtre avec `Deselect all` .

Note

La zone `TLS` et la fonction de vérification du CA (`Verify CA`) permettent de chiffrer le flux généré par le GCenter.
L’entrée "syslog" de Logstash n’est pas compatible avec le cryptage des données.
Cette fonction ne peut pas être utilisée.
  • Valider en utilisant le bouton `Save changes` (18).
    Le message suivant indique que la mise à jour a été effectuée : `Updated with success`.

8.6.2.6. Procédure à effectuer sur le serveur

  • Configurer le pipeline de réception du flux provenant du GCenter.


8.6.2.6.1. Pipeline Logstash

L'input utilisé est de type Syslog.
Afin d'être compatible avec n'importe quel en-tête Syslog, un motif grok est spécifié.
Le contenu JSON du log se trouve dans le champ syslog_message.
yaml
input {
  syslog {
    port => $LOGSTASH_PORT
    type => syslog
    grok_pattern => '^<%{NUMBER:syslog_priority}>(?:1 |)(?:%{SYSLOGTIMESTAMP:syslog_timestamp}|%{TIMESTAMP_ISO8601:syslog_timestamp}) %{SYSLOGHOST:syslog_hostname} (?:gatewatcher\[-\]:|gatewatcher - - \[-\]) %{GREEDYDATA:syslog_message}\n$'
  }
}
Seul, le champ syslog_message est conservé et est converti en JSON.
Le champ d'origine (syslog_message) et le champ propre à elasticsearch (@version) sont ensuite retirés.
yaml
filter {
  prune {
    whitelist_names => [ "syslog_message" ]
  }

  json {
    source => "syslog_message"
  }

  mutate {
    remove_field => [ "@version","syslog_message" ]
  }
}
N'importe quel output peut être ensuite utilisé.
Dans cet exemple, les logs sont décrits directement sur le disque sous forme de fichiers :
yaml
output {
  file {
    path => '/usr/share/logstash/data/output/%{[type]}-%{+YYYY.MM.dd}.log'
    codec => json_lines
  }
}