GNU/Linux >> Tutoriels Linux >  >> Debian

Comment surveiller les fichiers journaux avec Graylog2 sur Debian 9

Graylog est un outil de gestion de journaux gratuit et open source basé sur Java, Elasticsearch et MongoDB qui peut être utilisé pour collecter, indexer et analyser n'importe quel journal de serveur à partir d'un emplacement centralisé. Vous pouvez facilement surveiller les connexions SSH et les activités inhabituelles pour le débogage des applications et des journaux à l'aide de Graylog. Graylog fournit un langage de requête puissant, des capacités d'alerte, un pipeline de traitement pour la transformation des données et bien plus encore. Vous pouvez étendre les fonctionnalités de Graylog via une API REST et des modules complémentaires.

Graylog est composé de trois composants :

  1. Elasticsearch :il stocke tous les messages entrants et fournit une fonction de recherche.
  2. MongoDB :Il est utilisé pour la base de données, stocke les configurations et les méta-informations.
  3. Serveur Graylog :il reçoit et traite les messages provenant de diverses entrées et fournit une interface Web pour l'analyse et la surveillance.

Dans ce tutoriel, nous allons vous expliquer comment installer Graylog2 sur un serveur Debian 9.

Prérequis

  • Un serveur exécutant Debian 9.
  • 4 Go de RAM minimum.
  • Une adresse IP statique 192.168.0.187 configurée sur votre serveur.

1 Installer les packages requis

Avant de commencer, vous devrez installer Java 8 et les autres packages requis sur votre système. Tous les packages requis ne sont pas disponibles dans le référentiel standard Debian 9, vous devrez donc ajouter Debian Backports à la liste des sources de packages. Tout d'abord, connectez-vous avec l'utilisateur root et créez un fichier backport.list :

nano /etc/apt/sources.list.d/backport.list

Ajoutez la ligne suivante :

deb http://ftp.debian.org/debian stretch-backports main

Enregistrez le fichier lorsque vous avez terminé, puis mettez à jour votre système avec la commande suivante :

apt-get update -y
apt-get upgrade -y

Une fois votre système à jour, installez tous les packages avec la commande suivante :

apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen -y

Une fois tous les packages requis installés, vous pouvez procéder à l'installation de MongoDB.

2 Installer MongoDB

MongoDB est nécessaire pour stocker la configuration et les méta-informations. MongoDB est disponible dans le référentiel par défaut de Debian 9, vous pouvez donc installer MongoDB en exécutant simplement la commande suivante :

apt-get install mongodb-server -y

Une fois MongoDB installé, vous pouvez procéder à l'installation d'Elasticsearch.

3 Installer Elasticsearch

Elasticsearch agit comme un serveur de recherche qui stocke tous les journaux envoyés par le serveur Graylog et affiche les messages chaque fois que vous le demandez. Elasticsearch n'est pas disponible dans le référentiel par défaut de Debian 9. Vous devrez ajouter le référentiel Elasticsearch à la source du package Debian.

Tout d'abord, téléchargez et ajoutez la clé Elasticsearch GPG avec la commande suivante :

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-clé ajouter -

Ensuite, créez un fichier référentiel Elasticsearch avec la commande suivante :

nano /etc/apt/sources.list.d/elasticsearch.list

Ajoutez la ligne suivante :

deb https://packages.elastic.co/elasticsearch/2.x/debian stable main

Enregistrez le fichier lorsque vous avez terminé, puis mettez à jour le référentiel en exécutant la commande suivante :

apt-get update -y

Ensuite, installez Elasticsearch en exécutant la commande suivante :

apt-get install elasticsearch -y

Une fois Elasticsearch installé, vous devrez modifier le fichier de configuration principal d'Elasticsearch :

nano /etc/elasticsearch/elasticsearch.yml

Effectuez les modifications suivantes :

cluster.name :graylognetwork.host :192.168.0.187discovery.zen.ping.timeout :10sdiscovery.zen.ping.multicast.enabled :falsediscovery.zen.ping.unicast.hosts :["192.168.0.187:9300" ]

