Graylog – Installation du serveur

graylog

Graylog est une plateforme Open Source sous licence GPLv3 de gestion, centralisation et analyse de logs née en 2010 et développée par la société Graylog, Inc. basée à Houston aux Etats-Unis.
Ses principales caractéristiques sont :

  • Centralisation des logs émis par un ensemble de serveurs distants
  • Stockage des logs dans une base de données Elasticsearch ( en cluster éventuellement)
  • Stockage des données de configuration et métadonnées dans une base de données MongoDB (répliquée éventuellement)
  • Moteur Graylog d’analyse et de gestion des logs pourvu d’une interface Web Java
  • Configuration de tableaux de bord personnalisés avec widgets
  • Authentification par l’intermédiaire d’un annuaire LDAP
  • Affichage statistique sous forme de courbes, camemberts, histogrammes, etc.
  • Outil de recherche puissant via une syntaxe optimisée
  • Collecte des logs via protocole Syslog/Rsyslog, entre autres formats (GELF, Beats, etc.)
  • Gestion des logs venant de serveurs Debian, Ubuntu, CentOS, etc. … ou encore MacOS X et Windows Server (via NXLog et Graylog Sidecar)
  • Catégorisation des logs en temps réel par l’intermédiaire de streams

 

Objectif

 

L’objectif de cet article est l’installation et la configuration d’un serveur auto-hébergé Graylog en version 2.1.2 sur une distribution Linux Debian Jessie 8.4 32bits.

 

Schéma logique

 

graylog2

 

Pré-requis

 

1. Pré-requis avant réalisation

  • Un serveur Debian Jessie 8.4 32 bits fonctionnel (installation basique avec utilitaires usuels du système et service SSH)
  • Le serveur doit posséder des ressources conséquentes, notamment du point de vue du CPU (pour la partie Graylog-Server) et de la RAM (pour la partie Elasticsearch). Le serveur installé ici pour les tests est en 32 bits, il est évident qu’en production il faudra un serveur 64 bits
  • Il est fortement conseillé que le serveur Graylog et tous les serveurs émetteurs de logs soient synchronisés via NTP avec la même source de temps
  • Packages de base supplémentaires : sudo, resolvconf
  • Domaine utilisé : opensharing.priv

 

2. Configuration réseau initiale

Serveur Garylog
FQDN graylog.opensharing.priv
Adresse IP 192.168.1.70
Réseau 192.168.1.0/24
Passerelle 192.168.1.1
dns-nameservers 192.168.1.11 192.168.1.12
dns-search opensharing.priv

 

Contenu initial du fichier /etc/network/interfaces :

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
	address 192.168.1.70
	netmask 255.255.255.0
	network 192.168.1.0
	broadcast 192.168.1.255
	gateway 192.168.1.1
	dns-search opensharing.priv
	dns-nameservers 192.168.1.11 192.168.1.12

 
Contenu initial du fichier /etc/hosts :

127.0.0.1	localhost.localdomain           localhost
192.168.1.70	graylog.opensharing.priv        graylog

Rmq : L’adresse 127.0.1.1 doit être retirée sur un serveur à IP fixe et remplacée par cette dernière, tel que l’exemple ci-dessus.
 
Contenu initial du fichier /etc/host.conf :

order hosts, bind
multi on

 
Contenu initial du fichier /etc/resolv.conf :

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.11
nameserver 192.168.1.12
search opensharing.priv

Rmq :
Le fichier /etc/resolv.conf ne doit pas être édité dès lors que le paquet resolvconf a été installé.

Pour prendre en compte les modifications des fichiers de configuration relatifs au réseau, redémarrage du service réseau :

# /etc/init.d/networking restart
# /etc/init.d/networking reload

 

Réalisation

 

Dispositions préalables

 

Démarrer avec un système à jour

# apt update
# apt upgrade

 

Suppression d’un éventuel Java 7 installé

