rss logo

Superviser les logs Syslog Cisco avec Logstash, Elasticsearch et Kibana

Logstash logo

Maintenant que notre Elastic Stack est prête à l’emploi, nous pouvons commencer à superviser les équipements réseau. Dans cet article, nous utiliserons des switchs Cisco Small Business/SG comme exemple.

Les switchs Cisco utiliseront le protocole Syslog pour envoyer leurs messages de journalisation vers Logstash.

Logstash recevra les messages Syslog, extraira et parsera les informations utiles, puis transmettra les données structurées à Elasticsearch.

Ce tutoriel explique comment installer et configurer Logstash sous Debian Linux afin de collecter les logs Syslog de switchs Cisco, les parser avec des filtres Grok, les stocker dans Elasticsearch et visualiser les données grâce à des tableaux de bord Kibana.

Fonctionnement du pipeline Logstash pour les logs Syslog Cisco

Dans cet exemple, les switchs Cisco envoient leurs messages Syslog à Logstash, qui parse et enrichit les logs avant de les transmettre à Elasticsearch.

Schéma montrant des switchs Cisco envoyant des messages Syslog vers les pipelines d’entrée, de filtrage et de sortie de Logstash avant l’indexation des données dans Elasticsearch
Pipeline Logstash traitant les messages Syslog de switchs Cisco avant l’envoi des données structurées vers Elasticsearch.

Installer Logstash sur Debian

💡 Note : dans cette configuration, Logstash est installé sur le même serveur qu’Elasticsearch.

Si vous n’avez pas encore importé la clé PGP d’Elasticsearch ni ajouté le dépôt correspondant, consultez la partie I.

  • Installez Logstash :
root@host:~# apt update && apt install logstash

Gérer le service Logstash

  • Vérifiez l’état du service Logstash :
root@host:~# systemctl status logstash.service
  • Activez Logstash au démarrage :
root@host:~# systemctl enable logstash.service
  • Démarrez le service Logstash :
root@host:~# systemctl start logstash.service

Vérifier les logs Logstash

  • Affichez le fichier de logs de Logstash :
root@host:~# tail /var/log/logstash/logstash-plain.log

Configurer le pipeline Logstash

Fichiers du pipeline Logstash

Les fichiers de configuration du pipeline Logstash définissent les étapes d’entrée, de filtrage et de sortie utilisées pour collecter, parser et transférer les messages Syslog Cisco. Sous Debian, ces fichiers sont stockés dans le répertoire /etc/logstash/conf.d.

Créer le fichier de configuration Cisco pour Logstash

  • Créez le fichier /etc/logstash/conf.d/cisco.conf :
input {
	udp {
		port => "5514"
		type => "syslog-udp-cisco"
	}
}

filter {
	grok {  
		#Remember, the syslog message looks like this : <190>%LINK-I-Up: gi1/0/13
		match => { "message" => "^<%{POSINT:syslog_facility}>%%{DATA:cisco_code}: %{GREEDYDATA:syslog_message}" }
	}
} 
output {
	elasticsearch {
		hosts           => ["https://127.0.0.1:9200"]
                ssl_enabled     => true
                user            => "elastic"
                password        => "elastic_password;)"
                index           => "cisco-switches-%{+YYYY.MM.dd}"
                ssl_verification_mode => "none"

	}
}
  • Redémarrez le service Logstash afin d’appliquer les modifications :
root@host:~# systemctl restart logstash.service

Explication du fichier pipeline Logstash

Comme montré ci-dessus, le fichier de configuration du pipeline Logstash est divisé en trois sections principales : input, filter et output.

Input

La section input définit la manière dont Logstash reçoit les messages Syslog Cisco. Dans cet exemple, Logstash écoute le trafic Syslog UDP entrant sur le port 5514.

  • Utilisez le plugin d’entrée UDP :
