Formation en Réseaux et systèmes: Linux - Debugging avancé - Ascent Formation
Retour aux formations
Réseaux et systèmes

Linux - Debugging avancé

5 jour(s)35h

Description

Objectif de formation : Maîtriser les techniques avancées de debugging sous Linux, en mettant l'accent sur l'observabilité, l'analyse de performance, et la sécurisation des systèmes. Développer une expertise dans l'utilisation d'outils modernes pour diagnostiquer et résoudre des problèmes complexes à tous les niveaux (système, utilisateur, noyau).

Objectifs pédagogiques

  • Comprendre et utiliser les outils de debugging avancés sous Linux
  • Diagnostiquer et résoudre des problèmes systèmes et applicatifs complexes
  • Analyser et interpréter les traces et logs pour le debugging
  • Utiliser des techniques de profiling pour optimiser les performances
  • Appliquer des méthodes de debugging pour les environnements de production
  • Analyser des mécanismes de synchronisation dans le noyau Linux
  • Débugger des systèmes post-mortem en analysant des crash dumps avec des outils avancés
  • Utiliser eBPF pour profiler et tracer des applications et systèmes

Public concerné

Administrateurs systèmes
Développeurs logiciels
Ingénieurs DevOps
Exploitants systèmes ou applicatifs

Prérequis

Bonnes connaissances de l’utilisation de Linux

Déroulé du programme

1

Introduction au debugging sous Linux (2 heures)

2h
  • Concepts fondamentaux du debugging
  • Importance du debugging dans l'administration système et le développement
  • Présentation des outils de debugging disponibles sous Linux
  • Concepts d'observabilité et importance dans les environnements modernes
2

Outils de debugging de base (5 heures)

5h
  • Utilisation de gdb pour le debugging des applications
  • Utilisation de strace pour le suivi des appels système
  • Utilisation de lsof pour la surveillance des fichiers ouverts
  • Utilisation de dmesg et des logs du noyau pour le debugging système
  • Utilisation de top, htop et ps pour la surveillance des processus
  • Présentation de lsof, dmesg et des outils classiques en les reliant aux outils modernes
  • Illustration des bases avec un cas d’étude utilisant strace et dmesg
  • Travaux pratiques : Utilisation des outils de base pour diagnostiquer et résoudre des problèmes simples sur des applications et des systèmes
3

Debugging avec GDB (4 heures)

4h
  • Techniques avancées de gdb : breakpoints, watchpoints, et conditionnels
  • Analyse des core dumps pour le post-mortem debugging
  • Debugging de programmes multi-threadés avec gdb
  • Scripts et automatisation avec gdb
  • Mise en œuvre de scripts et d’automatisations pour des scénarios complexes
  • Travaux pratiques : Debugging avancé d'une application C/C++ multi-threadée avec gdb
4

Tracing et logging avancé (4 heures)

4h
  • Utilisation de ltrace pour le suivi des appels de bibliothèque
  • Utilisation de systemtap pour le tracing des événements noyau et utilisateur
  • Utilisation de perf pour le profiling et l'analyse des performances
  • Analyse avancée des logs avec journalctl et rsyslog
  • Utilisation d’eBPF et de ftrace pour des analyses détaillées
  • Tracing global du système avec Kernelshark et LTTng
  • Travaux pratiques : eBPF et perf pour profiler une application critique
  • Travaux pratiques : Tracing d'une application avec systemtap et analyse des performances avec perf
5

Debugging des problèmes système (4 heures)

4h
  • Analyse et résolution des problèmes de mémoire avec valgrind et memcheck
  • Debugging des problèmes de disque et de fichiers avec iostat, iotop et blktrace
  • Analyse des pannes système et utilisation des outils de crash dump (kdump, crash)
  • Debugging des problèmes de démarrage avec bootchart et systemd-analyze
  • Résolution d’erreurs mémoire avec massif et libefence
  • Études approfondies des mécanismes de synchronisation du noyau
  • Travaux pratiques : Résolution des problèmes de mémoire et de disque sur un système Linux
6

Debugging des problèmes réseau (4 heures)

4h
  • Utilisation de tcpdump et wireshark pour l'analyse des paquets réseau
  • Debugging des problèmes de connectivité avec ping, traceroute et netstat
  • Analyse des performances réseau avec iftop et bmon
  • Debugging des applications réseau avec nc et telnet
  • Travaux pratiques : Analyse des paquets réseau avec tcpdump et résolution des problèmes de connectivité
7

Debugging des applications (4 heures)

4h
  • Utilisation de strace et ltrace pour le debugging des applications
  • Analyse des performances des applications avec gprof et perf
  • Debugging des applications Java avec jstack, jmap et jconsole
  • Debugging des applications Python avec pdb et py-spy
  • Debugging d’applications multilingues (C++, Python) en utilisant Valgrind et py-spy
  • Travaux pratiques : Debugging d'une application Java et Python avec les outils appropriés
8

Debugging et sécurité (4 heures)

4h
  • Analyse des attaques et debugging des problèmes de sécurité
  • Utilisation de auditd pour le suivi des événements de sécurité
  • Debugging des politiques de sécurité avec SELinux et AppArmor
  • Utilisation de chkrootkit et rkhunter pour la détection des rootkits
  • Étude approfondie des politiques SELinux, AppArmor, et leurs implications
  • Utilisation avancée d’auditd pour suivre les événements critiques
  • Travaux pratiques : Mise en place et debugging des politiques de sécurité avec SELinux et AppArmor
9

Méthodologies de debugging (4 heures)

4h
  • Approche systématique du debugging : identification, reproduction, isolation, résolution et prévention
  • Utilisation de scripts et d'automatisation pour le debugging
  • Collaboration et communication efficace dans le processus de debugging
  • Documentation et partage des connaissances
  • Travailler sur des cas simulés post-mortem (crash dumps)
  • Documentation des analyses avec outils adaptés (Kernelshark, perf)
  • Travaux pratiques : Application des méthodologies de debugging sur des cas pratiques

Informations

Durée

5 jour(s)

35h

Tarif

3450 € HT

HT

Prochaines sessions