linux_elastic_kibana

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
linux_elastic_kibana [2020/02/14 10:17] – créée nekanlinux_elastic_kibana [2021/03/05 15:07] (Version actuelle) nekan
Ligne 1: Ligne 1:
-~~CLOSETOC~~ 
 ====== ElasticSearch & Kibana - Installation d'un outil de gestion des log (et autres) ====== ====== ElasticSearch & Kibana - Installation d'un outil de gestion des log (et autres) ======
 +<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/02/14 10:39//
  
 ElasticSearch est un logiciel d'indexation et de recherche. Il traite toutes les données dans son champ d'action et les organise afin de pouvoir les restituer de manière compréhensible pour un être humain. Kibana est l'interface graphique permettant de d'interroger ElasticSearch et de lire les résultats renvoyés. ElasticSearch est un logiciel d'indexation et de recherche. Il traite toutes les données dans son champ d'action et les organise afin de pouvoir les restituer de manière compréhensible pour un être humain. Kibana est l'interface graphique permettant de d'interroger ElasticSearch et de lire les résultats renvoyés.
Ligne 8: Ligne 8:
 Via un système de plugin, ElasticSearch & Kibana peuvent traiter un grand panel de données (log, audit, données de performances, ...). Nous verrons ici l'installation du serveur ElasticSearch & Kibana, les plugins seront eux traités dans les bulletins concernant les données qu'ils traitent. Via un système de plugin, ElasticSearch & Kibana peuvent traiter un grand panel de données (log, audit, données de performances, ...). Nous verrons ici l'installation du serveur ElasticSearch & Kibana, les plugins seront eux traités dans les bulletins concernant les données qu'ils traitent.
  
-<note>Cette procédure a été réalisé sur une VM Debian 9.</note>+<callout type="primary" icon="true" title="Environnement">Cette procédure a été réalisé sur une VM Debian 9.</callout>
  
-<note warning>Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</note>+<callout type="danger" icon="true" title="Droits">Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</callout>
  
 ===== Prérequis ===== ===== Prérequis =====
Ligne 18: Ligne 18:
 Concernant les paquets prérequis, on reste dans les classiques : Concernant les paquets prérequis, on reste dans les classiques :
 <sxh bash>apt-get update <sxh bash>apt-get update
-apt-get install -y apt-transport-https curl wget</sxh>+apt-get install -y apt-transport-https curl wget gnupg</sxh>
  
-===== Installation =====+===== Installation de ElasticSearch =====
  
 On commence par installer le service de recherche et indexation : On commence par installer le service de recherche et indexation :
  
   * On commence par ajouter la clé des dépôts Elastic à la base de données APT :   * On commence par ajouter la clé des dépôts Elastic à la base de données APT :
-<sxh bash>wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -</sxh>+<sxh bash>wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -</sxh>
   * On rajoute le chemin des sources aux dépôts APT :   * On rajoute le chemin des sources aux dépôts APT :
 <sxh bash>echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list</sxh> <sxh bash>echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list</sxh>
