# Documentation : Script de Configuration rsyslog Multi-Profils Ce dépôt contient un script Bash automatisé permettant d'installer et de configurer rsyslog sur des clients Linux (Debian/Ubuntu) afin d'envoyer les journaux d'événements vers un serveur centralisé (ex: Graylog). ## 📝 Présentation Le script `configure_rsyslog.sh` simplifie la mise en conformité de la journalisation en proposant des configurations adaptées selon le rôle du serveur (Web, Base de données, Sécurité, ou Défaut). ### Caractéristiques principales - Installation automatique du paquet `rsyslog` si manquant. - Gestion de profils pour filtrer les logs envoyés (réduction du bruit réseau). - Flexibilité du protocole (Support UDP et TCP). - Vérification des privilèges root. ## ⚙️ Configuration du script Avant l'exécution, modifiez les variables globales au début du script pour correspondre à votre infrastructure : ```bash LOG_SERVER_HOST="graylog.h3campus.fr" # IP ou FQDN du serveur central LOG_SERVER_PORT="514" # Port d'écoute PROTOCOL="UDP" # UDP (rapide) ou TCP (fiable) ``` ## 🚀 Utilisation Le script nécessite un argument correspondant au profil souhaité. ### Syntaxe ```bash sudo ./configure_rsyslog.sh ``` ### Profils Disponibles | Profil | Cible | Logs envoyés | |--------|-------|--------------| | `web` | Apache, Nginx | Daemons, erreurs système, logs local2. | | `db` | PostgreSQL, MariaDB | Erreurs critiques, noyau, logs local0. | | `security` | Firewall, Bastion, VPN | Authentification (auth, authpriv), kernel, cron. | | `default` | Serveur générique | Infos système générales, kernel (exclut mail/news). | ### Exemple d'installation pour un serveur Web ```bash chmod +x configure_rsyslog.sh sudo ./configure_rsyslog.sh web ``` ## 📂 Détails Techniques ### Emplacement des fichiers - **Script** : `/usr/local/bin/configure_rsyslog.sh` (recommandé). - **Configuration générée** : `/etc/rsyslog.d/50-remote-custom.conf`. ### Fonctionnement des protocoles - Si `PROTOCOL="UDP"`, le script utilise `@` dans la configuration rsyslog. - Si `PROTOCOL="TCP"`, le script utilise `@@` pour garantir la livraison des paquets. ## 🛠 Dépannage (Troubleshooting) - Vérifier si le service tourne : ```bash systemctl status rsyslog ``` - Tester la connectivité vers le serveur de logs : ```bash # Pour UDP nc -zv -u graylog.h3campus.fr 514 # Pour TCP nc -zv graylog.h3campus.fr 514 ``` - Consulter les erreurs rsyslog locales : ```bash journalctl -u rsyslog ```