1. Kibana dans la suite Elastic #
L'interface de la stack.
Rôle #
Kibana est l'interface web de la suite Elastic : exploration des données (Discover), visualisations et dashboards, solutions métier (Observability, Security, Search), alertes et administration de la stack (Fleet, rôles, index).
À savoir : Cette formation complète les formations Elasticsearch, Logstash et Beats : elle se concentre sur l'exploitation des données et sur Elastic Observability.
2. Installer #
Trois options.
start-local pour apprendre #
curl -fsSL https://elastic.co/start-local | sh
# Elasticsearch : http://localhost:9200 Kibana : http://localhost:5601
cat elastic-start-local/.env | grep -E 'ES_LOCAL_PASSWORD|ES_LOCAL_API_KEY'Le script officiel lance Elasticsearch et Kibana avec Docker, la sécurité activée et une licence d'essai : idéal pour les TP. Ne l'utilisez pas en production.
Docker, de façon explicite #
docker network create elastic
docker run -d --name es --net elastic -p 9200:9200 -m 2GB \
-e discovery.type=single-node -e ELASTIC_PASSWORD=changeme \
docker.elastic.co/elasticsearch/elasticsearch:$VERSION
# Jeton d'inscription pour Kibana (valable 30 min)
docker exec es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
docker run -d --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:$VERSION
docker logs kibana | grep "Go to" # lien avec le code de vérificationBonne Pratique : Utilisez la même version pour Elasticsearch et Kibana (par exemple VERSION=9.1.0 ; vérifiez la dernière version sur elastic.co). Kibana refuse de démarrer face à un Elasticsearch plus récent.kibana.yml en production #
server.host: 0.0.0.0
server.publicBaseUrl: https://kibana.example.org
elasticsearch.hosts: [https://es-1:9200, https://es-2:9200]
elasticsearch.serviceAccountToken: ${KIBANA_SA_TOKEN}
elasticsearch.ssl.certificateAuthorities: [/etc/kibana/certs/ca.crt]
xpack.encryptedSavedObjects.encryptionKey: ${ENCRYPTION_KEY} # 32 caractères minimum
xpack.reporting.encryptionKey: ${REPORTING_KEY}
xpack.security.encryptionKey: ${SECURITY_KEY}Erreur Courante : Sans xpack.encryptedSavedObjects.encryptionKey stable, les règles d'alerte et les connecteurs ne peuvent pas stocker leurs secrets et cessent de fonctionner après un redémarrage.3. Les data views #
Dire à Kibana quoi interroger.
Créer une data view #
Une data view (anciennement index pattern) désigne un ou plusieurs index, alias ou data streams (par exemple logs-*) et le champ de temps. Discover, Lens et les dashboards s'appuient dessus.
curl -s -X POST localhost:5601/api/data_views/data_view -u elastic:$PASS \
-H 'kbn-xsrf: true' -H 'Content-Type: application/json' \
-d '{"data_view": {"title": "logs-*", "name": "Tous les logs", "timeFieldName": "@timestamp"}}'À savoir : Les API de Kibana exigent l'en-tête kbn-xsrf pour toute requête qui modifie quelque chose.