Ligne 33: Ligne 33:
 <sxh bash>apt-get install -y elasticsearch</sxh> <sxh bash>apt-get install -y elasticsearch</sxh>
  
 +==== Démarrage automatique du service ====
  
 +<sxh bash>/bin/systemctl daemon-reload
 +/bin/systemctl enable elasticsearch.service</sxh>
 +
 +==== Gestion du service ====
 +
 +  * Status :
 +<sxh bash>systemctl status elasticsearch.service</sxh>
 +  * Démarrage
 +<sxh bash>systemctl start elasticsearch.service</sxh>
 +  * Arrêt :
 +<sxh bash>systemctl stop elasticsearch.service</sxh>
 +
 +==== Test local ====
 +
 +  * Après avoir démarré le service, on peut le tester en local :
 +<sxh bash>curl -X GET "localhost:9200/?pretty"</sxh>
 +  * On reçoit alors une réponse de ce genre :
 +<sxh bash>{
 +  "name" : "Test",
 +  "cluster_name" : "elasticsearch",
 +  "cluster_uuid" : "lLdLEfGPSzavmWxL7nBMRw",
 +  "version" : {
 +    "number" : "7.6.0",
 +    "build_flavor" : "default",
 +    "build_type" : "deb",
 +    "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
 +    "build_date" : "2020-02-06T00:09:00.449973Z",
 +    "build_snapshot" : false,
 +    "lucene_version" : "8.4.0",
 +    "minimum_wire_compatibility_version" : "6.8.0",
 +    "minimum_index_compatibility_version" : "6.0.0-beta1"
 +  },
 +  "tagline" : "You Know, for Search"
 +}</sxh>
 +
 +==== Configuration de l'accès depuis l'extérieur ====
 +
 +  * On commence par arrêter le service :
 +<sxh bash>systemctl stop elasticsearch.service</sxh>
 +  * On édite le fichier de configuration de ElasticSearch :
 +<sxh bash>nano /etc/elasticsearch/elasticsearch.yml</sxh>
 +  * On décommente le champ ''network.host'' et on modifie sa valeur par ''0.0.0.0''.
 +  * On décommente le champ ''discovery.seed_hosts'' et on modifie sa valeur par ''0.0.0.0''.
 +  * On enregistre ''CTRL+O'' et on quitte ''CTRL+X''.
 +  * On redémarre le service :
 +<sxh bash>systemctl start elasticsearch.service</sxh>
 +
 +<callout type="danger" icon="true" title="Sécurité">Penser à paramétrer votre pare-feu (selon votre solution de sécurité) afin de n'accepter les flux qu'en provenance de votre réseau local (le port d'écoute est le ''9200''). Les données traitées par ElasticSearch et affichées dans Kibana sont généralement sensibles.</callout>
 +
 +==== Test externe ====
 +
 +  * Après avoir paramétré le pare-feu, on peut tester la réponse de ElasticSearch :
 +<sxh bash>curl -X GET "10.30.1.79:9200/?pretty"</sxh>
 +
 +<callout type="info" icon="true" title="Paramétrage">Remplacer ''10.30.1.79'' par l'adresse IP de votre serveur.</callout>
 +
 +  * La réponse doit alors ressembler à ça :
 +<sxh bash>{
 +  "name" : "Test",
 +  "cluster_name" : "elasticsearch",
 +  "cluster_uuid" : "lLdLEfGPSzavmWxL7nBMRw",
 +  "version" : {
 +    "number" : "7.6.0",
 +    "build_flavor" : "default",
 +    "build_type" : "deb",
 +    "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
 +    "build_date" : "2020-02-06T00:09:00.449973Z",
 +    "build_snapshot" : false,
 +    "lucene_version" : "8.4.0",
 +    "minimum_wire_compatibility_version" : "6.8.0",
 +    "minimum_index_compatibility_version" : "6.0.0-beta1"
 +  },
 +  "tagline" : "You Know, for Search"
 +}</sxh>
 +
 +A partir de là ElasticSearch est installé et opérationnel.
 +
 +===== Installation de Kibana =====
 +
 +On peut désormais installé l'interface de gestion :
 +
 +  * On installe les paquets à partir des sources précédemment ajouté avec ElasticSearch :
 +<sxh bash>apt-get install -y kibana</sxh>
 +
 +==== Démarrage automatique ====
 +
 +<sxh bash>/bin/systemctl daemon-reload
 +/bin/systemctl enable kibana.service</sxh>
 +
 +==== Gestion du service ====
 +
 +  * Status :
 +<sxh bash>systemctl status kibana.service</sxh>
 +  * Démarrage
 +<sxh bash>systemctl start kibana.service</sxh>
 +  * Arrêt :
 +<sxh bash>systemctl stop kibana.service</sxh>
 +
 +==== Configuration de l'accès extérieur ====
 +
 +  * On commence par arrêter le service :
 +<sxh bash>systemctl stop kibana.service</sxh>
 +  * On édite le fichier de configuration :
 +<sxh bash>nano /etc/kibana/kibana.yml</sxh>
 +  * On décommente le champ ''server.host'' et on modifie sa valeur par ''0.0.0.0''.
 +  * On décommente le champ ''elasticsearch.hosts'' et on modifie sa valeur par ''["http://0.0.0.0:9200"]''.
 +  * On redémare le service :
 +<sxh bash>systemctl start kibana.service</sxh>
 +
 +<callout type="danger" icon="true" title="Sécurité">Comme pour ElasticSearch, on n'oublie pas de configurer le pare-feu selon la solution de sécurité adoptée sachant que les données sont sensibles et que le port d'écoute de Kibana est le ''5601''</callout>
 +
 +==== Test de connexion ====
 +
 +Il nous reste plus qu'à tester la connexion à Kibana via l'adresse http://10.30.1.79:5601.
 +
 +<callout type="info" icon="true" title="Paramétrage">Remplacer ''10.30.1.79'' par l'adresse IP de votre serveur.</callout>
 +
 +Vous êtes désormais sur l'interface de Kibana :
 +<image shape="thumbnail">{{ :linux:kibana:kibana_001.png |}}</image>
 +
 +<callout type="success" icon="true" title="Installation">Félicitaions, ElasticSearch et Kibana sont fonctionnels. Je vous laisse découvrir leurs fonctionnalités et je ferais d'autres tickets sur certains points précis.</callout>
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  • linux_elastic_kibana.1581671836.txt.gz
  • Dernière modification : 2020/02/14 08:17
  • (modification externe)