Installer Elasticsearch et Kibana ✔️
Cela fait maintenant quelques mois que j'avais envie d'essayer d'installer un petit Elastic sur mon serveur, pour jouer avec sans me soucier de casser des données.
Fin 2018 je m'étais pris au jeu de faire une installation "classique" sur mon VPS, et s'il n'a pas pris feu, c'est parce que ce n'est techniquement pas possible. Cette année, avec un modèle un peu mieux dimensionné, je me suis lancé, et au lieu de plomber ce nouveau venu à grand coup d'apt-get, j'ai choisi de passer par Docker.
docker-compose
Pour débuter, j'ai choisi d'utiliser docker-compose, plus pratique que la cli pour des lignes de 14km de long.
version: '2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: elasticsearch
environment:
- xpack.security.enabled=true
- discovery.type=single-node
volumes:
- ./elasticsearch/data:/usr/share/elasticsearch/data
networks:
- elk-net
ports:
- "9200:9200"
- "9300:9300"
kibana:
image: docker.elastic.co/kibana/kibana:7.8.1
container_name: kibana
environment:
- xpack.security.enabled=true
- ELASTICSEARCH_USERNAME=kibana
- ELASTICSEARCH_PASSWORD=ahah
networks:
- elk-net
ports:
- "5601:5601"
depends_on:
- elasticsearch
networks:
elk-net:
driver: bridge
Service elasticsearch
Les données d'Elastic sont partagées les data avec mon répertoire ./elasticsearch/data (relatif au chemin depuis lequel je lance ma commande).
L'authentification est activée (il faudra donc configurer Kibana en conséquence).
Le porte 9200 est ouvert, ce qui me permettra d'accéder à mon instance (via le port 9200 également).
Le service utilise le network elk-net, ce qui lui permettra d'être appelé par Kibana.
Service kibana
Le service est configuré de manière à attendre que Elastic soit lancé (propriété depends_on) et partage le même réseau, elk-net, qui est défini plus bas.
Vous l'aurez deviné, le présent mot de passe ne fonctionnera pas, et vous ne pouvez pas le définir par vous-même automagiquement. Pour ce faire, une fois le fichier ci-dessus complété (vous pouvez laisser le mauvais mot de passe, ou retirer la ligne), lancez la commande suivantes :
mkdir -p $PWD/elasticsearch/data
chmod 777 -R $PWD/elasticsearch/data
docker-compose up --detach elasticsearch
docker logs -t -f elasticsearch
Assurez-vous de voir apparaître dans la console la ligne "Active license is now [BASIC]; Security is enabled", puis quittez le log (CTRL+C).
docker exec elasticsearch bin/elasticsearch-setup-passwords auto -b
Notez précieusement les mots de passe affichés à l'écran. Le premier qui va nous être utile sera PASSWORD kibana. Mettez de côté le PASSWORD elastic pour la suite. Il vous servira à vous connecter à l'interface web Kibana.
Modifiez votre docker-compose comme suit :
kibana:
...
environment:
...
- ELASTICSEARCH_PASSWORD=VOTRE_PASSWORD_KIBANA
Vous pouvez désormais lancer le service Kibana :
docker-compose up --detach kibana
Au bout de quelques minutes, vous aurez accès à votre interface Kibana (si vous avez configuré correctement votre reverse proxy (sinon c'est par là [TODO]).
Pour vous connecter, utilisez le username elastic et le mot de passe PASSWORD elastic.
Et voila !
Sources


