อยาก Transform Millions/Billions Elasticsearch Documents -> Eye-catching Charts, Graphs, Tables? Kibana = คำตอบ Elastic Product Integrates Closely Elasticsearch Easy-to-use Interface Make Sense Of Mounds Of Data
Currently ObjectRocket Elasticsearch Instances Pre-loaded Kibana 3 Access /_plugin/kibana บน Elasticsearch HTTP Endpoints ใดๆ แต่ Kibana 4 Introduces Improvements/New Features เรา Working Hard Provide It Alongside Every Elasticsearch Instance ใน Meantime Tutorial นี้ Walkthrough Connect Elasticsearch Instance Using Kibana 4 Running In Docker Container
Prerequisites
Docker Installed + Elasticsearch Instance With Us -> Good To Go Ensure Docker Host IP Whitelisted On Elasticsearch Instance Take Connection Info -> "Running Kibana 4 in Docker" Section
Elasticsearch
Need Elasticsearch Instance ObjectRocket ไม่มี? Docs Getting Started Excellent Whitelist Current IP (จาก icanhazip.com) ใน ACLs Instance Up -> Need Info Connect From Kibana 4:
- HTTPS Connection String เช่น https://iad1-19999-0.es.objectrocket.com:29999 HA: 4 Client Nodes Connect ได้ แต่ต้องการแค่ 1
- Username/Password Admin User บน Instance
Docker
Easiest Way Docker These Days = Docker Machine Install/Config Out of Scope Getting Started Guide Good Place Start
Running Kibana 4 in Docker
ES Instance Online + Docker Installed -> Get Kibana 4 Up!
Docker Machine -> Setup Environment Appropriately:
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM dockerbox virtualbox Running tcp://192.168.99.100:2376 $ eval "$(docker-machine env dockerbox)" $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Create Environment File
Kibana 4 Docker Image (objectrocket/kibana) Require ELASTICSEARCH_URL Env Var Connect ES Example: Host iad1-19999-3.es.objectrocket.com Port 29999 (HTTPS) Username alice Password password
$ echo 'ELASTICSEARCH_URL=https://alice:password@iad1-19999-3.es.objectrocket.com:29999' > kibana4.env
Note: Pass Env Vars With -e Flag ได้ แต่ Credentials Sensitive -> Wise Place In Env File
Start Container
Start Kibana 4 Container:
# Use `-p $PORT:5601` If Wish Change Bind Port $ docker run -d --name kibana4 -p 5601:5601 --env-file kibana4.env objectrocket/kibana:4.1.2 Unable to find image 'objectrocket/kibana:4.1.2' locally 4.1.2: Pulling from objectrocket/kibana 8a648f689ddb: Pull complete 6a9f09112d11: Pull complete 98c91eb0b06a: Pull complete f5030fbbffc3: Pull complete 0a7a2d9eb5d6: Pull complete 1f9563800fc7: Pull complete f43ab0bd66e0: Pull complete Digest: sha256:352e95077d0312fa12de6cec3bc66d221391952b8cf98e890cd7324b6b6605ce Status: Downloaded newer image for objectrocket/kibana:4.1.2 cc341ff14d492a30e106007896201639964bdef6a93d03d497957a2738f5ac24
Update: Elasticsearch 2.0+ -> Use objectrocket/kibana:4.2.0 (Or Higher) Image
Container Created -> Visible In docker ps:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc341ff14d49 objectrocket/kibana "/opt/kibana/run.sh" About a minute ago Up About a minute 0.0.0.0:5601->5601/tcp kibana4
Issues Container Running -> Double Check ELASTICSEARCH_URL Variable Each Portion Correct Passwords With Symbols @ : Can Break URL Scheme docker logs kibana4 Show Error Messages Kibana Stdout/stderr
Connect to Kibana 4
Connect Kibana 4 Port 5601 (Or Chosen Port) On Docker Host Local -> https://localhost:5601 Docker Machine -> IP จาก docker-machine ip e.g. https://192.168.99.100:5601
Connected Successfully -> Configure Kibana Use Indices From ES Instance Connect Kibana With Elasticsearch Documentation From Elastic Getting Started With Kibana Guide Learn Key Features Kibana 4
Wrapping Up
Done Crafting Visualizations -> Stop Docker Container:
$ docker stop kibana4 kibana4
Next Time Connect -> docker start kibana4 Ready To Go
Hosted Kibana 4 In Works For Elasticsearch Product แต่ Local Kibana Quick Start Meantime Kibana Stores Config In ES Indices -> Won't Lose Dashboards/Visualizations When Switch!