Le monitoring des applications est crucial pour détecter les problèmes et assurer une performance optimale. Dans le monde de Symfony, l’envoi de logs à des plateformes externes telles que Graylog peut être un atout inestimable. Dans cet article, nous explorerons comment intégrer Symfony avec Graylog en utilisant le format GELF (Graylog Extended Log Format).
1. Pré-requis : Installation des dépendances
Avant de plonger dans la configuration, assurez-vous d’avoir installé les dépendances nécessaires. Deux bibliothèques principales sont requises : graylog2/gelf-php
et symfony/monolog-bundle
(si elles ne sont pas déjà installées).
composer require graylog2/gelf-php symfony/monolog-bundle
2. Configuration de Monolog
La prochaine étape consiste à configurer Monolog pour qu’il sache comment et où envoyer les logs. Pour ce faire, modifiez le fichier config/packages/monolog.yaml
(pour Symfony 4/5) comme suit :
monolog:
channels: ['graylog']
handlers:
graylog:
type: gelf
publisher:
hostname: your_graylog_host
port: 12201 # Valeur par défaut. Modifiez selon votre setup Graylog
level: debug # Ajustez selon vos besoins
channels: ['graylog']
3. Logger depuis votre application
Avec la configuration précédente en place, vous pouvez maintenant envoyer des logs depuis votre application Symfony directement à Graylog :
$logger = $this->get('monolog.logger.graylog');
$logger->info('Mon message');
4. Sécurité et mode de transport
Par défaut, l’envoi de logs se fait via UDP, qui est rapide mais ne garantit pas la livraison. Si votre environnement exige un transport plus sécurisé comme TCP ou une sécurité supplémentaire comme TLS, vous devriez considérer des ajustements supplémentaires dans votre setup Graylog.
5. Dernières étapes et vérifications
Une fois toutes les configurations en place, lancez votre application Symfony et testez la génération de quelques logs. Ces logs devraient idéalement être visibles dans votre instance Graylog. Une étape cruciale à ne pas oublier est de s’assurer que votre Graylog est configuré pour accepter les entrées GELF et écoute sur le port spécifié.
Conclusion
Intégrer Symfony avec Graylog offre une perspective claire de la performance et des potentiels problèmes de votre application. Toutefois, gardez à l’esprit de toujours adapter les paramètres à vos besoins spécifiques et de consulter la documentation pertinente pour une intégration réussie.