introduction
Graylog est une puissante plate-forme de gestion de journaux open source. Il agrège et extrait les données importantes des journaux du serveur, qui sont souvent envoyés à l'aide du protocole Syslog. Il vous permet également de rechercher et de visualiser les journaux dans une interface Web.
Dans ce didacticiel, vous allez installer et configurer Graylog sur Ubuntu 16.04 et configurer une entrée simple pour recevoir les journaux du système.
Conditions préalables
Avant de commencer ce tutoriel, vous aurez besoin de:
-
Un serveur Ubuntu 16.04 avec au moins 2 Go de RAM, réseau privé activé et un utilisateur non root. Cela peut être configuré en suivant lesInitial Server Setup with Ubuntu 16.04.
-
Oracle JDK 8 installé, ce que vous pouvez faire en suivant la section «Installation du JDK Oracle» dethis Java installation article.
-
Elasticsearch 2.x, que vous pouvez installer en suivant les étapes 1 et 2 desElasticsearch installation tutorial. Certaines versions de Graylog ne fonctionnent qu'avec certaines versions d’Elasticsearch. Par exemple, Graylog 2.x ne fonctionne pas avec Elasticsearch 5.x. Reportez-vous àthis Greylog-Elasticsearch version comparison table pour la version exacte. Ce tutoriel utilise Elasticsearch 2.4.4 et Graylog 2.2.
-
MongoDB, qui peut être installé en suivant lesMongoDB tutorial.
[[step-1 -—- configuring-elasticsearch]] == Étape 1 - Configuration d'Elasticsearch
Nous devons modifier le fichier de configuration Elasticsearch afin que le nom du cluster corresponde à celui défini dans le fichier de configuration Graylog. Pour simplifier les choses, nous allons définir le nom du cluster Elasticsearch sur le nom Graylog par défaut degraylog
. Vous pouvez le définir comme bon vous semble, mais veillez à mettre à jour le fichier de configuration Graylog pour refléter ce changement.
Ouvrez le fichier de configuration Elasticsearch dans votre éditeur:
sudo nano /etc/elasticsearch/elasticsearch.yml
Trouvez la ligne suivante:
/etc/elasticsearch/elasticsearch.yml
cluster.name:
Changez la valeur decluster.name
engraylog
:
/etc/elasticsearch/elasticsearch.yml
cluster.name: graylog
Enregistrez le fichier et quittez votre éditeur.
Depuis que nous avons modifié le fichier de configuration, nous devons redémarrer le service pour que les modifications prennent effet.
sudo systemctl restart elasticsearch
Maintenant que vous avez configuré Elasticsearch, passons à l’installation de Graylog.
[[step-2 -—- Installing-graylog]] == Étape 2 - Installation de Graylog
Dans cette étape, nous allons installer le serveur Graylog.
Commencez par télécharger le fichier de package contenant la configuration du référentiel Graylog. Visitez lesGraylog download page pour trouver le numéro de version actuelle. Nous utiliserons la version2.2
pour ce didacticiel.
wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb
Ensuite, installez la configuration du référentiel à partir du fichier de package.deb
, en remplaçant à nouveau2.2
par la version que vous avez téléchargée.
sudo dpkg -i graylog-2.2-repository_latest.deb
Maintenant que la configuration du référentiel a été mise à jour, nous devons récupérer la nouvelle liste de packages. Exécutez cette commande:
sudo apt-get update
Ensuite, installez le packagegraylog-server
:
sudo apt-get install graylog-server
Enfin, démarrez Graylog automatiquement au démarrage du système avec cette commande:
sudo systemctl enable graylog-server.service
Graylog est maintenant installé avec succès, mais il n’a pas encore démarré. Nous devons le configurer avant qu'il ne commence.
[[step-3 -—- configuring-graylog]] == Étape 3 - Configuration de Graylog
Maintenant que Elasticsearch est configuré et que Graylog est installé, nous devons modifier quelques paramètres dans le fichier de configuration par défaut de Graylog avant de pouvoir l'utiliser. Le fichier de configuration de Graylog se trouve par défaut à/etc/graylog/server/server.conf
.
Tout d'abord, nous devons définir la valeur depassword_secret
. Graylog utilise cette valeur pour sécuriser les mots de passe utilisateur stockés. Nous allons utiliser une valeur de 128 caractères générée aléatoirement.
Nous utiliseronspwgen
pour générer le mot de passe, donc installez-le s'il n'est pas déjà installé:
sudo apt install pwgen
Générez le mot de passe et placez-le dans le fichier de configuration Graylog. Nous utiliserons le programmesed
pour injecter la valeurpassword_secret
dans le fichier de configuration Graylog. De cette façon, nous n’avons à copier et coller aucune valeur. Exécutez cette commande pour créer le secret et le stocker dans le fichier:
sudo -E sed -i -e "s/password_secret =.*/password_secret = $(pwgen -s 128 1)/" /etc/graylog/server/server.conf
Pour plus d'informations sur l'utilisation desed
, consultezthis DigitalOcean sed tutorial.
Ensuite, nous devons définir la valeur deroot_password_sha2
. Il s'agit d'unSHA-256 hash de votre mot de passe souhaité. Une fois de plus, nous utiliserons la commandesed
pour modifier le fichier de configuration Graylog afin de ne pas avoir à générer manuellement le hachage SHA-256 en utilisantshasum
et à le coller dans le fichier de configuration.
Exécutez cette commande, mais remplacezpassword
ci-dessous par le mot de passe administrateur par défaut souhaité:
[.note] #Note: Il y a un espace au début de la commande, ce qui empêche votre mot de passe d'être stocké sous forme de texte brut dans votre historique Bash.
#
sudo sed -i -e "s/root_password_sha2 =.*/root_password_sha2 = $(echo -n 'password' | shasum -a 256 | cut -d' ' -f1)/" /etc/graylog/server/server.conf
Nous devons maintenant apporter quelques modifications supplémentaires au fichier de configuration. Ouvrez le fichier de configuration Graylog avec votre éditeur:
sudo nano /etc/graylog/server/server.conf
Recherchez et modifiez les lignes suivantes, en supprimant les commentaires et en remplaçantgraylog_public_ip
par l'adresse IP publique de votre serveur. Cela peut être une adresse IP ou un nom de domaine complet.
/etc/graylog/server/server.conf
...
rest_listen_uri = http://your_server_ip_or_domain:9000/api/
...
web_listen_uri = http://your_server_ip_or_domain:9000/
...
Enregistrez le fichier et quittez votre éditeur.
Depuis que nous avons changé le fichier de configuration, nous devons redémarrer (ou démarrer) le servicegraylog-server
. La commande de redémarrage démarrera le serveur même s'il est actuellement arrêté.
sudo systemctl restart graylog-server
Ensuite, vérifiez l'état du serveur.
sudo systemctl status graylog-server
La sortie devrait ressembler à ceci:
● graylog-server.service - Graylog server
Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2017-03-03 20:10:34 PST; 1 months 7 days ago
Docs: http://docs.graylog.org/
Main PID: 1300 (graylog-server)
Tasks: 191 (limit: 9830)
Memory: 1.2G
CPU: 14h 57min 21.475s
CGroup: /system.slice/graylog-server.service
├─1300 /bin/sh /usr/share/graylog-server/bin/graylog-server
└─1388 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSCon
Vous devriez voiractive
pour l'état.
Si la sortie indique que le système n’est pas en cours d’exécution, recherchez dans/var/log/syslog
toute erreur. Assurez-vous d'avoir installé Java en même temps que Elasticsearch et d'avoir modifié toutes les valeurs à l'étape 3. La tentative de redémarrer le service Graylog à nouveau.
Si vous avez configuré un pare-feu avecufw
, ajoutez une exception de pare-feu pour le port TCP9000
afin de pouvoir accéder à l'interface Web:
sudo ufw allow 9000/tcp
Une fois que Graylog est en cours d'exécution, vous devriez pouvoir accéder àhttp://your_server_ip:9000
avec votre navigateur Web. Vous devrez peut-être attendre jusqu'à cinq minutes après le redémarrage degraylog-server
avant de démarrer l'interface Web. De plus, assurez-vous que MongoDB est en cours d'exécution.
Maintenant que Graylog fonctionne correctement, nous pouvons passer aux journaux de traitement.
[[step-4 -—- creation-an-input]] == Étape 4 - Création d'une entrée
Ajoutons une nouvelle entrée à Graylog pour recevoir les journaux. Les entrées indiquent à Graylog le port sur lequel écouter et le protocole à utiliser lors de la réception des journaux. Nous allons ajouter une entrée Syslog UDP, protocole de journalisation couramment utilisé.
Lorsque vous visitezhttp://your_server_ip:9000
dans votre navigateur, une page de connexion s'affiche. Utilisezadmin
pour votre nom d'utilisateur et utilisez le mot de passe que vous avez entré à l'étape 3 pour votre mot de passe.
Une fois connecté, vous verrez une page intitulée "Mise en route" qui ressemble à l'image suivante:
Pour afficher la page des entrées, cliquez sur la liste déroulanteSystem dans la barre de navigation et sélectionnezInputs.
Vous verrez alors une liste déroulante contenant le texteSelect Input. SélectionnezSyslog UDP dans cette liste déroulante, puis cliquez sur le boutonLaunch new input.
Un modal avec un formulaire devrait apparaître. Remplissez les informations suivantes pour créer votre entrée:
-
PourNode, sélectionnez votre serveur. Ce devrait être le seul élément de la liste.
-
PourTitle, entrez un titre approprié, tel que
Linux Server Logs
. -
PourBind address, utilisez l'adresse IP privée de votre serveur. Si vous souhaitez également pouvoir collecter des journaux à partir de serveurs externes (non recommandé, car Syslog ne prend pas en charge l'authentification), vous pouvez le définir sur
0.0.0.0
(toutes les interfaces). -
PourPort, entrez
8514
. Notez que nous utilisons le port8514
pour ce tutoriel car les ports0
à1024
ne peuvent être utilisés que par l'utilisateur root. Vous pouvez utiliser n’importe quel numéro de port supérieur à1024
devrait convenir tant qu’il n’est pas en conflit avec d’autres services.
Cliquez surSave. La liste des entrées locales sera mise à jour et affichera votre nouvelle entrée, comme indiqué dans la figure suivante:
Maintenant qu'une entrée a été créée, nous pouvons envoyer des journaux à Graylog.
[[step-5 -—- configure-servers-to-send-logs-to-graylog]] == Étape 5 - Configurer les serveurs pour envoyer des journaux à Graylog
Nous avons une entrée configurée et en écoute sur le port8514
, mais nous n’envoyons pas encore de données à l’entrée, nous ne verrons donc aucun résultat. rsyslog
est un utilitaire logiciel utilisé pour transférer les journaux et est pré-installé sur Ubuntu, nous allons donc le configurer pour envoyer les journaux à Graylog. Dans ce didacticiel, nous allons configurer le serveur Ubuntu sous Graylog pour qu’il envoie ses journaux système à l’entrée que nous venons de créer, mais vous pouvez suivre cette procédure sur tout autre serveur que vous possédez.
[.Remarque]##
Si vous souhaitez envoyer des données à Graylog à partir d'autres serveurs, vous devez ajouter une exception de pare-feu pour le port UDP8514
.
sudo ufw allow 8514/udp
Créez et ouvrez un nouveau fichier de configurationrsyslog
dans votre éditeur.
sudo nano /etc/rsyslog.d/60-graylog.conf
Ajoutez la ligne suivante au fichier, en remplaçantyour_server_private_ip
par l'adresse IP privée de votre serveur Graylog.
/etc/rsyslog.d/60-graylog.conf
*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format
Enregistrez et quittez votre éditeur.
Redémarrez le servicersyslog
pour que les modifications prennent effet.
sudo systemctl restart rsyslog
Répétez ces étapes pour chaque serveur à partir duquel vous souhaitez envoyer des journaux.
Vous devriez maintenant pouvoir voir vos journaux dans l'interface Web. Cliquez sur l'ongletSources dans la barre de navigation pour afficher un graphique des sources. Ça devrait ressembler a quelque chose comme ca:
Vous pouvez également cliquer sur l'ongletSearch dans la barre de navigation pour afficher un aperçu des journaux les plus récents.
Vous pouvez en savoir plus sur les recherches dans lesGraylog searching documentation.
Conclusion
Vous disposez maintenant d'un serveur Graylog en état de fonctionnement avec une source d'entrée capable de collecter des journaux à partir d'autres serveurs.
Ensuite, vous voudrez peut-être examiner la configuration des tableaux de bord, des alertes et des flux. Les tableaux de bord fournissent un aperçu rapide de vos journaux. Les flux catégorisent les messages que vous pouvez surveiller avec des alertes. Pour en savoir plus sur la configuration des fonctionnalités plus avancées de Graylog, vous pouvez trouver des instructions dans lesGraylog documentation.