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

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 :
On nous demande alors les identifiants déclarés : admin et password
L’identification aboutit :
Mais on remarque une notification :
Qui nous informe qu’aucun format de message (input) n’a été défini pour la réception des messages :
C’est en effet le cas :
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 :
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 :
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 :
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.
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 :
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 :
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 :
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 :
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
- Site officiel Graylog
- Graylog – Documentation officielle
- GitHub – Dépôt de la dernière version de Graylog (branche master)
- Le Blog du Hacker – Centralisateur de logs: Quartet Gagnant « Graylog – Nxlog – Elasticsearch – MongoDB »
- Site officiel Elasticsearch – Versions disponibles de Elasticsearch
- Open Knowledge Labs – Querying ElasticSearch – A Tutorial and Guide
- Site officiel Graylog – Les inputs de Graylog
- Site officiel Graylog – Installation de Graylog sur Debian
- Site officiel Graylog – Fichiers générés lors de l’installation
- Tutorialspoint – MongoDB – Quick Guide
- Site officiel MongoDB – mongo Shell Quick Reference
- NPM – Elasticdump – import and export tools for elasticsearch
- GitHub – elasticsearch-tools
- Site officiel Elasticsearch – Snapshot And Restore
- Site officiel MongoDB – Back Up and Restore with MongoDB Tools
- Paquets Debian des dépôts Graylog
Vous devez vous connecter pour laisser un commentaire.