Graylog: Choisir les types d'entrée
Comment choisir le bon type d'entrée Graylog
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Graylog cloud prête à l'emploi qui offre de nombreux avantages, notamment :
- Serveur e-mail SMTP illimité et dédié inclus.
- Mises à jour sans effort en un clic.
- Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://logs.votre-entreprise.com).
- Performance optimale et sécurité robuste grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Graylog cloud hosting de Stackhero !
Graylog propose une variété d'entrées. Ces entrées vous permettent d'envoyer des logs au serveur Graylog ou permettent à Graylog de récupérer des logs depuis une autre source.
Dans presque tous les cas, vous souhaiterez envoyer des données d'une application ou d'un appareil vers le serveur Graylog. Nous ne couvrirons pas les cas avancés où vous souhaitez que Graylog récupère des logs ailleurs. Cependant, si vous souhaitez le faire, rassurez-vous, c'est très simple.
Pour choisir le meilleur type d'entrée, vous devez d'abord décider du format de log que vous souhaitez envoyer à Graylog. Nous recommandons d'utiliser le format GELF, comme détaillé ci-dessous.
Ensuite, vous devrez sélectionner le protocole : UDP ou TCP.
Sélection du format d'entrée
La première décision est de choisir le format de vos messages de log. Il y a trois options principales : RAW/Plaintext, Syslog ou GELF.
Format RAW/Plaintext
C'est le format le plus simple. Il fonctionne avec n'importe quel système car il envoie un message en texte brut complet. Il est très facile à utiliser et parfait pour les tests initiaux, comme l'envoi d'un message à l'aide de l'utilitaire netcat.
Pour le tester, vous pouvez créer une entrée "Raw/Plaintext UDP" et ensuite envoyer un log de test en utilisant l'une des lignes de commande suivantes :
- Depuis macOS :
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Depuis Linux :
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
C'est très facile, n'est-ce pas ? Cependant, comme il s'agit d'un format basique, vous rencontrerez rapidement des limitations. Par conséquent, nous déconseillons de l'utiliser pour plus que de simples tests.
Format Syslog
C'est un format bien connu, largement utilisé pour stocker et envoyer des logs dans les environnements serveurs. Vous pouvez le trouver sur Linux, Windows et *BSD, entre autres systèmes d'exploitation.
Si vous utilisez Syslog, Rsyslog ou un autre service compatible et souhaitez envoyer des logs d'un serveur à Graylog, l'entrée syslog est l'option la plus simple.
Cependant, comme GELF est plus puissant, si vous pouvez envoyer des messages au format GELF, nous vous recommandons de le faire, comme expliqué ci-dessous.
Notez que le format syslog est limité à 1024 caractères.
Format GELF (recommandé)
GELF signifie "Graylog Extended Log Format". Ce format a été créé par Graylog et est devenu largement adopté par de nombreux produits, s'établissant comme un standard.
Le format GELF est puissant car il envoie les logs de manière structurée. La journalisation structurée vous permet de transmettre plusieurs champs et valeurs au lieu d'un seul message texte non structuré. Cela facilite l'analyse et la récupération des informations par Graylog.
Par exemple, si vous souhaitez envoyer un log contenant une adresse IP et un type de requête, vous pouvez envoyer un message avec deux champs nommés ip et request_type. Côté Graylog, vous pourrez rechercher directement sur ces champs, comme rechercher toutes les requêtes avec la requête : request_type: POST.
GELF est basé sur JSON et doit inclure au moins les champs version, host et short_message. Vous pouvez ensuite ajouter des champs supplémentaires, qui doivent être précédés d'un underscore (_).
Par exemple, un message simple avec un champ supplémentaire nommé device_id ressemble à ceci :
{
"version": "1.1",
"host": "myIotDevice",
"short_message": "Something is happening",
"_device_id": "abcd"
}
Vous pouvez ensuite rechercher tous les messages provenant de l'appareil "abcd" sur Graylog en utilisant la requête : device_id: abcd.
Pour plus de détails sur GELF, vous pouvez vous référer à la spécification officielle ici : https://docs.graylog.org/en/4.0/pages/gelf.html.
Si vous souhaitez envoyer des logs depuis des serveurs ou des applications, vous pouvez utiliser l'une des nombreuses bibliothèques disponibles qui créent et envoient automatiquement vos messages. Des exemples sont disponibles pour Node.js, .NET, et Python.
Choisir le bon protocole
Une fois que vous avez sélectionné le format approprié (nous espérons que vous avez choisi GELF !), vous devez choisir un protocole de communication entre TCP et UDP.
Protocole UDP
Le protocole UDP est assez simple. Votre application envoie le message au serveur sans nécessiter de confirmation de réception. Il n'y a pas de dialogue entre le client et le serveur, ce qui signifie que le serveur ne confirme pas qu'il a reçu le message.
L'avantage de cette approche est que si votre serveur Graylog est lent ou en panne, cela n'impactera pas les performances de votre application. L'inconvénient est que vous ne pouvez pas être certain que chaque log envoyé depuis votre application atteindra le serveur. De plus, le chiffrement n'est pas disponible avec UDP.
Avantages
- N'impacte pas votre application si Graylog est lent ou en panne.
Inconvénients
- Certains messages peuvent être perdus.
- Le chiffrement n'est pas disponible.
- La taille des messages est limitée à 8192 octets.
Protocole TCP
Le protocole TCP, contrairement à UDP, échange des informations entre votre application et Graylog. Cela signifie que vous recevez une confirmation que le message a été reçu par Graylog.
L'avantage de TCP est que vous pouvez renvoyer un message s'il n'est pas reçu par Graylog (par exemple, lorsque le serveur est en panne). L'inconvénient est que si Graylog est lent ou ne répond pas, votre application doit attendre une réponse ou un délai d'attente, ce qui peut potentiellement la ralentir.
Un autre avantage est que vous pouvez chiffrer vos communications avec TLS (également connu sous le nom de SSL).
Avantages
- Assure que le message a été reçu.
- Le chiffrement est disponible (TLS).
- Pas de limitation de taille de message
Inconvénients
- Peut ralentir l'expéditeur si Graylog est lent à répondre ou en panne.
Conclusion
Nous espérons que ce guide vous a fourni les informations nécessaires pour choisir le meilleur format et protocole pour envoyer vos logs à Graylog.
Rappelez-vous, vous pouvez exécuter plusieurs entrées en même temps en utilisant des ports différents pour chacune. Par exemple, vous pourriez avoir une entrée "syslog UDP" sur le port 514 en parallèle d'une entrée "GELF TCP" sur le port 12201.