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 :
- Elasticsearch :il stocke tous les messages entrants et fournit une fonction de recherche.
- MongoDB :Il est utilisé pour la base de données, stocke les configurations et les méta-informations.
- 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.debUne 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 -yAprè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 96Vous devriez voir le résultat suivant :
TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyCEnsuite, générez un mot de passe de hachage pour l'utilisateur root avec la commande suivante :
echo -n votremotdepasseadmin | somme sha256Vous devriez voir le résultat suivant :
e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750eeRemarque :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.confEffectuez 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 =32Enregistrez 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-serverUne 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 -yUne fois UFW installé, activez-le en exécutant la commande suivante ;
activation ufwEnsuite, autorisez le port 9000 via le pare-feu UFW en exécutant la commande suivante :
ufw allow 9000Vous pouvez vérifier l'état du pare-feu UFW à tout moment en exécutant la commande suivante.
statut ufwUne 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.confAjoutez 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;GRAYLOGRFC5424Enregistrez le fichier et redémarrez le service rsyslog pour appliquer ces modifications :
systemctl redémarre rsyslogEnsuite, 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.