Le serveur Graylog est une suite logicielle de gestion des journaux open source prête pour l'entreprise. Il collecte les journaux de diverses sources et les analyse pour découvrir et résoudre les problèmes. Le serveur Greylog est essentiellement la combinaison d'Elasticsearch, MongoDB et Graylog. Elasticsearch est une application open source très populaire pour stocker du texte et fournir des capacités de recherche très puissantes. MongoDB est une application open source pour stocker des données au format NoSQL. Graylog collecte des journaux de diverses sources et fournit un tableau de bord basé sur le Web pour gérer et rechercher dans les journaux. Graylog fournit également une API REST pour la configuration et les données. Il fournit un tableau de bord configurable qui peut être utilisé pour visualiser les mesures et observer les tendances en utilisant des statistiques de terrain, des valeurs rapides et des graphiques à partir d'un emplacement central.
Dans ce tutoriel, vous apprendrez à installer Graylog Server sur Ubuntu 16.04. Ce guide a été écrit pour Graylog Server 2.3, mais peut également fonctionner sur des versions plus récentes. Vous apprendrez également à installer Java, Elasticsearch et MongoDB. Nous allons également sécuriser l'instance MongoDB et configurer un proxy inverse Nginx pour le tableau de bord et l'API Web.
Conditions préalables
- Une instance de serveur Vultr Ubuntu 16.04 avec au moins 4 Go de RAM.
- Un utilisateur sudo .
Dans ce didacticiel, nous utiliserons 192.0.2.1
l'adresse IP publique du serveur et graylog.example.com
le nom de domaine pointé vers le serveur. Remplacez toutes les occurrences de 192.0.2.1
par votre adresse IP publique Vultr et graylog.example.com
par votre nom de domaine réel.
Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, installez Java.
Installer Java
Elasticsearch nécessite Java 8 pour fonctionner. Il prend en charge Oracle Java et OpenJDK, mais il est toujours recommandé d'utiliser Oracle Java lorsque cela est possible. Ajoutez le référentiel Oracle Java PPA:
sudo add-apt-repository ppa:webupd8team/java
Mettez à jour les métadonnées du référentiel APT:
sudo apt update
Installez la dernière version stable de Java 8, exécutez:
sudo apt -y install oracle-java8-installer
Acceptez le contrat de licence lorsque vous y êtes invité. Si Java a été installé avec succès, vous devriez pouvoir vérifier sa version.
java -version
Vous verrez la sortie suivante.
user@vultr:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Définissez les paramètres JAVA_HOME
par défaut et autres en installant oracle-java8-set-default
. Courir:
sudo apt -y install oracle-java8-set-default
Exécutez la echo $JAVA_HOME
commande pour vérifier si la variable d'environnement est définie ou non.
user@vultr:~$ echo "$JAVA_HOME"
/usr/lib/jvm/java-8-oracle
Si vous n'obtenez pas la sortie indiquée ci-dessus, vous devrez peut-être vous déconnecter et vous reconnecter au shell.
Installer Elasticsearch
Elasticsearch est une application distribuée, en temps réel, évolutive et hautement disponible utilisée pour stocker les journaux et les parcourir. Il stocke les données dans des index et la recherche dans les données est très rapide. Il fournit différents ensembles d'API, tels que l'API HTTP RESTful et l'API Java native. Elasticsearch peut être installé directement via le référentiel Elasticsearch. Ajoutez le référentiel Elasticsearch APT:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Importez la clé PGP utilisée pour signer les packages. Cela garantira l'intégrité des packages.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Mettez à jour les métadonnées du référentiel APT.
sudo apt update
Installez le package Elasticsearch:
sudo apt -y install elasticsearch
Une fois le package installé, ouvrez le fichier de configuration par défaut d'Elasticsearch.
sudo nano /etc/elasticsearch/elasticsearch.yml
Recherchez la ligne suivante, décommentez-la et modifiez la valeur de my-application
à graylog
.
cluster.name: graylog
Vous pouvez démarrer Elasticsearch et l'activer pour démarrer automatiquement au démarrage:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Elasticsearch s'exécute maintenant sur le port 9200. Vérifiez qu'il fonctionne correctement en exécutant:
curl -XGET 'localhost:9200/?pretty'
Vous devriez voir une sortie similaire à la suivante.
[user@vultr ~]$ curl -XGET 'localhost:9200/?pretty'
{
"name" : "-kYzFA9",
"cluster_name" : "graylog",
"cluster_uuid" : "T3JQKehzSqmLThlVkEKPKg",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
Si vous rencontrez des erreurs, attendez quelques secondes et réessayez, car il faut du temps à Elasticsearch pour terminer son processus de démarrage. Elasticsearch est maintenant installé et fonctionne correctement.
Installer MongoDB
MongoDB est un serveur de base de données NoSQL gratuit et open source. Contrairement à la base de données traditionnelle qui utilise des tables pour organiser leurs données, MongoDB est orienté document et utilise des documents de type JSON sans schémas. Graylog utilise MongoDB pour stocker sa configuration et ses méta-informations. Il peut être installé directement via le référentiel MongoDB. Importez la clé GPG utilisée pour signer le package. Cela garantira l'authenticité des colis.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Créez maintenant le fichier du référentiel:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Mettez à jour les métadonnées du référentiel APT.
sudo apt update
Installez le package MongoDB:
sudo apt -y install mongodb-org
Démarrez le serveur MongoDB et activez-le pour démarrer automatiquement.
sudo systemctl start mongod
sudo systemctl enable mongod
Installer le serveur Graylog
Téléchargez et le dernier référentiel pour le serveur Graylog.
wget https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.deb
sudo dpkg -i graylog-2.3-repository_latest.deb
sudo apt update
Installez le package Graylog:
sudo apt install graylog-server
Le serveur Graylog est maintenant installé sur votre serveur. Avant de pouvoir le démarrer, vous devrez configurer quelques éléments.
Installez l' pwgen
utilitaire pour générer des mots de passe forts.
sudo apt -y install pwgen
Générez maintenant un secret de mot de passe fort.
pwgen -N 1 -s 96
Vous obtiendrez une sortie similaire à:
[user@vultr ~]$ pwgen -N 1 -s 96
pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
Générez également un hachage 256 bits pour le mot de passe de l' admin
utilisateur root :
echo -n StrongPassword | sha256sum
Remplacez StrongPassword
par le mot de passe que vous souhaitez définir pour l' admin
utilisateur. Tu verras:
[user@vultr ~]$ echo -n StrongPassword | sha256sum
05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223 -
Ouvrez le fichier de configuration Graylog:
sudo nano /etc/graylog/server/server.conf
Recherchez password_secret =
, copiez et collez le mot de passe généré par la pwgen
commande. Recherchez root_password_sha2 =
, copiez et collez le hachage SHA 256 bits converti de votre mot de passe administrateur. Recherchez #root_email =
, décommentez et fournissez votre adresse e-mail. Décommentez et définissez votre fuseau horaire sur root_timezone
. Par exemple:
password_secret = pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
root_email = [email protected]
root_timezone = Asia/Kolkata
Activez l'interface Web Graylog en supprimant les commentaires #web_enable = false
et en définissant sa valeur sur true
. Décommentez également et modifiez les lignes suivantes comme spécifié.
rest_listen_uri = http://0.0.0.0:9000/api/
rest_transport_uri = http://192.0.2.1:9000/api/
web_enable = true
web_listen_uri = http://0.0.0.0:9000/
Enregistrez le fichier et quittez votre éditeur de texte.
Redémarrez et activez le service Graylog en exécutant:
sudo systemctl restart graylog-server
sudo systemctl enable graylog-server
Par défaut, l'interface Web Graylog écoute sur localhost
le port 9000 et l'API écoute sur le port 9000 avec l'URL /api
. Dans ce tutoriel, nous utiliserons Nginx comme proxy inverse afin que l'application puisse être accessible via le port HTTP standard. Installez le serveur Web Nginx en exécutant:
sudo apt -y install nginx
Ouvrez le fichier hôte virtuel par défaut en tapant.
sudo nano /etc/nginx/sites-available/default
Remplacez le contenu existant par les lignes suivantes:
server
{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name 192.0.2.1 graylog.example.com;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/api;
proxy_pass http://127.0.0.1:9000;
}
}
Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage:
sudo systemctl restart nginx
sudo systemctl enable nginx
Conclusion
L'installation et la configuration de base du serveur Graylog sont maintenant terminées. Vous pouvez maintenant accéder au serveur Graylog sur http://192.0.2.1
ou http://graylog.example.com
si vous avez configuré DNS. Connectez-vous en utilisant le nom d'utilisateur admin
et la version en texte brut du mot de passe que vous avez défini root_password_sha2
précédemment.
Félicitations - vous avez un serveur Graylog pleinement fonctionnel installé sur votre serveur Ubuntu 16.04.