Envoyer des logs depuis un logiciel - Apache
Découvrez en temps réel ce qui se passe sur vos sites web.
Objectif
Les logs d'accès Apache sont très précieux. Ils montrent l'activité de vos visiteurs, le temps de livraison des pages, les résultats de code, l'agent utilisateur ayant accédé à vos sites web, etc. Logs Data Platform vous aide à analyser en profondeur cette information clé.
La ligne de log Apache par défaut ressemble à ceci :
Cette ligne donne déjà beaucoup d'informations, mais il peut être difficile d'extraire des données réellement utiles de logs en texte brut. Vous savez peut-être déjà qu'il existe de nombreuses façons d'exporter vos logs Apache : logstash, beats, graylog-collector, syslog-ng, rsyslog, le module apache gelf. Mais comme il reste encore beaucoup à explorer sur Logs Data Platform, commençons par quelque chose de simple.
Ce guide vous présente trois méthodes non intrusives pour envoyer des logs vers Logs Data Platform :
- demander à Apache d'envoyer les entrées de log directement à la plateforme.
- utiliser syslog-ng pour parser et envoyer tous vos logs
- configurer filebeat avec le module apache
Prérequis
Pour suivre ce guide, vous aurez besoin de :
- Le paquet openssl : car nous l'utilisons pour envoyer les logs de manière sécurisée.
- Avoir activé votre compte Logs Data Platform.
- Créer au moins un flux et obtenir son jeton.
En pratique
Utiliser Apache pour envoyer les logs directement
La procédure suivante a l'avantage d'une configuration rapide mais n'est pas du tout recommandée en production, car elle peut bloquer le processus Apache en cas de trafic important. En production, veuillez utiliser une solution non bloquante comme la seconde solution de ce guide, ou celle-ci : Envoyer des logs vers Logs Data Platform avec Filebeat
Configuration globale d'Apache
Nous allons d'abord configurer Apache2 pour envoyer les logs de tous les Virtual Hosts vers un seul flux.
Si vous avez une configuration liée aux logs dans vos virtual hosts, vous devez la retirer ou vous rendre à la section suivante pour ajouter une configuration spécifique à un virtual host.
Nous utilisons la directive de format CustomLog pour transformer les logs Apache au format LTSV et les envoyer vers Logs Data Platform avec le jeton OVHcloud approprié. Notez que 3 champs sont obligatoires avec le format LTSV : host, message et time (au format RFC 3339). Reportez-vous aux exemples ci-dessous pour savoir comment renseigner ces champs. Veuillez créer le fichier /etc/httpd/conf-enabled/ldp.conf ou /etc/apache2/conf-enabled/ldp.conf (l'emplacement du fichier dépend de votre distribution et de votre version d'Apache) et insérez ce qui suit :
Si vous devez envoyer vos logs vers un flux supplémentaire, vous devrez répéter cet extrait et changer le nom combined_ltsv du LogFormat de votre nouvel extrait vers un nouveau nom.
Notez que vous devrez remplacer l'adresse et le port de <your_cluster>.logs.ovh.com par ceux qui vous ont été attribués (consultez la page Home pour les récupérer). Assurez-vous que le chemin complet d'openssl est correct pour votre système, sinon cela ne fonctionnera pas. Assurez-vous également que votre X-OVH-TOKEN est correctement renseigné. Ce tutoriel couvre uniquement l'envoi de vos logs d'accès vers Logs Data Platform. Pour envoyer vos logs d'erreur, vous devez configurer votre template syslog pour envoyer les logs vers Logs Data Platform. Enfin, vérifiez que vous n'utilisez aucune option CustomLog dans votre configuration VirtualHost, car la configuration VirtualHost est prioritaire sur la configuration globale.
Configuration VirtualHost
Si vous souhaitez envoyer uniquement les logs d'un VirtualHost spécifique, ou envoyer des informations spécifiques sur un VirtualHost, utilisez cette configuration pour envoyer les logs vers Logs Data Platform :
Voici ce que vous voyez sur Graylog lorsque vous envoyez vos logs. Les logs sont déjà correctement parsés et vous pouvez immédiatement lancer des recherches spécifiques dessus :
Utiliser un template syslog-ng
Si vous avez déjà syslog-ng sur votre hôte et que vous souhaitez profiter de ses fonctionnalités (rotation des logs, reconnexion automatique, destinations multiples). Voici les extraits de configuration vous permettant d'utiliser ce logiciel.
Configuration Apache
La configuration est assez similaire à celle utilisée dans la première partie de ce document. Le seul changement est le chemin du fichier de log.
Configuration Syslog-ng
Pour rester concis, cet extrait ne contient que les parties pertinentes pour le fichier de log d'accès. Le tutoriel syslog-ng couvre la configuration pour tout fichier syslog (comme le fichier de log d'erreur). Cette configuration n'est valable que pour syslog-ng 3.8+.
Format des logs Apache
Si vous souhaitez utiliser votre propre format de log et inclure des informations utiles, voici un aide-mémoire pour vous (notez que les labels suivent les conventions de nommage des champs).
La liste complète des formats de log utilisables dans Apache est décrite ici mod_log_config.html
Utiliser Filebeat
Les dernières versions de Filebeat disposent d'un module dédié pour Apache2. Cette solution est prête à l'emploi à configurer et est plus adaptée à la production. La procédure complète de son installation est décrite sur cette page dans le cas d'usage des logs Apache.
Aller plus loin
- Pour bien démarrer : Démarrage rapide
- Documentation : Guides
- Hub communautaire : communauté d'utilisateurs
- Créer un compte : Essayez !