Objectifs de certification

CCNA 200-301

  • 4.5 Décrire l’utilisation des fonctionnalités de syslog features en ce inclus les facilities et niveaux


Gestion des logs SYSLOG

1. Protocole Syslog

Syslog est un protocole définissant un service de journaux d’événements d’un système informatique. C’est aussi le nom du format qui permet ces échanges.

En tant que protocole, Syslog se compose d’une partie cliente et d’une partie serveur. La partie cliente émet les informations sur le réseau, via le port UDP 514. Il est possible d’utiliser TCP. Les serveurs collectent l’information et se chargent de créer les journaux.

L’intérêt de Syslog est donc de centraliser les journaux d’événements, permettant de repérer plus rapidement et efficacement les défaillances d’ordinateurs présents sur un réseau.

Il existe aussi un logiciel appelé Syslog, qui est responsable de la prise en charge des fichiers de journalisation du système.

Syslog est la solution de journalisation standard sur les systèmes Unix et Linux, il y a également une variété d’implémentations Syslog sur d’autres systèmes d’exploitation (Windows notamment) et est généralement trouvé dans les périphériques réseau tels que les commutateurs ou routeurs.

1.1. Format Syslog

Un journal au format Syslog comporte dans l’ordre les informations suivantes :

  1. la date à laquelle a été émis le log,
  2. le nom de l’équipement ayant généré le log (hostname),
  3. une information sur le processus qui a déclenché cette émission,
  4. le niveau de gravité du log,
  5. un identifiant du processus ayant généré le log
  6. et enfin un corps de message.

Certaines de ces informations sont optionnelles.

Par exemple :

Sep 14 14:09:09 machine_de_test dhcp service[warning] 110 corps du message

Les origines peuvent être multiples et sont juxtaposées à l’aide d’un ‘;’.

Elles sont construites sous la forme :

facility.criticity

La gravité (criticity) doit être comprise comme la criticité minimale, ainsi user.critical correspond au message d’origine utilisateur pour le niveau de gravité critical et les niveaux supérieurs, en l’occurrence alert et emergency.

Le mot-clef “none” peut lui aussi être utilisé afin de filtrer les messages, il est alors utilisé en lieu et place de la gravité.

1.2. Niveaux de gravité

NNiveauSignification
0EmergSystème inutilisable
1AlertUne intervention immédiate est nécessaire
2CritErreur critique pour le système
3ErrErreur de fonctionnement
4WarningAvertissement
5NoticeÉvénement normal méritant d’être signalé
6InformationalPour information seulement
7DebugDéboggage

1.3. Origine

Outre les niveaux de gravité, les messages sont orientés au regard de leur origine, dont les codes sont regroupés suivant des types que l’on appelle des “facilités”, soit l’origine, de local0 à local7 à personnaliser. On peut trouver :

FacilitéOrigine
AUTHMessage de sécurité/autorisation.
AUTHPRIVMessage de sécurité/autorisation (privé).
CRONMessage d’un démon horaire.
DAEMONDémon du système sans classification particulière.
FTPDémon ftp.
KERNMessage du noyau.
LOCAL0 à LOCAL7Réservé pour des utilisations locales.
LPRMessage du sous-système d’impression.
MAILMessage du sous-système de courrier.
NEWSMessage du sous-système des news USENET.
SYSLOGMessage interne de syslogd.
USER (défaut)Message utilisateur générique.
UUCPMessage du sous-système UUCP.

2. Les logs en Cisco IOS

2.1. Show logging

#show logging
Syslog logging: enabled (0 messages dropped, 3 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled)

No Active Message Discriminator.

No Inactive Message Discriminator.


    Console logging: level debugging, 31 messages logged, xml disabled,
                     filtering disabled
    Monitor logging: level debugging, 0 messages logged, xml disabled,
                     filtering disabled
    Buffer logging:  level debugging, 33 messages logged, xml disabled,
                    filtering disabled
    Exception Logging: size (8192 bytes)
    Count and timestamp logging messages: disabled
    Persistent logging: disabled

On constate au début de la sortie que la journalisation Syslog est activée par défaut Syslog logging: enabled.

On trouve aussi trouve trois configurations concernant l’apparition des messages :

  • en consoles physiques (Console logging)
  • en consoles vty (ssh, telnet, …) (Monitor logging)
  • mémoire tampon (taille limitée) (Buffer logging)

2.2. Console logging

Désactivation des logs en console physique :

(config)#no logging console

Configuration du niveau de logs :

