Screen Shot 2557-10-14 at 5.24.33 PM
Kibana เป็นเครื่องมือที่ถูกใช้มากๆ สำหรับการแสดงผลข้อมูลจาก Elasticsearch
ให้อยู่ในรูปแบบต่างๆ ตามที่ต้องการ
ดังนั้น มาดูกันว่าเราจะทำการสร้าง dashboard ของ kibana ใช้เองอย่างไร
ไม่แน่ว่า คุณอาจจะเลิกพัฒนาระบบแบบนี้เองก็เป็นได้

ความเป็นมาของ Kibana

Kibana นั้นเป็นเครื่องมือพัฒนามาเพื่อแสดงผลข้อมูลในรูปแบบกราฟ
เป็นข้อมูล log ที่ส่งมาจาก Logstash และทำการจัดเก็บไว้ใน Elasticsearch
ปัจจุบันเรียกโครงสร้างนี้ว่า ELK (Elasticsearch Logstash Kibana)
มีโครงสร้างดังรูป

Screen Shot 2557-10-14 at 11.50.16 PM

ถ้ามาดูเฉพาะ Kibana นั้นทำการแสดงผลข้อมูลในรูปแบบต่างๆ เช่น

  • ตาราง
  • กราฟต่างๆ เช่น กราฟเส้น กราฟแท่ง กราฟวงกลม เป็นต้น
  • Histogram
  • แสดงแผนที่

Kibana พัฒนาด้วย JavaScript โดยเรียกข้อมูลจาก Elasticsearch ผ่าน REST APIs
และอนุญาติให้ผู้ใช้งานสามารถสร้างส่วนการแสดงผลข้อมูล หรือ  Dashboard ได้ตามความต้องการ
ซึ่งจะมาดูกันว่ามันสร้างอย่างไร ?

ก่อนอื่นทำการติดตั้ง Kibana กัน

การติดตั้งนั้นง่ายมาก เพียงทำการ Download Kibana
แล้วทำการ extract มันออกมา

สำหรับ Kibana 3.11 นั้นนำไปไว้ใน Webserver ใดๆ ก็ได้
ตัวอย่างผมจะใช้ PHP Build-in server เลย ดังนี้

$php -S localhost:1000

เพียงเท่านี้ก็สามารถ start Kibana ได้แล้ว
สามารถเข้าไปใช้งานผ่าน browser ด้วย URL = http://localhost:1000/  แสดงผลดังรูป

Screen Shot 2557-10-15 at 12.02.24 AM

จากรูปนั่นคือ default dashboard ของ Kibana ซึ่งเราสามารถแก้ไขได้
หรือเปลี่ยนมาเป็น dashboard ของเราได้นะเออ

โดยที่รูปแบบ url ที่เข้าถึง dashboard ก็คือ  /dashboard/file/<my dashboard>.json
เราสามารถเพิ่ม dashboard ได้ด้วยการสร้างไฟล์ json
แล้วนำไปวางไว้ที่  /app/dashboard เท่านั้นเอง

แต่ว่าเรายังไม่มี dashboard นะ ดังนั้นมาสร้าง dashboard ของเราดีกว่า !!

ก่อนจะสร้าง Dashboard ต้องมีข้อมูลจัดเก็บใน Elasticsearch

โดยข้อมูลที่จะนำเข้า Elasticsearch นั้นใช้ข้อมูลเกี่ยวกับเพลง
ประกอบไปด้วยข้อมูลดังนี้

  • id คือ รหัสของเพลง
  • name คือ ชื่อของเพลง
  • genre คือ ชนิดของเพลง ประกอบไปด้วย rock, pop, acoustic, jazz และ punk
  • artist คือ ชื่อนักร้อง

ต่อมาทำการสร้าง Dashboard ของเราดีกว่า

เริ่มด้วยการสร้าง dashboard ว่างๆ ให้ชื่อว่า My Music
สร้างไฟล์ mymusic.json ดังนี้

แสดงผล dashboard ดังรูป

Screen Shot 2557-10-15 at 12.51.59 AM

ต่อจากนั้นมานั่งคิดกันก่อนว่า ต้องการแสดงผลในรูปแบบใดบ้าง ?

