Graylog (anciennement connu sous le nom de Graylog2) est une plate-forme de gestion de journaux open source, vous aide à collecter, indexer et analyser tous les journaux de machine sur un emplacement centralisé. Ce guide vous aide à installer Graylog2 sur CentOS 7 / RHEL 7, et se concentre également sur l'installation de quatre autres composants qui font de Graylog2 un puissant outil de gestion des journaux.
Ce tutoriel concerne une version obsolète de Graylog2. Une nouvelle version est disponible ici :Comment installer Graylog sur CentOS 7 / RHEL 7.Nous pouvons installer Graylog de deux manières,
1. En utilisant le package source.
2. En utilisant des packages binaires officiels (recommandé).
Dans ce didacticiel, je montrerai l'installation de graylog à l'aide de packages binaires.
Composants :
1. MongoDB - Stocke les configurations et les méta-informations.
2. Elasticsearch - Stocke les messages du journal et offre une fonction de recherche, les nœuds doivent avoir une mémoire élevée car toutes les opérations d'E/S se produisent ici.
3. GrayLog - Analyseur de journaux, il collecte les journaux à partir de diverses entrées.
4. Interface Web GrayLog =vous fournit le portail Web pour la gestion des journaux.
Pré-requis :
1. Étant donné que Elasticsearch est basé sur Java, nous aurions besoin d'installer openJDK ou Oracle JDK. Il est recommandé d'installer Oracle JDK.
Pour utiliser openJDK, installez-le à l'aide de la commande ci-dessous.
# yum install java
Vérifiez la version Java à l'aide de la commande suivante.
# java -version java version "1.8.0_11" Java(TM) SE Runtime Environment (build 1.8.0_11-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
2. Configurez le référentiel EPEL sur CentOS 7 / RHEL 7.
Installez Elasticsearch :
Elasticsearch est un serveur de recherche open source, il offre une recherche et une analyse distribuées en temps réel avec une interface Web RESTful. Elasticsearch stocke tous les journaux envoyés par le serveur Graylog et affiche les messages lorsque l'interface Web graylog demande une demande complète de l'utilisateur via l'interface Web.
Cette rubrique couvre les paramètres de configuration requis pour Graylog, vous pouvez également consulter Installer Elasticsearch sur CentOS 7 / Ubuntu 14.10 / Linux Mint 17.1 pour des instructions détaillées.
Installons Elasticsearch, vous pouvez le télécharger depuis le site officiel.
Importez la clé GPG.
# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
Ajoutez le référentiel Elasticsearch.
# vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch-1.7] name=Elasticsearch repository for 1.7.x packages baseurl=http://packages.elastic.co/elasticsearch/1.7/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Installez la dernière version à l'aide de la commande yum
# yum -y install elasticsearch
Configurez Elasticseach pour qu'il démarre au démarrage du système.
# systemctl daemon-reload # systemctl enable elasticsearch.service
La seule chose importante est de définir un nom de cluster comme "graylog2 “, qui est utilisé par graylog. Modifiez maintenant le fichier de configuration d'Elasticsearch.
# vi /etc/elasticsearch/elasticsearch.yml cluster.name: graylog2
Désactivez les scripts dynamiques pour éviter l'exécution à distance, ce qui peut être fait en ajoutant la ligne suivante à la fin du fichier ci-dessus.
script.disable_dynamic: true
Une fois que c'est fait, nous sommes prêts à partir. Avant cela, redémarrez les services Elasticsearch pour charger la configuration modifiée.
# systemctl restart elasticsearch.service
Attendez au moins une minute pour permettre à Elasticsearch de redémarrer complètement, sinon les tests échoueront. Elastisearch devrait maintenant écouter sur 9200 pour traiter la requête HTTP, nous pouvons utiliser CURL pour obtenir la réponse. Assurez-vous qu'il renvoie avec le nom de cluster "graylog2 ”
# curl -X GET http://localhost:9200 { "status" : 200, "name" : "Silver Fox", "cluster_name" : "graylog2", "version" : { "number" : "1.7.2", "build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec", "build_timestamp" : "2015-09-14T09:49:53Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" }
Facultatif : Utilisez la commande suivante pour vérifier la santé du cluster Elasticsearch, vous devez obtenir un statut de cluster comme "vert" pour que graylog fonctionne.
# curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' { "cluster_name" : "graylog2", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 0, "active_shards" : 0, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0 }
Installez MongoDB :
MongoDB est disponible au format RPM et peut être téléchargé à partir du site officiel. Ajoutez les informations de référentiel suivantes sur le système pour installer MongoDB à l'aide de yum.
# vi /etc/yum.repos.d/mongodb-org-3.0.repo [mongodb-org-3.0] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=0 enabled=1
Installez MongoDB à l'aide de la commande suivante.
# yum -y install mongodb-org
Si vous utilisez SELinux, vous devez installer le package ci-dessous pour configurer certains éléments de la politique SELinux.
# yum -y install policycoreutils-python
Exécutez la commande suivante pour configurer SELinux afin d'autoriser le démarrage de MongoDB.
# semanage port -a -t mongod_port_t -p tcp 27017
Ou, si vous ne souhaitez pas utiliser SELinux sur le système, envisagez de désactiver SELinux.
Démarrez le service MongoDB et activez-le pour qu'il démarre automatiquement lors du démarrage du système.
# service mongod start # chkconfig mongod on
Les étapes ci-dessus suffisent pour configurer graylog2, vous pouvez trouver la configuration détaillée ici.
Installez Graylog2 :
Graylog-server accepte et traite les messages du journal, génère également la RESTAPI pour les requêtes provenant de graylog-web-interface. Téléchargez la dernière version de graylog sur graylog.org.
Utilisez la commande suivante pour installer le référentiel graylog2.
# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.2-repository-el7_latest.rpm
Installez le dernier serveur graylog.
# yum -y install graylog-server
Modifiez le fichier server.conf.
# vi /etc/graylog/server/server.conf
Configurez les variables suivantes dans le fichier ci-dessus.
Définissez un secret pour sécuriser les mots de passe des utilisateurs, utilisez la commande suivante pour générer un secret, utilisez au moins 64 caractères.
# pwgen -N 1 -s 96 5uxJaeL4vgP9uKQ1VFdbS5hpAXMXLq0KDvRgARmlI7oxKWQbH9tElSSKTzxmj4PUGlHIpOkoMMwjICYZubUGc9we5tY1FjLB
Si vous obtenez un "pwgen :commande introuvable ", utilisez la commande suivante pour installer pwgen.
Remarque :n'oubliez pas de configurer le référentiel EPEL sur CentOS 7 / RHEL 7.
# yum -y install pwgen
Placez le secret.
password_secret = 5uxJaeL4vgP9uKQ1VFdbS5hpAXMXLq0KDvRgARmlI7oxKWQbH9tElSSKTzxmj4PUGlHIpOkoMMwjICYZubUGc9we5tY1FjLB
Ensuite, définissez un mot de passe de hachage pour l'utilisateur root (à ne pas confondre avec l'utilisateur système, l'utilisateur root de graylog est admin). Vous utiliserez ce mot de passe pour vous connecter à l'interface Web, le mot de passe de l'administrateur ne peut pas être modifié à l'aide de l'interface Web, vous devez modifier cette variable pour la définir.
Remplacez "votre mot de passe ” avec votre choix.
# echo -n yourpassword | sha256sum e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Placez le mot de passe de hachage.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Vous pouvez configurer l'utilisateur root (admin) de l'adresse e-mail.
root_email = "[email protected]"
Définir le fuseau horaire de l'utilisateur root (admin).
root_timezone = UTC
Graylog essaiera de trouver automatiquement les nœuds Elasticsearch, il utilise le mode multidiffusion pour la même chose. Mais lorsqu'il s'agit d'un réseau plus vaste, il est recommandé d'utiliser le mode monodiffusion qui convient le mieux aux configurations de production. Ajoutez donc les deux entrées suivantes au fichier graylog server.conf, remplacez ipaddress avec le nom d'hôte ou l'adresse IP en direct, plusieurs hôtes peuvent être ajoutés en les séparant par des virgules.
elasticsearch_http_enabled = false elasticsearch_discovery_zen_ping_unicast_hosts = ipaddress:9300
Définissez un seul nœud maître en définissant la variable ci-dessous, le paramètre par défaut est vrai, vous devez le définir comme faux pour faire du nœud particulier un esclave. Le nœud maître effectue certaines tâches périodiques que l'esclave n'effectuera pas.
is_master = true
La variable suivante définit 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 = 20000000
Le paramètre suivant définit le nombre total d'index, si ce nombre est atteint, l'ancien index sera supprimé.
elasticsearch_max_number_of_indices = 20
Le paramètre des fragments dépend vraiment du nombre de nœuds dans le cluster Elasticsearch, si vous n'avez qu'un seul nœud, définissez-le sur 1.
elasticsearch_shards = 1
Le nombre de réplicas pour vos index, si vous n'avez qu'un seul nœud dans le cluster Elasticsearch ; définissez-le sur 0.
elasticsearch_replicas = 0
Ajoutez les informations d'authentification MongoDB.
mongodb_useauth = false
Démarrez le serveur graylog à l'aide de la commande suivante.
# systemctl restart graylog-server
Vous pouvez consulter les journaux de démarrage du serveur, cela vous sera utile pour dépanner graylog en cas de problème.
# tailf /var/log/graylog-server/server.log
Au démarrage réussi de graylog-server, vous devriez obtenir le message suivant dans le fichier journal.
2015-09-16T21:26:05.689-04:00 INFO [ServerBootstrap] Graylog server up and running.
Installer l'interface Web Graylog :
Pour configurer graylog-web-interface, vous devez avoir au moins un nœud graylog-server. Installez l'interface Web à l'aide de la commande ci-dessous.
# yum -y install graylog-web
Modifiez le fichier de configuration et définissez les paramètres suivants.
# vi /etc/graylog/web/web.conf
Ceci est la liste des nœuds graylog-server, vous pouvez ajouter plusieurs nœuds, séparés par des virgules.
graylog2-server.uris="http://127.0.0.1:12900/"
Définissez le secret d'application, vous pouvez le générer à l'aide de pwgen -N 1 -s 96.
application.secret="sNXyFf6B4Au3GqSlZwq7En86xp10JimdxxYiLtpptOejX6tIUpUE4DGRJOrcMj07wcK0wugPaapvzEzCYinEWj7BOtHXVl5Z"
Redémarrez l'interface gralog-web en utilisant la commande suivante,
# systemctl restart graylog-web
Accéder à l'interface Web Graylog :
L'interface Web écoutera sur le port 9000, configurez le pare-feu pour autoriser le trafic sur le port 9000.
# firewall-cmd --permanent --zone=public --add-port=9000/tcp # firewall-cmd --reload
Dirigez votre navigateur vers http://ip-add-ress:9000 . Connectez-vous avec le nom d'utilisateur "admin" et le mot de passe que vous avez configuré sur root_password_sha2 surserveur.conf .
Une fois connecté, vous obtiendrez la page de recherche suivante.
C'est tout !, vous avez installé avec succès Graylog2 sur CentOS 7 / RHEL 7.
Ce guide concerne une version obsolète de Graylog2. Une nouvelle version est disponible ici :Comment installer Graylog sur CentOS 7 / RHEL 7.