Enregistrez et fermez le fichier lorsque vous avez terminé, puis démarrez le service Elasticsearch et activez-le pour qu'il démarre au démarrage :

systemctl démarrer elasticsearch
systemctl activer elasticsearch

Après quelques secondes, exécutez la commande suivante pour vérifier qu'Elasticsearch fonctionne correctement :

curl -XGET 'http://192.168.0.187:9200/_cluster/health?pretty=true'

Assurez-vous que la sortie indique que l'état du cluster est "vert" :

{ "cluster_name" :"graylog", "status" :"green", "timed_out" :false, "number_of_nodes" :1, "number_of_data_nodes" :1, "active_primary_shards" :1, "active_shards" :1, "relocation_shards" :0, "initializing_shards" :0, "unassigned_shards" :1, "delayed_unassigned_shards" :0, "number_of_pending_tasks" :0, "number_of_in_flight_fetch" :0, "task_max_waiting_in_queue_millis" :0, "active_shards_percent_as_number" :50.0} 

Une fois qu'Elasticsearch est installé et fonctionne correctement, vous pouvez passer à l'étape suivante.

4 Installer Graylog

Graylog n'est pas disponible dans le référentiel par défaut de Debian 9, vous devrez donc d'abord télécharger et installer le référentiel Graylog 2. Vous pouvez le faire en exécutant la commande suivante :

wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb
dpkg -i graylog-2.2-repository_latest.deb

Une fois le référentiel installé, mettez à jour le référentiel et installez le serveur Graylog avec la commande suivante :

apt-get update -y
apt-get install graylog-server -y

Après avoir installé Graylog, vous devrez définir un secret pour sécuriser les mots de passe des utilisateurs et également définir un mot de passe de hachage (sha256) pour l'utilisateur root.

Tout d'abord, générez password_secret avec la commande suivante :

pwgen -N 1 -s 96

Vous devriez voir le résultat suivant :

TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC

Ensuite, générez un mot de passe de hachage pour l'utilisateur root avec la commande suivante :

echo -n votremotdepasseadmin | somme sha256

Vous devriez voir le résultat suivant :

e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee

Remarque :Souvenez-vous des deux clés de mot de passe, car les deux clés devront être configurées dans le fichier server.conf.

Ensuite, vous devrez modifier le fichier de configuration principal du serveur Graylog situé dans le répertoire /etc/graylog/server/ :

nano /etc/graylog/server/server.conf

Effectuez les modifications suivantes :

 =is_master truenode_id_file =/ etc / graylog / server / noeud-id-######## passé votre mot de passe secret-ici =######### password_secret TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyCroot_username =admin ## #####past-your-root-hash-password-here#########root_password_sha2 =e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750eeroot_timezone =UTCplugin_dir =/usr/share/graylog-server/pluginrest_listen_0. :9000 / api / rest_enable_cors =trueweb_listen_uri =http://0.0.0.0:9000/rotation_strategy =countelasticsearch_max_docs_per_index =20000000elasticsearch_max_number_of_indices =7retention_strategy =deleteelasticsearch_shards =4elasticsearch_replicas =1elasticsearch_index_prefix =graylogallow_leading_wildcard_searches =trueallow_highlighting =falseelasticsearch_cluster_name =graylogelasticsearch_discovery_zen_ping_unicast_hosts =192.168.0.187:9300elasticsearch_http_enabled =falseelasticsearch_network_host =0,0 . 00elasticsearch_discovery_initial_state_timeout =3selasticsearch_analyzer =standardoutput_batch_size =500output_flush_interval =1output_fault_count_threshold =5output_fault_penalty_seconds =30processbuffer_processors =5outputbuffer_processors =3processor_wait_strategy =blockingring_size =65536inputbuffer_ring_size =65536inputbuffer_processors =2inputbuffer_wait_strategy =blockingmessage_journal_enabled =truemessage_journal_dir =/ var / lib / graylog-server / journalasync_eventbus_processors =2lb_recognition_period_seconds =3alert_check_interval =60mongodb_uri =mongodb:/ /localhost/graylogmongodb_max_connections =1000mongodb_threads_allowed_to_block_multiplier =5content_packs_dir =/usr/share/graylog-server/contentpackscontent_packs_auto_load =grok-patterns.jsonproxied_requests_thread_pool_size =32

