ELK Stack จากโปรแกรมค้นเอกสารสู่ระบบเก็บ log ศูนย์กลางองค์กร
งานกันเยอะขึ้นมาในช่วงหลังคือ Elasticsearch ที่เดิมเคยเป็นซอฟต์แวร์สำหรับค้นหาเอกสารด้วยความเร็วสูง เวลาที่เราสร้างแอปพลิเคชันเก็บข้อมูล หากเราต้องการฟีเจอร์ค้นหาหากข้อมูลไม่มากนักเราก็มักจะสามารถค้นเอกสารลงไปในฐานข้อมูลของแอปพลิเคชันได้โดยง่าย แต่สำหรับแอปพลิเคชันที่มีข้อมูลปริมาณมาก การค้นเอกสารบนฐานข้อมูล SQL มักมีปัญหาประสิทธิภาพ แถมการค้นหาเอกสารด้วยคำในเอกสารบางครั้งก็มีเอกสารจำนวนมากที่มีคำเหมือนๆ กัน การเรียงลำดับว่าเอกสารไหนควรอยู่บนสุดกลายเป็นเรื่องซับซ้อนและเป็นศาสตร์ในตัวมันเอง จึงมักแยกระบบค้นหา เช่นนี้ออกจากระบบฐานข้อมูลที่เก็บข้อมูลในแอปพลิเคชัน Elasticsearch เป็นเซิร์ฟเวอร์สำหรับค้นเอกสารตัวหนึ่งที่ได้รับความนิยมอย่างสูง โดยเราสามารถใส่ไฟล์ ที่อาจจะแยกฟิลด์ เช่น ชื่อสินค้า, รายละเอียดสินค้า, หรือราคา ลงไปใน Elasticsearch แล้วค้นหาข้อมูลกลับออกมาทั้งแบบการค้นหาคำไม่ว่าจะอยู่ในฟิลด์ใด หรือการค้นที่ซับซ้อนขึ้น เช่น ตั้งเงื่อนไขว่าหาสินค้าเฉพาะบางหมวด หรือบางช่วงราคา หลังจาก Elasticsearch ได้รับความนิยมก็มีอีกสองโครงการเกิดขึ้นมา คือ Logstash ซอฟต์แวร์รับข้อมูลจากแหล่งต่างๆ โดยเฉพาะ log จากแหล่งต่างๆ รวมถึงอุปกรณ์เน็ตเวิร์ค และเซิร์ฟเวอร์ ทำให้ Elasticsearch กลายเป็นถังเก็บ log ที่สามารถค้นกลับมาได้โดยง่าย แก้ปัญหาการเก็บ log ปริมาณมหาศาลแต่ไม่สามารถใช้งานได้จริง อีกโครงการที่เกิดขึ้นไล่เลี่ยกันคือ Kibana ซอฟต์แวร์แปลงข้อมูลใน Elasticsearch ให้กลายเป็นภาพกราฟิกสวยงามเข้าใจง่าย การทำกราฟจากข้อมูลใน Elasticsearch ผ่าน Kibana นั้นทำได้โดยง่าย เราอาจจะทำเว็บแสดงข้อมูล เช่น เว็บของเรามีแสดงความผิดพลาดสูงขึ้นไหมในช่วงที่ผ่านมา หรือมีการโจมตีเว็บจากไอพีใด ทั้ง Elasticsearch Logstash และ Kibana กลายเป็นชุดซอฟต์แวร์ที่เรียกว่า ELK Stack มันทำให้ทั้งองค์กรสามารถรับข้อมูลจากแหล่งต่างๆ ได้อย่างหลากหลาย จัดเก็บข้อมูลและแสดงผลให้เข้าใจได้ง่าย รวมถึงการค้นหาที่รวดเร็ว ทุกวันนี้ ELK Stack ยังเป็นซอฟต์แวร์โอเพนซอร์สทั้งหมด แม้กลุ่มผู้พัฒนาจะเปิดบริษัท Elasic NV เพื่อขายซัพพอร์ตและฟีเจอร์เพิ่มเติมที่ไม่ได้โอเพนซอร์สเป็นทางเลือก แต่ฟีเจอร์ส่วนที่ไม่ได้โอเพนซอร์สก็มีบางส่วนให้ใช้งานได้ฟรี ทำให้องค์กรจำนวนมากยังคงใช้ ELK Stack ทั้งแบบโอเพนซอร์สและแบบมีฟีเจอร์เฉพาะของบริษัท โดยหากดูจากการจัดอันดับจาก db-engines.com ก็จะพบว่า Elasticsearch เป็นฐานข้อมูลแบบ NoSQL อันดับสองรองจาก MongoDB เท่านั้น – – –โดยคุณลิ่ว วสันต์ ลิ่วลมไพศาลChief Technology Officer, MFEC