Graylog 2.1.2 nécessite Java 8 donc il est nécessaire de supprimer Java 7 si ce dernier est installé sur le système.

# apt purge openjdk-7-jre openjdk-7-jre-headless

 

Installation de Java 8 et autres paquets pré-requis

La branche Backports de Debian Jessie est nécessaire pour installer la version 8 de Java, il est donc nécessaire de l’ajouter à la liste des branches dans le fichier /etc/apt/sources.list :

# nano /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ jessie main
deb-src http://ftp.fr.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

deb http://ftp.fr.debian.org/debian/ jessie-updates main
deb-src http://ftp.fr.debian.org/debian/ jessie-updates main

deb http://ftp.debian.org/debian jessie-backports main

Il faut alors mettre à jour la liste des paquets disponibles depuis les dépôts pour prendre en compte la branche nouvellement ajoutée.

# apt update
[...]
Réception de : 1 http://ftp.debian.org jessie-backports InRelease [166 kB]
Réception de : 4 http://ftp.debian.org jessie-backports/main Translation-en [509 kB]                 
Réception de : 5 http://ftp.debian.org jessie-backports/main i386 Packages [748 kB]
[...]

Puis procéder à l’installation de Java 8 et de certains paquets qui nous seront utiles par la suite :

# apt install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen curl
# java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK Server VM (build 25.111-b14, mixed mode)

 

Installation de MongoDB

 
MongoDB est utilisé ici pour le stockage des métadonnées et données de configuration du serveur Graylog.
Il s’agit d’un SGBD non relationnel et NoSQL sans schéma prédéfini des données où les documents (équivalents des enregistrements des SGBDR) sont enregistrés aux formats BSON et JSON dans des collections (équivalentes des tables des SGBDR).

# apt install mongodb-server
# systemctl daemon-reload
# systemctl enable mongodb.service
Synchronizing state for mongodb.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d mongodb defaults
Executing /usr/sbin/update-rc.d mongodb enable
# systemctl restart mongodb.service

 

Installation de Elasticsearch

 
Elasticsearch est un moteur de recherche libre écrit en Java et utilisant la bibliothèque Apache Lucene, écrite également en Java, permettant l’indexation des données sous forme de documents au format JSON pour procéder à leur analyse et recherche en temps réel.
Au moment de ces tests, la version disponible sur les dépôts Debian est la 1.0.3 et sur le Backports la 1.6.2. Or, la dernière version officielle disponible est la 5.0.0. De plus, la version 1.0.3 de Elasticsearch installera automatiquement Java 7, qui est incompatible avec la dernière version de Graylog. Toutefois, la version 5.0.0 n’est pas compatible avec la version 2.1.2 de Graylog. Il nous faut donc récupérer la dernière version de Elasticsearch qui précède la 5.0.0, à savoir la 2.4.1.

# mkdir /home/adminsys/elasticsearch
# cd /home/adminsys/elasticsearch
# wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.4.1/elasticsearch-2.4.1.deb
# dpkg -i elasticsearch-2.4.1.deb

Modification de la configuration :

# nano /etc/elasticsearch/elasticsearch.yml
[...]
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: graylog
#
[...]
# systemctl daemon-reload
# systemctl enable elasticsearch.service
Synchronizing state for elasticsearch.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d elasticsearch defaults
Executing /usr/sbin/update-rc.d elasticsearch enable
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
# systemctl restart elasticsearch.service

 

Installation de Graylog

L’installation du serveur Graylog consiste, dans un premier temps, à installer un nouveau dépôt puis, dans un second temps, à installer le serveur à partir de ce dépôt nouvellement ajouté.
 

