Graylog est un outil de gestion de journaux open source qui vous aide à collecter, indexer et analyser de manière centralisée tous les journaux de machine. Ce guide vous aidera à installer Graylog sur CentOS 7 / RHEL 7.
Composants
- MongoDB – Être une base de données pour stocker les configurations et les méta-informations.
- Elasticsearch - Il stocke les messages de journal reçus du serveur Graylog et fournit une fonction pour les rechercher chaque fois que nécessaire. Elasticsearch est un marchand de ressources car il indexe les données, alors allouez plus de mémoire et utilisez des disques SAS ou SAN.
- Serveur Graylog :il analyse les journaux provenant de diverses entrées et fournit une interface Web intégrée pour gérer ces journaux.
Prérequis
Assurez-vous que votre système est configuré avec le référentiel EPEL.
Installez les packages requis pour l'installation de Graylog.
yum -y install wget pwgen
Elasticsearch nécessite l'installation de Java sur la machine. Installez donc OpenJDK ou Oracle JDK.
yum install -y java-1.8.0-openjdk-headless
Vérifiez la version Java.
version Java
Sortie :
openjdk version "1.8.0_191"Environnement d'exécution OpenJDK (build 1.8.0_191-b12)OpenJDK 64-Bit Server VM (build 25.191-b12, mode mixte)
Installer Elasticsearch
Elasticsearch est l'un des composants importants de la configuration de Graylog. Il stocke les données provenant de l'entrée Graylog et affiche les messages chaque fois qu'un utilisateur demande via l'interface Web intégrée Graylog.
Elasticseach est principalement utilisé ici pour indexer les données/journaux et fournir la fonctionnalité de recherche lorsque l'interface Web Graylog demande des informations.
Ce guide couvre la configuration de base requise pour Graylog.
Importez la clé de signature GPG avant l'installation.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Créez un fichier de référentiel pour obtenir la dernière version du package Elasticsearch à partir du référentiel officiel.
vi /etc/yum.repos.d/elasticsearch.repo
Ajoutez le contenu ci-dessous au fichier ci-dessus.
[elasticsearch-6.x]name=Référentiel Elasticsearch pour les packages 6.xbaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
Maintenant, installez le package Elasticsearch à l'aide de la commande yum.
yum install -y elasticsearch
Rechargez le démon systemctl et activez Elasticsearch pour qu'il démarre automatiquement au démarrage du système.
démon systemctl-reloadsystemctl activer elasticsearch
Pour faire fonctionner Elasticsearch avec la configuration de Graylog, nous devons définir le nom du cluster sur graylog
. Modifiez le fichier elasticsearch.yml.
vi /etc/elasticsearch/elasticsearch.yml
Mettez-le à jour comme indiqué ci-dessous.
cluster.name :graylog
Redémarrez Elasticsearch.
systemctl redémarre elasticsearch
Donnez une minute pour permettre à Elasticsearch de redémarrer complètement. Elastisearch devrait maintenant écouter 9200 pour traiter les requêtes HTTP. Utilisez la commande CURL pour vérifier la réponse.
curl -X GET http://localhost:9200
Le nom du cluster doit être graylog.
{ "name" :"DF8QK3-", "cluster_name" :"graylog", "cluster_uuid" :"_wAgUfN9RJeQ0npCKBswVA", "version" :{ "number" :"6.6.0", "build_flavor" :"default ", "build_type" :"rpm", "build_hash" :"a9861f4", "build_date" :"2019-01-24T11:27:09.439740Z", "build_snapshot" :faux, "lucene_version" :"7.6.0" , "minimum_wire_compatibility_version" :"5.6.0", "minimum_index_compatibility_version" :"5.0.0" }, "tagline" :"Vous savez, pour la recherche"}
Effectuez une vérification de l'état du cluster Elasticsearch.
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Assurez-vous 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" :0, "active_shards" :0, "relocation_shards" :0, "initializing_shards" :0, "unassigned_shards" :0, "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" :10 pré>Installer MongoDB
MongoDB agit comme une base de données pour stocker les configurations et les méta-informations. Nous utiliserons le référentiel officiel de MongoDB pour obtenir la dernière version de MongoDB.
vi /etc/yum.repos.d/mongodb-org-4.0.repoAjoutez les informations du référentiel au fichier ci-dessus.
[mongodb-org-4.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https:// www.mongodb.org/static/pgp/server-4.0.ascInstallez l'édition communautaire de MongoDB à l'aide de la commande suivante.
yum install -y mongodb-orgDémarrez le service MongoDB et activez-le au démarrage du système.
systemctl démarrer mongodsystemctl activer mongodInstaller Graylog
Le serveur Graylog accepte et traite les messages de journal provenant des différentes entrées, affiche les données aux requêtes provenant de l'interface Web graylog.
Téléchargez et installez le référentiel graylog 3.x.
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpmInstallez le serveur Graylog à l'aide de la commande suivante.
yum -y install graylog-serverModifiez le fichier server.conf pour commencer la configuration du graylog.
vi /etc/graylog/server/server.confUtilisez la commande suivante pour créer un secret
pwgen -N 1 -s 96Sortie :
OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPPlacez le secret comme ci-dessous dans server.conf
password_secret = OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPDéfinissez le mot de passe de hachage pour l'utilisateur root, c'est-à-dire l'administrateur de graylog. Vous auriez besoin de ce mot de passe pour vous connecter au site Graylog.
Si jamais vous voulez changer/réinitialiser le mot de passe oublié de l'admin, vous pouvez éditer/mettre à jour le server.conf avec un mot de passe haché.
Générez un mot de passe haché à l'aide de la commande ci-dessous. Remplacez votre mot de passe avec votre choix.
echo -n votremotdepasse | somme sha256Sortie :
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Placez le mot de passe de hachage.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Vous pouvez configurer une adresse e-mail pour l'utilisateur administrateur.
root_email ="[email protected] "Définir le fuseau horaire de l'utilisateur root (admin).
root_timezone =UTCDéfinissez un seul nœud maître en définissant la variable ci-dessous, le paramètre par défaut est vrai.
Si ce serveur est votre deuxième nœud Graylog dans votre environnement, définissez-le sur false pour faire de ce nœud un esclave. Le nœud maître effectue certaines tâches périodiques que les nœuds esclaves n'exécutent pas.
is_master =vraiDéfinissez le nombre de messages de journal à conserver par index. Il est recommandé d'avoir plusieurs index plus petits au lieu de plus grands.
elasticsearch_max_docs_per_index =20000000Le paramètre suivant définit un nombre total d'indices. Si ce nombre est atteint, l'ancien index sera supprimé.
elasticsearch_max_number_of_indices =20Le paramètre des partitions dépend du nombre de nœuds dans le cluster Elasticsearch particulier. Si vous n'avez qu'un seul nœud, définissez-le sur 1.
elasticsearch_shards =1Cela définit le nombre de répliques pour vos index. Si vous n'avez qu'un seul nœud dans le cluster Elasticsearch, définissez-le sur 0.
elasticsearch_replicas =0Installer l'interface Web Graylog
A partir de la version 2.x de Graylog, l'interface web est servie directement par le serveur Graylog. Activez l'interface Web Graylog en modifiant le fichier server.conf.
vi /etc/graylog/server/server.confModifiez les entrées pour permettre à l'interface Web Graylog de se connecter au serveur Graylog. Remplacez 192.168.1.10 par l'adresse IP de votre système.
http_bind_address =192.168.1.10 :9000Redémarrez le service Graylog.
systemctl daemon-reloadsystemctl redémarre graylog-serverFaites en sorte que le serveur Graylog démarre automatiquement au démarrage du système.
systemctl activer graylog-serverVous pouvez consulter les journaux de démarrage du serveur ; il vous sera utile de dépanner Graylog pour tout problème.
tailf /var/log/graylog-server/server.logSi tout se passe bien, vous devriez voir le message ci-dessous dans le fichier server.log.
2019-02-25T21:00:23.157+05:30 INFO [ServerBootstrap] Serveur Graylog opérationnel.Pare-feu
Dans CentOS 7 / RHEL 7, les règles de pare-feu sont définies pour bloquer la plupart du trafic provenant des machines externes par défaut. Vous devrez ajouter des règles d'autorisation pour que Graylog fonctionne correctement.
firewall-cmd --permanent --add-port=9000/tcpRechargez firewalld pour appliquer les nouvelles règles.
firewall-cmd --reloadAccéder à l'interface Web Graylog
L'interface Web va maintenant écouter sur le port 9000. Pointez votre navigateur vers.
http://ip.add.re.ss:9000Connectez-vous avec le nom d'utilisateur admin et le mot de passe que vous avez configuré à root_password_sha2 sur server.conf .
Une fois connecté, vous verrez la page de démarrage.
Cliquez sur Système>> Aperçu pour connaître l'état du serveur Graylog.
Créer des entrées Graylog
L'entrée Graylog doit être configurée pour recevoir les journaux de sources externes, c'est-à-dire syslog ou tout autre système de journalisation. Pour cet exemple, nous allons configurer une entrée pour recevoir les journaux de syslog sur le numéro de port UDP 514.
Mais il y a un problème. Si vous commencez à essayer une entrée sur l'un des ports privilégiés, tout numéro de port TCP/UDP inférieur à 1024, vous verrez une erreur d'autorisation refusée dans les journaux Graylog.
Pour résoudre le problème, nous allons créer une entrée pour démarrer sur le port 1514, et nous redirigerons le trafic arrivant du 514 vers le 1514 avec des règles de pare-feu.
Cliquez sur Système >> Entrée >> sélectionnez Syslog UDP puis cliquez sur Lancer une nouvelle entrée.
Remplissez les valeurs indiquées ci-dessous.
Nœud : Sélectionnez votre nœud Graylog
Titre : Nommez votre entrée
Adresse de liaison : 0.0.0.0 (Laissez celui par défaut)
Port : 1514
Assurez-vous que l'entrée Syslog créée est en cours d'exécution.
Configurer Rsyslog
Une fois que vous avez créé les entrées, configurez Rsyslog ou transférez les journaux système vers votre serveur Graylog.
Modifiez le fichier de configuration Rsyslog.
vi /etc/rsyslog.confLa configuration typique de Rsyslog ressemblera à celle ci-dessous pour envoyer les journaux sur UDP 514.
Si vous ne souhaitez pas utiliser UDP 514 et souhaitez envoyer les journaux directement à UDP 1514 de Graylog, vous pouvez modifier le numéro de port dans le fichier de configuration Rsyslog*.info;mail.none;authpriv.none;cron. aucun @192.168.1.10:514Redémarrez le service Rsyslog pour envoyer les journaux.
systemctl redémarre rsyslogPare-feu
Configurez le pare-feu en fonction de la configuration de Rsyslog que vous avez effectuée à l'étape précédente.
Port 514
Exécutez les commandes ci-dessous sur le serveur Graylog pour rediriger le trafic provenant du port UDP 514 vers UDP 1514 de l'entrée Graylog.
firewall-cmd --add-masquerade --permanentfirewall-cmd --add-forward-port=port=514:proto=udp:toport=1514 --permanentfirewall-cmd --reloadPort 1514
Exécutez les commandes ci-dessous sur le serveur Graylog pour autoriser le numéro de port UDP 1514 sur le pare-feu à recevoir les journaux de Rsyslog.
firewall-cmd --permanent --add-port=1514/udpfirewall-cmd --reloadAfficher les journaux à l'aide de Graylog
Attendez quelques minutes. Vous devriez commencer à recevoir des messages de journal de la machine cliente lorsque l'événement est généré.
La capture d'écran suivante montre les journaux reçus par Graylog (console Graylog>> Rechercher h ).
Conclusion
Vous avez installé avec succès Graylog 3.0 sur CentOS 7 / RHEL 7 et configuré Graylog pour recevoir les journaux Rsyslog de sources externes. Pour en savoir plus, vous pouvez essayer de configurer Nginx ou Apache en tant que proxy inverse et configurer HTTPS pour l'interface Web Graylog.