Tutoriel: Mise en place d’un serveur de monitoring avec The Elastic Stack (ELK)
Nous allons voir comment procéder à l’installation d’ Elastic Stack (anciennement ELK). Le tutoriel progressera au fur et à mesure de mes avancées….wait & see ^^
Qu’est ce que The Elastic Stack?
The Elastic Stack est en fait une évolution d’ELK (ElasticSearch, Logstash, Kibana), qui permet de faire de l’analyse de log. Le but à mon niveau est de faire un serveur de monitoring des données remontées par notre firewall PfSense.
Logstash: permet d’analyser les logs, les filtrer, les découper, pour les transformer en documents « compréhensibles » pour ElasticSearch.
ElasticSearch: utilise les documents formatés par Logstash, il les stocke et les indexe , il permet aussi d’analyser ces documents.
Kibana: c’est un tableau de bord paramétrable sous forme d’interface web qui permet de visualiser les données d’ElasticSearch.
Le but de The Elastic Stack est permettre une meilleur compatibilité entre ces différents outils et de permettre l’ajout de nouveau produits sans pour autant devoir renommer la suite à chaque fois….
L’exemple concret est celui de l’ajout de l’outil Beats à cette suite.
Beats: regroupe différents outils, notamment pour le monitoring des processus, du réseau, etc…
Un serveur de test!
Le tutoriel suivant ne prétend pas être complet du tout, mais vous permettra (je l’espère) de déployer au plus vite un petit serveur de test de cette solution de monitoring et de vous faire un avis dessus.
Let’s Go!
Après avoir déployé votre serveur Debian avec une remontée des logs de pfSense (tuto dispo ici), nous allons passer à la mise en place de The Elastic Stack.
Installation de Java 8 (version recommandée! logstash n’est pas compatible java 11):
Tout d’abord pour pouvoir fonctionner, Elastic Stack a besoin de JAVA (version de 8 de préférence).
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
sudo mkdir /usr/local/oracle-java-8
sudo tar -zxf jdk-8u191-linux-x64.tar.gz -C /usr/local/oracle-java-8
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/oracle-java-8/jdk1.8.0_191/bin/java" 1500
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/oracle-java-8/jdk1.8.0_191/bin/javac" 1500
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/oracle-java-8/jdk1.8.0_191/bin/javaws" 1500
Ajout des sources The Elastic Stack:
Pour installer rapidement tous ces modules nous allons commencer par ajouter la clé publique de chiffrement.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Puis on met à jour ses sources.
apt-get install apt-transport-httpsecho "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Vous voilà prêt pour installer les modules! (enfin ^^ )
Installation de ElasticSearch:
On va procéder à l’installation des différents module à la méthode « Bourrin »
sudo apt-get update && sudo apt-get install elasticsearch
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service
Et voilà pour Elastic Search, alors c’était compliqué? on dit merci qui?
Installation de Kibana:
Comme on a bien fait le travail juste avant il suffit juste de faire:
sudo apt-get update && sudo apt-get install kibana
On le déclare comme service:
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable kibana.service
Et voilà! (encore)
Installation de Logstach:
Et on continue….
sudo apt-get update && sudo apt-get install logstash
Hop un service:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable logstash.service
Si vous avez ce problème avec logstach: Unrecognized VM option ‘UseParNewGC’, faites:
apt-get install default-jdk
Puis éditez le fichier de config de logstach: nano /etc/logstach/jvm.options , commentez les lignes -XX:+UseParNewGC et -XX:+UseConcMarkSweepGC , et ajoutez la ligne suivante à la suite: -XX: +UseG1GC
Installation de X-pack:
Pour faire simple, ce sont des composants qui se greffent à Elastic Search et Kibana, installons les!
Je me suis placé dans /usr/share/elasticsearch
bin/elasticsearch-plugin install x-pack
Je me suis placé dans /usr/share/kibana
bin/kibana-plugin install x-pack
Et le tour est ENCORE joué!
Installation de FileBeat:
Filebeat permet entre autre de surveiller un répertoire de log, de lire les logs et de les envoyer à LogStash
sudo apt-get update && sudo apt-get install filebeat
Et hop un service de plus:
sudo systemctl start filebeat.service
Configuration de Kibana
Je voulais accéder à l’interface web de Kibana depuis l’url d’un poste quelconque de mon réseau. Impossible!
En fait il y a une toute petite modification dans la configuration de Kibana à faire, éditez le fichier /etc/kibana/kibana.yml
Modifier la ligne: server.host: « localhost » par server.host: « ip.de.votre.serveur »
service kibana restart
Besoin d’aide?
Vous pouvez lancer logstash en mode test/debug via cette instruction: ./logstash -f /etc/logstash/conf.d/logstash.conf –config.test_and_exit
Si ce tuto vous a semblé incomplet quand à l’installation de la solution, je ne vous laisse pas tomber, voici un superbe lien vers l’aide (bien fourni d’ailleurs) de l’installation de The Elastic Stack.
Il est temps pour moi de retourner faire mumuse avec tout ça.
Prochaine étape la récupération des logs de pfSense pour les triturer avec Logstash