# mkdir /home/adminsys/graylog
# cd /home/adminsys/graylog
# wget https://packages.graylog2.org/repo/packages/graylog-2.1-repository_latest.deb
# dpkg -i graylog-2.1-repository_latest.deb
# cat /etc/apt/sources.list.d/graylog.list
deb https://packages.graylog2.org/repo/debian/ stable 2.1
# apt update
[...]
Ign https://packages.graylog2.org stable InRelease
Réception de : 5 https://packages.graylog2.org stable Release.gpg [473 B]
Réception de : 7 https://packages.graylog2.org stable Release [7 346 B]             
Réception de : 8 https://packages.graylog2.org stable/2.1 i386 Packages [3 251 B]
[...]
# apt install graylog-server

Modification de la configuration :
Nous aurons besoin de deux mots de passe cryptés, que nous allons générer avec deux commandes différentes.

# pwgen -N 1 -s 96
vZxH9L9yEmpig1t1RSx2AmSENpgI1s6iqyYilhC8MhlMCOodHkuAiAS8VTSf2824FmF4LWnvLpsaICgI9DjCzmxp6zD4b5bR
# echo -n password | sha256sum
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8  -

Ci-dessus, le mot de passe de l’utilisateur admin sera password.
Il faut ensuite modifiier le fichier /etc/graylog/server/server.conf afin, entre autres, d’ajouter les mots de passe générés.

# nano /etc/graylog/server/server.conf
[...]
password_secret = vZxH9L9yEmpig1t1RSx2AmSENpgI1s6iqyYilhC8MhlMCOodHkuAiAS8VTSf2824FmF4LWnvLpsaICgI9DjCzmxp6zD4b5bR
[...]
root_password_sha2 = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
[...]
root_timezone = Europe/Paris
[...]
rest_listen_uri = http://graylog.opensharing.priv:9000/api/
[...]
web_listen_uri = http://graylog.opensharing.priv:9000/
[...]
elasticsearch_cluster_name = graylog
[...]
elasticsearch_shards = 1
elasticsearch_replicas = 0
[...]
# systemctl daemon-reload
# systemctl enable graylog-server.service
Synchronizing state for graylog-server.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d graylog-server defaults
Executing /usr/sbin/update-rc.d graylog-server enable
Created symlink from /etc/systemd/system/multi-user.target.wants/graylog-server.service to /usr/lib/systemd/system/graylog-server.service.
# systemctl restart graylog-server.service

Nous pouvons observer un message d’erreur non bloquant relatif au service graylog-server :

# systemctl status graylog-server.service
OpenJDK Server VM warning: You have loaded library /usr/share/elasticsearch/lib/sigar/libsigar-x86-linux.so which might have disabled stack guard.

Pour le corriger :

# apt install execstack
# execstack -c /usr/share/graylog-server/lib/sigar/libsigar-x86-linux.so

 

Vérification des éléments installés

 

Interface Web de Graylog

Pour cela, il suffit de se connecter via un navigateur à l’URL suivante :
http://graylog.opensharing.priv:9000
L’interface Web se lance correctement :
graylog2
On nous demande alors les identifiants déclarés : admin et password
graylog3
L’identification aboutit :
graylog4
graylog5
Mais on remarque une notification :
graylog6
Qui nous informe qu’aucun format de message (input) n’a été défini pour la réception des messages :
graylog7
C’est en effet le cas :
graylog8
Les clients monitorés utilisent rsyslog ou syslog-ng, nous allons donc définir un input de type Syslog UDP que nous choisissons parmi la liste déroulante :
graylog9
Après avoir cliqué sur Launch new input, la fenêtre suivante apparait, que nous remplissons en spécifiant un port supérieur à 1024 car les ports situés en-dessous de cette valeur sont réservés :
graylog10
La valeur 0.0.0.0 signifie une écoute sur toutes les interfaces du serveur Graylog.
Une fois cliqué sur le bouton Save, l’input Syslog UDP se lance automatiquement :
graylog11
Le serveur est maintenant fonctionnel, mais en allant sur l’onglet Search on remarque qu’aucun message n’est encore reçu, et c’est normal.
Il faut pour cela modifier la configuration du service rsyslog/syslog-ng d’un client à monitoré, ce qui sera développé dans la section Pour aller plus loin.
graylog12
PAPL01

 