Enregistrez et fermez le fichier lorsque vous avez terminé, puis démarrez le service Graylog et activez-le pour qu'il démarre au démarrage :

systemctl start graylog-server
systemctl enable graylog-server

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante

5 Configurer le pare-feu

Par défaut, l'interface Web Graylog écoute sur le port 9000, vous devrez donc autoriser le port 9000 via le pare-feu UFW. Le pare-feu UFW n'est pas installé dans Debian 9. Vous devrez donc d'abord l'installer. Vous pouvez l'installer en exécutant la commande suivante :

apt-get install ufw -y

Une fois UFW installé, activez-le en exécutant la commande suivante ;

activation ufw

Ensuite, autorisez le port 9000 via le pare-feu UFW en exécutant la commande suivante :

ufw allow 9000

Vous pouvez vérifier l'état du pare-feu UFW à tout moment en exécutant la commande suivante.

statut ufw

Une fois le pare-feu configuré, vous pouvez passer à l'étape suivante.

6 Accéder à l'interface Web Graylog

L'interface Web Graylog écoute sur le port 9000. Maintenant, ouvrez votre navigateur Web et tapez l'URL http://192.168.0.187:9000 , vous devriez voir l'écran suivant :

Connectez-vous avec le nom d'utilisateur "admin " et le mot de passe que vous avez configuré à root_password_sha2 sur server.conf. Vous devriez voir l'écran suivant :

Ensuite, vous devrez ajouter l'entrée pour recevoir le message syslog à l'aide de l'UDP. Pour ajouter l'entrée, cliquez sur Système -> sélectionnez Entrées -> Syslog UDP -> cliquez sur le bouton Lancer une nouvelle entrée, vous devriez voir l'écran suivant :

Remplissez tous les détails tels que le titre, le port, l'adresse de liaison et enfin cliquez sur le bouton Enregistrer, vous devriez voir l'écran suivant :

Maintenant, le serveur Graylog recevra les journaux système en utilisant le port 8514 du client ou du serveur.

Sur le système client, vous devrez configurer rsyslog afin qu'il envoie les messages des journaux système au serveur Graylog. Vous pouvez le faire en éditant le fichier rsyslog.conf :

nano /etc/rsyslog.conf

Ajoutez les lignes suivantes :

# fournit la réception syslog UDP$ModLoad imudp$UDPServerRun 8514$template GRAYLOGRFC5424,"%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n" *.* @192.168.0.187:8514;GRAYLOGRFC5424

Enregistrez le fichier et redémarrez le service rsyslog pour appliquer ces modifications :

systemctl redémarre rsyslog

Ensuite, sur le serveur Graylog, cliquez sur "Graylog Sources", vous pouvez voir le journal ssh avec les tentatives de connexion infructueuses dans l'écran suivant.

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès le serveur Graylog sur Debian 9. Vous pouvez maintenant voir facilement les journaux et l'analyse des journaux système à partir de l'emplacement central. Vous pouvez également personnaliser Graylog et envoyer un autre type de journaux selon vos besoins. Vous pouvez obtenir plus d'informations sur la page de documentation Graylog http://docs.graylog.org/en/2.2/pages/getting_started.html. N'hésitez pas à me commenter si vous avez des questions.


Debian
  1. Comment installer Elasticsearch sur Debian Linux

  2. Comment installer Steam avec Steam Play sur Debian 10 Buster

  3. Comment installer Graylog2 sur Ubuntu 14.04

  4. Comment installer Graylog2 sur Ubuntu 15.04 / 14.10

  5. Comment installer WonderCMS avec Nginx sur Debian 11

Comment installer Debian 11 (Bullseye) avec des captures d'écran

Comment installer Itch avec Debian 11

Comment installer Elasticsearch sur Debian 11 Bullseye

Comment installer Graylog sur Debian 9

Comment installer Elasticsearch sur Debian 11

Comment installer phpMyAdmin avec Nginx sur Debian 11