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 Ubuntu 15.04, se concentre également sur l'installation de quatre autres composants qui font de Graylog2 un puissant outil de gestion des journaux.
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 :
Étant donné que Elasticsearch est basé sur Java, nous aurions besoin d'installer openJDK ou Oracle JDK. Il est recommandé d'installer Oracle JDK, vérifiez la version Java en utilisant la commande suivante.
$ java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
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 requête utilisateur complète 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, il peut être téléchargé à partir du site officiel.
Téléchargez et installez la clé de signature GPG.
$ sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Enregistrez la définition du référentiel dans /etc/apt/sources.list.d/elasticsearch.list
$ echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch.list
Mettre à jour le cache du référentiel.
$ sudo apt-get update
Installez Elasticsearch.
$ sudo apt-get install elasticsearch
Configurez Elasticsearch pour qu'il démarre au démarrage du système.
$ sudo systemctl start elasticsearch $ sudo systemctl enable elasticsearch
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.
$ sudo nano /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.
$ sudo systemctl restart elasticsearch
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" : "Pistol", "cluster_name" : "graylog2", "version" : { "number" : "1.7.1", "build_hash" : "b88f43fc40b0bcd7f173a1f9ee2e97816de80b19", "build_timestamp" : "2015-07-29T09:54:16Z", "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 dep 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. Avant cela, nous devons importer la clé publique.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Ajoutez un référentiel en créant le fichier de liste /etc/apt/sources.list.d/mongodb-org-3.0.list à l'aide de la commande.
### Ubuntu 15.04 / 14.10 ### $ echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
Mettre à jour le cache du référentiel.
$ sudo apt-get update
Installez MongoDB à l'aide de la commande suivante.
$ sudo apt-get install mongodb-org
Démarrez le service MongoDB et activez-le pour qu'il démarre automatiquement lors du démarrage du système.
$ sudo systemctl start mongod $ sudo systemctl enable mongod
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 depuis graylog.org, utilisez la commande suivante pour télécharger à l'aide du terminal.
$ wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.1.6.tgz
Extrayez-le et déplacez-le vers /opt.
$ sudo tar -zxvf graylog-1.1.6.tgz $ sudo mv graylog-1.1.6/ /opt/graylog
Copiez l'exemple de fichier de configuration dans /etc/graylog/server, créez le répertoire s'il n'existe pas.
$ sudo mkdir -p /etc/graylog/server $ sudo cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf
Modifiez le fichier server.conf.
$ sudo nano /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 OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gP
Si vous obtenez un "pwgen :commande introuvable ", utilisez la commande suivante pour installer pwgen.
$ sudo apt-get install pwgen
Placez le secret.
password_secret = OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gP
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
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
Démarrez le serveur graylog à l'aide de la commande suivante.
$ sudo cp /opt/graylog/bin/graylogctl /etc/init.d/graylog2
Mettez à jour le script de démarrage pour placer les journaux Graylog2 dans /var/log et pour rechercher le fichier JAR du serveur Graylog2 dans /opt/graylog en exécutant les deux commandes sed suivantes :
$ sudo sed -i -e 's/\=graylog.jar/\=\/opt\/graylog\/graylog.jar/g' /etc/init.d/graylog2 $ sudo sed -i -e 's/\=log/\=\/var\/log/g' /etc/init.d/graylog2
Installez le script de démarrage.
$ sudo update-rc.d graylog2 defaults
Démarrez le service Graylog.
$ sudo service graylog2 start
Au démarrage réussi de graylog-server, vous devriez obtenir le message suivant dans le fichier journal (/var/log/graylog-server.log).
2015-09-07 17:41:21,407 INFO : org.graylog2.shared.initializers.RestApiService - Started REST API at <http://127.0.0.1:12900/>
Installer l'interface Web Graylog :
Pour configurer graylog-web-interface, vous devez avoir au moins un nœud graylog-server ; téléchargez le même numéro de version pour vous assurer qu'il est compatible
$ wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.1.6.tgz
Extrayez l'archive et déplacez-la vers /opt.
$ sudo tar -zxvf graylog-web-interface-1.1.6.tgz $ sudo mv graylog-web-interface-1.1.6 /opt/graylog-web-interface
Modifiez le fichier de configuration et définissez les paramètres suivants.
$ sudo nano /opt/graylog-web-interface/conf/graylog-web-interface.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éfinit le secret d'application et peut être généré à l'aide de pwgen -N 1 -s 96.
application.secret="sNXyFf6B4Au3GqSlZwq7En86xp10JimdxxYiLtpptOejX6tIUpUE4DGRJOrcMj07wcK0wugPaapvzEzCYinEWj7BOtHXVl5Z"
Téléchargez le script d'initialisation graylog-web-interface depuis GitHub.
$ wget https://gist.githubusercontent.com/stojg/d1cbb8536e5a447e1f3a/raw/32b95a7909fa8fa42991600dbbb4d871bd86486b/graylog2-web-interface
Déplacez le fichier dans le répertoire init et modifiez les autorisations du fichier.
$ sudo mv graylog2-web-interface /etc/init.d/graylog2-web $ sudo chown root:root /etc/init.d/graylog2-web $ sudo chmod 755 /etc/init.d/graylog2-web
Modifiez le script d'initialisation pour changer le répertoire de l'interface Web.
$ sudo sed -i -e 's/graylog2-web-interface/graylog-web-interface/g' /etc/init.d/graylog2-web
Installez le script de démarrage.
$ sudo update-rc.d graylog2-web defaults
Démarrez le service Graylog.
$ sudo service graylog2-web start
L'interface Web écoutera sur le port 80. Pointez votre navigateur dessus. 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 Ubuntu 15.04.