Connexion à MongoDB

Comme vu avec l’interface Web de Graylog, tout semble fonctionnel, mais il est toujours mieux de s’en assurer.
La connexion à MongoDB se fait via la commande suivante :

mongo host:port/database -u user -p password

La configuration de Graylog ne spécifie pas d’identifiant de connexion et utilise le port par défaut, à savoir 27017.
La base de données générée par le serveur Graylog se nomme graylog.

# mongo localhost:27017/graylog
MongoDB shell version: 2.4.10
connecting to: localhost:27017/graylog
> 

Connexion apparemment réussie. Vérifions simplement si nous sommes bien connectés à la base de données graylog :

> db
graylog

C’est le cas.
 
PAPL02

 

Connexion à Elasticsearch

La connexion à Elasticsearch se fait par requêtes HTTP donc nous pouvons utiliser soit la commande curl, soit le navigateur Web :

# curl -X GET 'http://localhost:9200/'
{
  "name" : "Longshot",
  "cluster_name" : "graylog",
  "cluster_uuid" : "S_pSDHhuRLiUvccchHVQKg",
  "version" : {
    "number" : "2.4.1",
    "build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16",
    "build_timestamp" : "2016-09-27T18:57:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}

Idem via le navigateur Web :
elas1png
La connexion est fonctionnelle.
Mais pour savoir l’état du cluster, la commande suivante est requise :

# curl -X GET 'http://localhost:9200/_cluster/health?pretty=true'
{
  "cluster_name" : "graylog",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 1,
  "active_shards" : 1,
  "relocating_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" : 100.0
}

Le statut green signifie que le cluster est fonctionnel et opérationnel.
Pour afficher l’état des index :

# curl -X GET 'http://localhost:9200/_cat/indices?v'
health status index     pri rep docs.count docs.deleted store.size pri.store.size 
green  open   graylog_0   1   0          0            0       159b           159b

On remarque que la colonne docs.count est à 0 car nous n’avons encore reçu aucun log, aucun client n’ayant été configuré pour cela.
PAPL03

 

Pour aller plus loin

 
PAPL01

Configuration d’un client à monitorer

Comme nous l’avons vu, la page de recherche n’affiche encore aucun message. Nous devons tout d’abord nous assurer que Graylog reçoit bien les messages venant d’un client.
Tout d’abord, on peut vérifier que le port 5140 de l’input Syslog UDP est bien ouvert. Sur le terminal du client, saisir la commande suivante :

# echo "Salut Graylog, tu reçois bien mes messages?!" | nc -w 1 -u graylog.opensharing.priv 5140

Si tout va bien, le message devrait apparaitre dans la liste des messages reçus, dans l’onglet Search du serveur Graylog :
graylog13
Comme la communication est fonctionnelle, nous allons configurer le service Rsyslog de notre client pour qu’il envoie automatiquement les logs en UDP au serveur Graylog.
Pour cela, il faut éditer le fichier de configuration /etc/rsyslog.conf et ajouter la ligne suivante en fin de fichier :

*.* @graylog.opensharing.priv:5140;RSYSLOG_SyslogProtocol23Format

Ci-dessus pour une connexion UDP (simple @).

*.* @@graylog.opensharing.priv:5140;RSYSLOG_SyslogProtocol23Format

Ci-dessus pour une connexion TCP (double @@), mais il faut pour cela configurer un input Syslog TCP sur le serveur Graylog.
Ces lignes spécifient un format de logs conforme au protocole Syslog et à la RFC 5424.
Pour une ancienne version de Syslog sur le client, il est possible de spécifier un template conforme à la RFC 5424 :

$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"
*.* @192.168.1.70:5140;GRAYLOGRFC5424                    # en connexion UDP
*.* @@192.168.1.70:5140;GRAYLOGRFC5424                   # en connexion TCP

Si nous redémarrons le service SSH sur le client monitoré, nous devrions observer ses logs sur le serveur Graylog :
graylog14
Ci-dessus, le serveur source (client monitoré) s’appelle snipeit. Nous pouvons constater que le serveur Graylog reçoit bien les messages du service rsyslog exécuté sur le client monitoré.
Au bout de quelques minutes d’utilisation, on peut voir le nombre de messages reçus augmenter :
graylog15

 


 

PAPL02

MongoDB : commandes supplémentaires

Pour afficher les bases de données disponibles :

> show dbs
graylog	0.125GB
local	0.03125GB

Pour se connecter explicitement à la base de données graylog :

> use graylog
switched to db graylog

Pour afficher les collections (tables) de la base de données graylog :

> show collections

ou

> show tables
cluster_config
cluster_events
collectors
content_packs
grok_patterns
index_failures
index_ranges
inputs
nodes
notifications
pipeline_processor_pipelines
pipeline_processor_pipelines_streams
pipeline_processor_rules
roles
sessions
system.indexes
system_messages
users

Pour afficher les documents de la collection input :

> db.inputs.find()
{ "_id" : ObjectId("58287c354e6e5f0753a9998b"), "creator_user_id" : "admin", "configuration" : { "expand_structured_data" : false, "recv_buffer_size" : 262144, "port" : 5140, "override_source" : null, "force_rdns" : false, "allow_override_date" : true, "bind_address" : "0.0.0.0", "store_full_message" : false }, "name" : "Syslog UDP", "created_at" : ISODate("2016-11-13T14:44:05.146Z"), "global" : true, "type" : "org.graylog2.inputs.syslog.udp.SyslogUDPInput", "title" : "Syslog UDP", "content_pack" : null }

Pas très lisible, pour cela appeler la méthode pretty() :

> db.inputs.find().pretty()
{
	"_id" : ObjectId("58287c354e6e5f0753a9998b"),
	"creator_user_id" : "admin",
	"configuration" : {
		"expand_structured_data" : false,
		"recv_buffer_size" : 262144,
		"port" : 5140,
		"override_source" : null,
		"force_rdns" : false,
		"allow_override_date" : true,
		"bind_address" : "0.0.0.0",
		"store_full_message" : false
	},
	"name" : "Syslog UDP",
	"created_at" : ISODate("2016-11-13T14:44:05.146Z"),
	"global" : true,
	"type" : "org.graylog2.inputs.syslog.udp.SyslogUDPInput",
	"title" : "Syslog UDP",
	"content_pack" : null
}

On retrouve bien l’input Syslog UDP précédemment créé.

 


 

PAPL03

Elasticsearch : commandes supplémentaires

Pour afficher la liste des catégories :

# curl -X GET 'http://localhost:9200/_cat?pretty=true'

Pour afficher toute la configuration de l’index graylog_0 :

# curl -X GET 'http://localhost:9200/graylog_0?pretty=true'

Equivaut à :

# curl -X GET 'http://localhost:9200/graylog_0/_aliases,_mappings,_settings,_warmers?pretty=true'

Pour afficher seulement les paramètres :

# curl -X GET 'http://localhost:9200/graylog_0/_settings?pretty=true'

Pour supprimer le contenu de l’index graylog_0 :

# curl -X DELETE http://localhost:9200/graylog_0/

 


 

Liste des fichiers générés lors de l’installation

 

Graylog

Chemin absolu
Configuration /etc/graylog/server/server.conf
Logging configuration /etc/graylog/server/log4j2.xml
Plugins /usr/share/graylog-server/plugin/
JVM settings /etc/default/graylog-server
Message journal files /var/lib/graylog-server/journal/
Log Files /var/log/graylog-server/

 

MongoDB

Chemin absolu
Configuration /etc/mongod.conf
Data files /var/lib/mongodb/
Log files /var/log/mongodb/

Les bases de données MongoDB sont stockées dans le répertoire /var/lib/mongodb/ sous forme de fichiers data :

# file /var/lib/mongodb/*
/var/lib/mongodb/graylog.0:   data
/var/lib/mongodb/graylog.1:   data
/var/lib/mongodb/graylog.2:   data
/var/lib/mongodb/graylog.ns:  data
/var/lib/mongodb/journal:     directory
/var/lib/mongodb/local.0:     data
/var/lib/mongodb/local.ns:    data
/var/lib/mongodb/mongod.lock: ASCII text
/var/lib/mongodb/_tmp:        directory

 

Elasticsearch

Chemin absolu
Configuration /etc/elasticsearch/
JVM settings /etc/default/elasticsearch
Data files /var/lib/elasticsearch/
Log files /var/log/elasticsearch/

L’index graylog_0 est stocké dans le répertoire /var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/ sous forme de fichiers data :

# file /var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/*
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a.fdt:            data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a.fdx:            data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a.fnm:            data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a_Lucene50_0.doc: data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a_Lucene50_0.pos: data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a_Lucene50_0.tim: data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a_Lucene50_0.tip: data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a_Lucene54_0.dvd: data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a_Lucene54_0.dvm: data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a.nvd:            data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a.nvm:            data
/var/lib/elasticsearch/graylog/nodes/0/indices/graylog_0/0/index/_a.si:             data
[...]

 


 

La sauvegarde

 

Graylog

# tar -czvf graylog.tar.gz /etc/graylog/server/server.conf
tar: Suppression de « / » au début des noms des membres
/etc/graylog/server/server.conf

Pour la restauration :
tar -xzvf graylog.tar.gz -C /

 

MongoDB

# mkdir mongobkp/
# mongodump --host localhost --port 27017 --db graylog --out mongobkp/
connected to: localhost:27017
Sun Nov 13 19:13:47.583 DATABASE: graylog	 to 	mongobkp/graylog
Sun Nov 13 19:13:47.583 	graylog.system.indexes to mongobkp/graylog/system.indexes.bson
Sun Nov 13 19:13:47.584 		 29 objects
[...]

Pour la restauration :
mongorestore --host localhost --port 27017 mongobkp/

 

Elasticsearch

Pour sauvegarder une base de données Elasticsearch, nous utiliserons le module Node.js elasticdump.
Avant de pouvoir l’installer, il faut installer le gestionnaire de modules pour Node.js appelé npm :

# apt install npm
# npm install -g elasticdump
npm WARN engine elasticdump@2.4.2: wanted: {"node":">=4.0.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine request@2.78.0: wanted: {"node":">= 4"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine form-data@2.1.2: wanted: {"node":">= 0.12"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine hawk@3.1.3: wanted: {"node":">=0.10.32"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine cryptiles@2.0.5: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine boom@2.10.1: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine hoek@2.16.3: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.29","npm":"1.4.21"})

Des warnings nous alertent sur le fait que la version de nodejs (0.10.29) est trop ancienne et que elasticdump requiert une version supérieure à la 4.0.0.
Vérification de la version de nodejs et installation de la dernière version stable de node :

# nodejs -v
v0.10.29
# npm install -g n
# n stable

     install : node-v7.0.0
       mkdir : /usr/local/n/versions/node/7.0.0
       fetch : https://nodejs.org/dist/v7.0.0/node-v7.0.0-linux-x86.tar.gz
######################################################################## 100,0%
   installed : v7.0.0
# node -v
v7.0.0

Le module n permet de gérer les versions de Node.js. Ici il nous permet d’installer la dernière version stable.
Maintenant que elasticdump est bien installé, avec la dernière version de node, lançons une sauvegarde de l’index graylog_0 :

# elasticdump --input=http://localhost:9200/graylog_0 --output=backup.json

Pour la restauration :
elasticdump --input=backup.json --output=http://localhost:9200/graylog_0/

 

Annexes

PAPLxx : fait référence à un sujet développé dans la section Pour aller plus loin

 

Références

Fermer le menu
%d blogueurs aiment cette page :