Kibana เป็นเครื่องมือที่ถูกใช้มากๆ สำหรับการแสดงผลข้อมูลจาก Elasticsearch
ให้อยู่ในรูปแบบต่างๆ ตามที่ต้องการ
ดังนั้น มาดูกันว่าเราจะทำการสร้าง dashboard ของ kibana ใช้เองอย่างไร
ไม่แน่ว่า คุณอาจจะเลิกพัฒนาระบบแบบนี้เองก็เป็นได้
ความเป็นมาของ Kibana
Kibana นั้นเป็นเครื่องมือพัฒนามาเพื่อแสดงผลข้อมูลในรูปแบบกราฟ
เป็นข้อมูล log ที่ส่งมาจาก Logstash และทำการจัดเก็บไว้ใน Elasticsearch
ปัจจุบันเรียกโครงสร้างนี้ว่า ELK (Elasticsearch Logstash Kibana)
มีโครงสร้างดังรูป
ถ้ามาดูเฉพาะ 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/ แสดงผลดังรูป
จากรูปนั่นคือ 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 ดังรูป
ต่อจากนั้นมานั่งคิดกันก่อนว่า ต้องการแสดงผลในรูปแบบใดบ้าง ?
ตัวอย่างเช่น
- แสดงข้อมูลจำนวนเพลงตามชนิดของเพลง โดยแสดงเป็นกราฟแท่ง หรือ กราฟวงกลม
- แสดงข้อมูลในรูปแบบของตาราง และสามารถแก้ไขข้อมูลที่นำมาแสดงผลได้
แต่ก่อนที่จะลงมือสร้างส่วนเพิ่มเติมใน dashboard ของ Kibana
มาทำความเข้าใจกับส่วนต่างๆ ใน dashboard กันก่อน ซึ่งประกอบไปด้วย
- Service กำหนดข้อมูล และ configuration ที่สามารถใช้งานร่วมกันในทุกๆ panel เช่น การกำหนด filter หรือ ตัวกรองข้อมูล
- Row คือแถวของการแสดงผล Panel ต่างๆ
- Panel คือ ส่วนการแสดงผลต่างๆ ใน dashboard โดยในแต่ละ panel สามารถแสดงข้อมูลในรูปแบบต่างๆ เช่น กราฟแท่ง กราฟเส้น histogram และ แผนที่ เป็นต้น
- Index คือ ส่วนการกำหนดคุรสมบัติของ index ที่จะใช้งาน เช่น default index และ การกำหนดรูปแบบของ index
- ยังมีส่วนอื่นๆ อีก เช่น Pulldowns, nav, loader
สิ่งแรกที่ต้องการสร้าง คือ แสดงข้อมูลจำนวนเพลงตามชนิดของเพลง โดยแสดงเป็นกราฟวงกลม
สามารถทำได้ดังนี้
1. ทำการสร้าง Row ขึ้นมาก่อน ชื่อว่า ข้อมูลเพลง ดังรูป
เมื่อทำการสร้างเสร็จแล้ว มันจะได้ Row ว่างๆ ขึ้นมา ได้ผลการทำงานดังรูป
2. ทำการสร้าง Panel แรก สำหรับแสดงกราฟวงกลม สำหรับแสดงจำนวนเพลงในแต่ละชนิด
โดยเลือกข้อมูลสำหรับสร้าง Panel ดังนี้
- Panel type = term
- Title = ประเภทของเพลง
- Field = genre
- Style = pie
จากนั้นทำการบันทึก จะได้ Panel เพื่อแสดงข้อมูลจำนวนเพลงในแต่ละประเภท ดังรูป
ต่อไปทำการสร้าง Panel เพื่อแสดงรายชื่อนักร้องแต่ละคน
และสรุปว่าแต่ละคนมีกี่เพลง แสดงในรูปแบบข้อตาราง
ซึ่งสามารถทำได้ด้วยการสร้าง Panel ขึ้นมาใน Row เดิม ดังนี้
- Panel type = term
- Title = รายชื่อนักร้อง
- Span = 8
- Field = artist
- Style = table
ทำการบันทึกแล้วจะได้ผลการทำงานดังรูป
มาถึงตรงสามารถกำหนดให้ My Music เป็น Default dashboard
โดยการกด Save และเลือก Advance -> Save as Home ดังรูป
เพียงเท่านี้ My Music ก็จะเป็นหน้าหลักใน Kibana แล้วครับ
มาถึงตรงนี้
น่าจะพอทำให้เข้าใจว่า จะเริ่มต้นสร้าง Dashboard ใน Kibana แบบง่ายๆ ได้อย่างไร
และยังสามารถทำได้มากกว่านี้อีกนะครับ
ลองนำไปใช้งานกันดูได้
ส่วนใน Kibana 4.x ขึ้นไปนั้น สามารถทำอะไรๆ ได้เยอะกว่าเดิมอีกครับ
แต่ยังเป็น beta version อยู่เท่านั้นเอง จึงยังไม่ได้นำมาใช้งาน