#logging console ?
  <0-7>          Logging severity level
  alerts         Immediate action needed           (severity=1)
  critical       Critical conditions               (severity=2)
  debugging      Debugging messages                (severity=7)
  discriminator  Establish MD-Console association
  emergencies    System is unusable                (severity=0)
  errors         Error conditions                  (severity=3)
  filtered       Enable filtered logging
  guaranteed     Guarantee console messages
  informational  Informational messages            (severity=6)
  notifications  Normal but significant conditions (severity=5)
  warnings       Warning conditions                (severity=4)
  xml            Enable logging in XML
  <cr>

2.3. Monitor logging

Pour activer l’apparition des logs dans une session VTY (telnet, ssh, …), en mode privilège :

#terminal monitor

2.4. Buffer logging

Mise en tampon des logs :

#logging buffered ?
  <0-7>              Logging severity level
  <4096-2147483647>  Logging buffer size
  alerts             Immediate action needed           (severity=1)
  critical           Critical conditions               (severity=2)
  debugging          Debugging messages                (severity=7)
  discriminator      Establish MD-Buffer association
  emergencies        System is unusable                (severity=0)
  errors             Error conditions                  (severity=3)
  filtered           Enable filtered logging
  informational      Informational messages            (severity=6)
  notifications      Normal but significant conditions (severity=5)
  warnings           Warning conditions                (severity=4)
  xml                Enable logging in XML to XML logging buffer
  <cr>

Pour fixer la taille du tampon, par exemple :

#logging buffered 64000

2.5. Visualisation des logs en tampon

#show logging

2.6. Effacer les messages de logs

Par exemple la commande clear logging efface les logs en tampon et reconnecte un serveur Syslog configuré.

#clear logging
Clear logging buffer [confirm]

2.7. Commande Debug

Pour activer des messages de débogage on utilise les commandes debug/ undebug avec la possibilité de choisir finement la fonctionnalité ou le protocole à auditer.

Par exemple :

#debug ip ospf adj
OSPF adjacency debugging is on


Pour désactiver ce débogage :

#no debug ip ospf adj
OSPF adjacency debugging is off

Ou désactiver tout débogage :

#undebug all
All possible debugging has been turned off

3. Configuration Syslog client Cisco IOS

En configuration globale.

3.1. Procédure

  • Configuration de l’horodatage.
  • Adresse du serveur syslog.
  • Configuration de l’origine.
  • Configuration du niveau de gravité.

3.2. Configuration de l’horodatage

(config)#service timestamps log datetime ?
  localtime      Use local time zone for timestamps
  msec           Include milliseconds in timestamp
  show-timezone  Add time zone information to timestamp
  year           Include year in timestamp
  <cr>

service timestamps log datetime
service timestamps debug datetime

3.3. Adresse du serveur Syslog

logging <ip_adress>

3.4. Configuration de l’origine

logging facility <origine>

<origine> peut varier de Local0 à Local7 (Local7 par défaut)

3.5. Configuration du niveau de gravité

logging trap <niveau>

<niveau> peut être :

#logging trap ?
  <0-7>          Logging severity level
  alerts         Immediate action needed           (severity=1)
  critical       Critical conditions               (severity=2)
  debugging      Debugging messages                (severity=7)
  emergencies    System is unusable                (severity=0)
  errors         Error conditions                  (severity=3)
  informational  Informational messages            (severity=6)
  notifications  Normal but significant conditions (severity=5)
  warnings       Warning conditions                (severity=4)
  <cr>

3.6. Trap SNMP

logging snmp-trap <niveau>

Vérification :

show logging

3.7. Ajout de l’origine

logging origin-id ?
  hostname  Use origin hostname as ID
  ip        Use origin IP address as ID
  ipv6      Use origin IPv6 address as ID
  string    Define a unique text string as ID
  <cr>
logging origin-id ip

Ou encore la commande logging source-interface permet de préciser l’interface qui fournira l’adresse IP :

int lo0
 ip add 1.1.1.1 255.255.255.255
!
logging source-interface lo0

3.8. Commandes IOS

debug 				Debugging functions (see also 'undebug')
logging 			Handles logging operations
monitor 			Monitoring different system events
undebug 			Disable debugging functions (see also 'debug')

3.9. Serveur Rsyslog

# grep -v ^# /etc/rsyslog.conf | grep -v ^$
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
local7.* 			/var/log/cisco.log

# touch /var/log/cisco.log
# systemctl restart rsyslog
# ss -an | grep :514
# tail -f /var/log/cisco.log

3.10. Historique

#show logging history
Syslog History Table:1 maximum table entries,
saving level warnings or higher
 46 messages ignored, 0 dropped, 0 recursion drops
 10 table entries flushed
 SNMP notifications not enabled
   entry number 11 : LINK-2-INTVULN
    In critical region with interrupt level=0, intfc=GigabitEthernet0/1
    timestamp: 190343