ตัวอย่างเช่น

  • แสดงข้อมูลจำนวนเพลงตามชนิดของเพลง โดยแสดงเป็นกราฟแท่ง หรือ กราฟวงกลม
  • แสดงข้อมูลในรูปแบบของตาราง และสามารถแก้ไขข้อมูลที่นำมาแสดงผลได้

แต่ก่อนที่จะลงมือสร้างส่วนเพิ่มเติมใน dashboard ของ Kibana

มาทำความเข้าใจกับส่วนต่างๆ ใน dashboard กันก่อน ซึ่งประกอบไปด้วย

  • Service กำหนดข้อมูล และ configuration ที่สามารถใช้งานร่วมกันในทุกๆ panel เช่น การกำหนด filter หรือ ตัวกรองข้อมูล
  • Row  คือแถวของการแสดงผล Panel ต่างๆ
  • Panel คือ ส่วนการแสดงผลต่างๆ ใน dashboard โดยในแต่ละ panel สามารถแสดงข้อมูลในรูปแบบต่างๆ เช่น กราฟแท่ง กราฟเส้น histogram และ แผนที่ เป็นต้น
  • Index คือ ส่วนการกำหนดคุรสมบัติของ index ที่จะใช้งาน เช่น default index และ การกำหนดรูปแบบของ index
  • ยังมีส่วนอื่นๆ อีก เช่น Pulldowns, nav, loader

สิ่งแรกที่ต้องการสร้าง คือ แสดงข้อมูลจำนวนเพลงตามชนิดของเพลง โดยแสดงเป็นกราฟวงกลม

สามารถทำได้ดังนี้

1. ทำการสร้าง Row ขึ้นมาก่อน ชื่อว่า ข้อมูลเพลง ดังรูป

Screen Shot 2557-10-15 at 9.35.50 AM

เมื่อทำการสร้างเสร็จแล้ว มันจะได้ Row ว่างๆ ขึ้นมา ได้ผลการทำงานดังรูป

Screen Shot 2557-10-15 at 9.37.55 AM

2. ทำการสร้าง Panel แรก สำหรับแสดงกราฟวงกลม สำหรับแสดงจำนวนเพลงในแต่ละชนิด
โดยเลือกข้อมูลสำหรับสร้าง Panel ดังนี้

  • Panel type = term
  • Title = ประเภทของเพลง
  • Field = genre
  • Style = pie

Screen Shot 2557-10-15 at 9.43.56 AM

จากนั้นทำการบันทึก จะได้ Panel เพื่อแสดงข้อมูลจำนวนเพลงในแต่ละประเภท ดังรูป

Screen Shot 2557-10-15 at 9.45.42 AM

ต่อไปทำการสร้าง Panel เพื่อแสดงรายชื่อนักร้องแต่ละคน

และสรุปว่าแต่ละคนมีกี่เพลง แสดงในรูปแบบข้อตาราง
ซึ่งสามารถทำได้ด้วยการสร้าง Panel ขึ้นมาใน Row เดิม ดังนี้

  • Panel type = term
  • Title = รายชื่อนักร้อง
  • Span = 8
  • Field = artist
  • Style = table

Screen Shot 2557-10-15 at 10.08.48 AM

ทำการบันทึกแล้วจะได้ผลการทำงานดังรูป

Screen Shot 2557-10-15 at 12.48.57 PM

มาถึงตรงสามารถกำหนดให้  My Music เป็น Default dashboard

โดยการกด Save และเลือก Advance -> Save as Home ดังรูป

Screen Shot 2557-10-15 at 12.49.34 AM

เพียงเท่านี้ My Music ก็จะเป็นหน้าหลักใน Kibana แล้วครับ

มาถึงตรงนี้

น่าจะพอทำให้เข้าใจว่า จะเริ่มต้นสร้าง Dashboard ใน Kibana แบบง่ายๆ ได้อย่างไร
และยังสามารถทำได้มากกว่านี้อีกนะครับ
ลองนำไปใช้งานกันดูได้

ส่วนใน Kibana 4.x ขึ้นไปนั้น สามารถทำอะไรๆ ได้เยอะกว่าเดิมอีกครับ
แต่ยังเป็น beta version อยู่เท่านั้นเอง จึงยังไม่ได้นำมาใช้งาน