Superviser les logs Syslog Cisco avec Logstash, Elasticsearch et Kibana
- Mise à jour le 14 mai 2026
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.
Installer Logstash sur Debian
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-ciscoafin 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.
- 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 :
- Vous devriez maintenant voir les index Elasticsearch des switchs Cisco créé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 :
- Cliquez sur Create data view pour créer une nouvelle vue de données Kibana :
- 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 :
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 :
- Cliquez sur Create dashboard afin de créer un nouveau tableau de bord Kibana :
- Cliquez sur Create visualization afin d’ajouter une nouvelle visualisation au tableau de bord Kibana :
- Sélectionnez la vue de données Cisco Switches créée précédemment, puis choisissez Pie comme type de visualisation :
- Glissez-déposez les champs
host.ip.keywordetcisco_code.keyworddans la zone de visualisation :
- 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 :
Tableau de données
- Depuis le tableau de bord Kibana, cliquez sur Add, puis sélectionnez Visualization afin de créer un nouveau panneau :
- Sélectionnez Table comme type de visualisation :
- Glissez-déposez les champs
host.ip.keyword,syslog_message.keywordetcisco_code.keyworddans la visualisation de type tableau :
- 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 :
- Cliquez sur Save pour enregistrer le tableau de bord, puis saisissez un nom pour le nouveau tableau de bord Kibana :