หากคุณต้องการเปลี่ยนเอกสาร Elasticsearch นับล้าน (หรือพันล้าน!) ให้เป็นแผนภูมิ กราฟ และตารางที่สะดุดตา Kibana คือคำตอบ เนื่องจากเป็นผลิตภัณฑ์ Elastic จึงผสานรวมกับ Elasticsearch อย่างใกล้ชิดและมีอินเทอร์เฟซที่ใช้งานง่ายสำหรับการทำความเข้าใจข้อมูลจำนวนมาก
ในปัจจุบัน อินสแตนซ์ ObjectRocket Elasticsearch ทั้งหมดมาพร้อมกับ Kibana 3 ที่โหลดไว้ล่วงหน้า ซึ่งคุณสามารถเข้าถึงได้ที่ /_plugin/kibana บนปลายทาง Elasticsearch HTTP ใดๆ ของคุณ อย่างไรก็ตาม Kibana 4 ได้นำเสนอการปรับปรุงและคุณสมบัติใหม่จำนวนหนึ่ง ดังนั้นเราจึงทำงานอย่างเต็มที่เพื่อมอบสิ่งนี้ควบคู่ไปกับทุกอินสแตนซ์ของ Elasticsearch ที่คุณสร้างด้วย ObjectRocket ในระหว่างนี้ บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับการเชื่อมต่อกับอินสแตนซ์ Elasticsearch ของคุณโดยใช้ Kibana 4 ที่ทำงานในคอนเทนเนอร์ Docker
ข้อกำหนดเบื้องต้น
หากคุณติดตั้ง Docker แล้วและมีอินสแตนซ์ Elasticsearch อยู่กับเรา คุณก็พร้อมใช้ เพียงตรวจสอบให้แน่ใจว่าที่อยู่ IP ของโฮสต์ Docker ของคุณอยู่ในรายการที่อนุญาตพิเศษบนอินสแตนซ์ Elasticsearch และนำข้อมูลการเชื่อมต่อของคุณไปที่ส่วน "การรัน Kibana 4 ใน Docker" ด้านล่าง
Elasticsearch
ในการเริ่มต้น คุณจะต้องมีอินสแตนซ์ Elasticsearch บน ObjectRocket หากคุณยังไม่มี เรามีเอกสารที่ดีเยี่ยมในการเริ่มต้นใช้งาน Elasticsearch เรากำลังใช้งาน Docker ในเครื่อง ดังนั้นอย่าลืมอนุญาตที่อยู่ IP ปัจจุบันของคุณ (จาก icanhazip.com) ใน ACL เมื่ออินสแตนซ์ของคุณหมด คุณจะต้องใช้ข้อมูลต่อไปนี้เพื่อเชื่อมต่อจาก Kibana 4:
- สตริงการเชื่อมต่อ HTTPS สำหรับอินสแตนซ์ของคุณ เช่น https://iad1-19999-0.es.objectrocket.com:29999. สำหรับวัตถุประสงค์ของ HA แต่ละอินสแตนซ์มีโหนดไคลเอ็นต์สี่โหนดซึ่งคุณสามารถเชื่อมต่อได้ อย่างไรก็ตาม คุณจะต้องใช้เพียงโหนดเดียวในกรณีนี้
- ชื่อผู้ใช้/รหัสผ่านสำหรับผู้ดูแลระบบในอินสแตนซ์
นักเทียบท่า
วิธีที่ง่ายที่สุดในการเริ่มต้นใช้งาน Docker ในปัจจุบันคือ Docker Machine การติดตั้งและกำหนดค่าอยู่นอกขอบเขตของบทความนี้ แต่คู่มือเริ่มต้นใช้งานเป็นจุดเริ่มต้นที่ดี
รัน Kibana 4 ใน Docker
ตอนนี้คุณมีอินสแตนซ์ Elasticsearch ออนไลน์และติดตั้ง Docker แล้ว ถึงเวลาที่ Kibana 4 เริ่มทำงานแล้ว!
หากคุณกำลังใช้ Docker Machine อย่าลืมตั้งค่าสภาพแวดล้อมของคุณอย่างเหมาะสม:
$ 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
สร้างไฟล์สภาพแวดล้อม
อิมเมจ Kibana 4 Docker ที่เราจะใช้ (objectrocket/kibana) กำหนดให้ตั้งค่าตัวแปรสภาพแวดล้อม ELASTICSEARCH_URL เพื่อให้รู้วิธีเชื่อมต่อกับ Elasticsearch ในตัวอย่างนี้ เรากำลังเชื่อมต่อกับโฮสต์ iad1-19999-3.es.objectrocket.com บนพอร์ต 29999 (HTTPS) ด้วยชื่อผู้ใช้ alice และรหัสผ่านรหัสผ่าน
$ echo 'ELASTICSEARCH_URL=https://alice:[email protected]:29999' > kibana4.env
หมายเหตุ :คุณสามารถส่งผ่านตัวแปรสภาพแวดล้อมเหล่านี้ได้อย่างง่ายดายด้วยแฟล็ก -e แต่เนื่องจากมีข้อมูลรับรองที่ละเอียดอ่อน จึงควรใส่ไว้ในไฟล์ env
เริ่มคอนเทนเนอร์
ตอนนี้ เราสามารถเริ่มคอนเทนเนอร์ Kibana 4 ของเราได้:
# Use `-p $PORT:5601` if you wish to change the 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
อัปเดต :หากคุณใช้งาน Elasticsearch 2.0+ คุณจะต้องใช้อิมเมจ objectrocket/kibana:4.2.0 (หรือสูงกว่า)
หลังจากสร้างคอนเทนเนอร์แล้ว ควรมองเห็นได้ในเอาต์พุตของ 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
หากคุณประสบปัญหาในการเรียกใช้คอนเทนเนอร์ ให้ตรวจสอบตัวแปร ELASTICSEARCH_URL ของคุณอีกครั้ง และตรวจสอบให้แน่ใจว่าแต่ละส่วนของ URL นั้นถูกต้อง เป็นที่น่าสังเกตว่ารหัสผ่านที่มีสัญลักษณ์เช่น @ หรือ :สามารถทำลายรูปแบบ URL ได้ คุณยังสามารถเรียกใช้ docker logs kibana4 เพื่อแสดงข้อความแสดงข้อผิดพลาดที่ Kibana ได้ส่งไปยัง stdout หรือ stderr
เชื่อมต่อกับ Kibana 4
ตอนนี้คุณควรจะสามารถเชื่อมต่อกับ Kibana 4 บนพอร์ต 5601 (หรือพอร์ตใดก็ตามที่คุณเลือกในขั้นตอนก่อนหน้า) บนโฮสต์ Docker ของคุณ หากคุณกำลังเรียกใช้ในเครื่อง ให้ใช้ https://localhost:5601 หากคุณกำลังใช้งาน Docker Machine ให้ใช้ที่อยู่ IP ของ Docker Machine VM ของคุณจาก docker-machine ip เช่น https://192.168.99.100:5601.
หลังจากที่คุณเชื่อมต่อสำเร็จแล้ว คุณต้องกำหนดค่า Kibana เพื่อใช้ดัชนีจากอินสแตนซ์ Elasticsearch ของคุณ ดูเอกสาร Connect Kibana กับ Elasticsearch จาก Elastic สำหรับข้อมูลเพิ่มเติม คุณอาจต้องการอ่านคู่มือการเริ่มต้นใช้งาน Kibana เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติหลักบางอย่างใน Kibana 4
บทสรุป
เมื่อคุณสร้างการแสดงภาพใน Kibana เสร็จแล้ว คุณสามารถหยุดคอนเทนเนอร์ Docker ได้ด้วยการเรียกใช้คำสั่งต่อไปนี้:
$ docker stop kibana4
kibana4
จากนั้นในครั้งต่อไปที่คุณต้องการเชื่อมต่ออีกครั้ง เพียงเรียกใช้ docker start kibana4 และคุณพร้อมแล้ว
ดังที่ได้กล่าวไว้ก่อนหน้านี้ว่า Kibana 4 ที่โฮสต์อยู่ในงานสำหรับการนำเสนอผลิตภัณฑ์ Elasticsearch ของเราแล้ว แต่การเรียกใช้ Kibana ในเครื่องจะช่วยให้คุณเริ่มต้นได้อย่างรวดเร็วในระหว่างนี้ และเนื่องจาก Kibana เก็บการกำหนดค่าทั้งหมดไว้ในดัชนี Elasticsearch คุณจะไม่สูญเสียแดชบอร์ดหรือการแสดงภาพอันมีค่าของคุณเมื่อคุณทำการเปลี่ยน!