udp {
  • Spécifiez le port d’écoute :
port => "5514"
  • Ajoutez le type syslog-udp-cisco afin d’identifier les événements Syslog Cisco dans Elasticsearch et Kibana :
type => "syslog-udp-cisco"
Filter

La section filter permet à Logstash de parser les messages Syslog Cisco bruts et d’extraire les champs utiles. L’objectif est de transformer chaque message en données structurées, qui pourront ensuite être recherchées, filtrées et visualisées dans Kibana.

Par exemple, un message Syslog Cisco comme <190>%LINK-I-Up: gi1/0/13 peut être découpé en facility Syslog, en code d’événement Cisco et en contenu du message.

Exemple de pattern Grok Logstash parsant un message Syslog Cisco en facility Syslog, code d’événement Cisco et champ de message Syslog
Exemple de pattern Grok utilisé par Logstash pour parser les messages Syslog de switchs Cisco en champs structurés Elasticsearch.
  • Les patterns Grok couramment utilisés incluent :
    • WORD : correspond à un seul mot
    • NUMBER : correspond à un entier positif ou négatif, ou à un nombre décimal
    • POSINT : correspond à un entier positif
    • IP : correspond à une adresse IPv4 ou IPv6
    • NOTSPACE : correspond à tout caractère qui n’est pas un espace
    • SPACE : correspond à un ou plusieurs espaces consécutifs
    • DATA : correspond à une quantité limitée de données quelconques
    • GREEDYDATA : correspond à toutes les données restantes
Output

Une fois les données Syslog Cisco parsées et structurées, la section output envoie les événements vers le serveur Elasticsearch.

  • Spécifiez l’adresse du serveur Elasticsearch :
hosts           => ["https://127.0.0.1:9200"]
  • Définissez le nom de l’index utilisé pour stocker les logs des switchs Cisco :
index           => "cisco-switches-%{+YYYY.MM.dd}"

Configurer les switchs Cisco pour Syslog

  • Configurez chaque switch Cisco afin d’activer la journalisation Syslog et de spécifier l’adresse IP du serveur Logstash :
Switch(config)# logging host 192.168.1.200 port 5514

Tester et dépanner le pipeline Logstash

Vérifier le fichier pipeline Logstash

  • Vérifiez la syntaxe du fichier de configuration du pipeline Logstash :
root@host:~# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/pipeline.conf --config.test_and_exit

Tester manuellement la sortie du pipeline Logstash

  • Arrêtez le service Logstash :
root@host:~# systemctl stop logstash.service
  • Ajoutez un port d’écoute ainsi qu’une sortie stdout dans votre fichier pipeline afin d’afficher directement les événements dans la console :
input {
	tcp {
		port => "5514"
		type => "syslog-tcp-telnet"
	}
}

[…]
output {
	stdout { codec => rubydebug }
}
  • Exécutez Logstash manuellement avec le fichier de configuration du pipeline Cisco :
root@host:~# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/cisco.conf --config.reload.automatic
  • Utilisez telnet pour vous connecter au port d’écoute de Logstash et envoyer un message Syslog de test. Ce test fonctionne uniquement avec le plugin d’entrée TCP :
root@host:~# telnet 192.168.1.200 5514
<190>%LINK-I-Up: gi1/0/13

Lister les index Elasticsearch

Maintenant que les switchs Cisco sont correctement configurés, nous pouvons vérifier que leurs événements Syslog sont bien indexés dans Elasticsearch.

  • Listez les index Elasticsearch :
root@host:~# curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200/_cat/indices?v
Enter host password for user 'elastic':
health status index                             uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .apm-agent-configuration          rkV4oelEQzC7zJ19_NYbcw   1   0          0            0       208b           208b
green  open   .kibana_1                         rtWr4Pk-TKmYrQ_jQ7Oi4Q   1   0       1689           93      2.6mb          2.6mb
green  open   .apm-custom-link                  Yo72Y9STSAiuSUWT40AJnw   1   0          0            0       208b           208b
green  open   .kibana_task_manager_1            o_uGNd0mQSu6X5_th3P2ng   1   0          5        50053      4.5mb          4.5mb
green  open   .async-search                     3RGoSaTXRLizPMce1I169w   1   0          3            6       10kb           10kb
yellow open   cisco-switches-2026.05.10         gs_PaI2iT_CMQhABskEB6g   1   1      17109            0      1.5mb          1.5mb
green  open   .kibana-event-log-7.10.2-000002   r_1sdbv0QW2XNR0bcvZN2g   1   0          1            0      5.6kb          5.6kb
yellow open   cisco-switches-2026.05.06         j9yz1SWzRwaG_int0rX4YQ   1   1       2283            0    338.1kb        338.1kb
  • Affichez le contenu d’un index de switch Cisco :
root@host:~# curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic 'https://localhost:9200/cisco-switches-2026.05.06/_search?pretty'
Enter host password for user 'elastic':
[…]      
     {
        "_index" : "cisco-switches-2026.05.06",
        "_id" : "UXV3wngBMGalcfKW8ROi",
        "_score" : 1.0,
        "_source" : {
          "@version" : "1",
          "event" : {
            "original" : "<190>%AAA-I-DISCONNECT: User CLI session for user cisco over ssh , source 192.168.1.95 destination
  192.168.1.200  TERMINATED. The Telnet/SSH session may still be connected.  "
          },
          "syslog_facility" : "190",
          "@timestamp" : "2026-05-10T16:19:25.689752544Z",
          "host" : {
            "ip" : "192.168.1.200"
          },
          "syslog_message" : "User CLI session for user cisco over ssh , source 192.168.1.95 destination  192.168.1.200  TERM
INATED. The Telnet/SSH session may still be connected.  ",
          "message" : "<190>%AAA-I-DISCONNECT: User CLI session for user cisco over ssh , source 192.168.1.95 destination  1
92.168.1.200  TERMINATED. The Telnet/SSH session may still be connected.  ",
          "cisco_code" : "AAA-I-DISCONNECT",
          "type" : "syslog-udp-cisco"
        }
      },
[…]

Créer des visualisations Kibana pour les logs Cisco

Vérifier les index Elasticsearch dans Kibana

Maintenant que les données Syslog Cisco sont stockées dans des index Elasticsearch, nous pouvons créer un tableau de bord Kibana afin de visualiser les logs des switchs.

  • Ouvrez Firefox puis accédez à l’interface web Kibana :
  • Ouvrez le menu principal de Kibana puis accédez à Management > Stack Management > Index Management :
Menu de navigation Kibana affichant le chemin vers Stack Management et Index Management
Accédez à Kibana Index Management afin d’afficher les index Elasticsearch.
  • Vous devriez maintenant voir les index Elasticsearch des switchs Cisco créés par Logstash :
Kibana Index Management affichant les index Elasticsearch des switchs Cisco créés par Logstash
Index Elasticsearch contenant les événements Syslog des switchs Cisco collectés par Logstash.

Créer une vue de données Kibana

Nous allons maintenant créer une vue de données Kibana correspondant aux index des switchs Cisco générés par Logstash.

  • Ouvrez le menu principal de Kibana puis accédez à Management > Stack Management > Data Views :
Menu de navigation Kibana affichant le chemin vers Stack Management et Data Views
Ouvrez Kibana Data Views afin de créer un motif d’index pour les logs des switchs Cisco.
  • Cliquez sur Create data view pour créer une nouvelle vue de données Kibana :
Page Kibana Data Views avec le bouton Create data view mis en évidence
Créez une nouvelle vue de données Kibana pour les index Elasticsearch des switchs Cisco.
  • Donnez un nom à la vue de données, saisissez cisco-switches-* comme motif d’index afin de correspondre à tous les index des switchs Cisco, puis cliquez sur Save data view to Kibana :
Écran Kibana Create data view utilisant le motif d’index cisco-switches-* pour les logs des switchs Cisco
Créez une vue de données Kibana avec le motif d’index cisco-switches-*.

Créer un tableau de bord Kibana

Maintenant que les logs des switchs Cisco sont collectés, parsés et indexés dans Elasticsearch, nous pouvons créer un tableau de bord Kibana afin de visualiser les événements Syslog sous forme de graphiques et de tableaux.

Diagramme circulaire

  • Ouvrez le menu principal de Kibana puis accédez à Analytics > Dashboards :
Menu Analytics de Kibana affichant la section Dashboards
Ouvrez la section Kibana Dashboards afin de créer des visualisations pour les logs des switchs Cisco.
  • Cliquez sur Create dashboard afin de créer un nouveau tableau de bord Kibana :
Page Kibana Dashboards avec le bouton Create dashboard mis en évidence
Créez un nouveau tableau de bord Kibana pour les visualisations des logs des switchs Cisco.
  • Cliquez sur Create visualization afin d’ajouter une nouvelle visualisation au tableau de bord Kibana :
Tableau de bord Kibana vide avec le bouton Create visualization mis en évidence
Ajoutez une visualisation au tableau de bord Kibana pour superviser les logs Syslog des switchs Cisco.
  • Sélectionnez la vue de données Cisco Switches créée précédemment, puis choisissez Pie comme type de visualisation :
Interface Kibana Lens affichant la vue de données Cisco Switches avec le type de visualisation Pie sélectionné
Sélectionnez la vue de données Cisco Switches et créez un diagramme circulaire dans Kibana Lens.
  • Glissez-déposez les champs host.ip.keyword et cisco_code.keyword dans la zone de visualisation :
Kibana Lens affichant les champs host.ip.keyword et cisco_code.keyword glissés dans une visualisation de type diagramme circulaire
Glissez les champs des switchs Cisco dans Kibana Lens afin de créer un diagramme circulaire.
  • Vous devriez maintenant voir la visualisation diagramme circulaire finalisée pour les événements Syslog des switchs Cisco. Cliquez sur Save and return afin de l’ajouter au tableau de bord :
Diagramme circulaire Kibana affichant les événements Syslog des switchs Cisco regroupés par adresse IP hôte et par code d’événement Cisco
Diagramme circulaire des événements Syslog des switchs Cisco dans Kibana Lens.

Tableau de données

  • Depuis le tableau de bord Kibana, cliquez sur Add, puis sélectionnez Visualization afin de créer un nouveau panneau :
Menu Add d’un tableau de bord Kibana avec l’option Visualization mise en évidence
Ajoutez un nouveau panneau de visualisation au tableau de bord Kibana.
  • Sélectionnez Table comme type de visualisation :
Menu de visualisation Kibana Lens avec le type de visualisation Table sélectionné
Sélectionnez le type de visualisation Table dans Kibana Lens afin d’afficher les événements Syslog des switchs Cisco en lignes et colonnes.
  • Glissez-déposez les champs host.ip.keyword, syslog_message.keyword et cisco_code.keyword dans la visualisation de type tableau :
Interface Kibana Lens affichant des champs Syslog de switchs Cisco glissés dans une visualisation de type tableau
Ajoutez les champs Syslog des switchs Cisco dans la visualisation tableau Kibana Lens.
  • Vous devriez maintenant voir la visualisation tableau de données finalisée affichant les événements Syslog des switchs Cisco. Cliquez sur Save and return afin de l’ajouter au tableau de bord :
Visualisation tableau Kibana Lens affichant les messages Syslog, adresses IP et codes d’événements des switchs Cisco
Visualisation tableau des événements Syslog des switchs Cisco dans Kibana Lens.
  • Cliquez sur Save pour enregistrer le tableau de bord, puis saisissez un nom pour le nouveau tableau de bord Kibana :
Fenêtre Kibana Save as new dashboard utilisée pour enregistrer un tableau de bord de supervision des switchs Cisco
Enregistrez le tableau de bord Kibana contenant les visualisations Syslog des switchs Cisco.