บทช่วยสอน ELK Stack: Kibana คืออะไร Logstash และการค้นหาแบบยืดหยุ่น?

ELK Stack คืออะไร?

เทศกาล ELK สแต็ค คือชุดของผลิตภัณฑ์โอเพ่นซอร์สสามรายการ ได้แก่ Elasticsearch Logstashและคิบานะ สแต็ก ELK ให้การบันทึกแบบรวมศูนย์เพื่อระบุปัญหากับเซิร์ฟเวอร์หรือแอปพลิเคชัน ช่วยให้คุณค้นหาบันทึกทั้งหมดได้ในที่เดียว นอกจากนี้ยังช่วยค้นหาปัญหาในเซิร์ฟเวอร์หลายเครื่องโดยการเชื่อมต่อบันทึกในช่วงเวลาที่กำหนด

  • E ย่อมาจาก ElasticSearch: ใช้สำหรับจัดเก็บบันทึก
  • L ย่อมาจาก LogStash : ใช้สำหรับทั้งการขนส่งและการประมวลผลและการจัดเก็บบันทึก
  • K ย่อมาจาก คิบานะ : คือ ก เครื่องมือสร้างภาพ (เว็บอินเตอร์เฟส) ซึ่งโฮสต์ผ่าน Nginx หรือ Apache

ElasticSearch, LogStash และ Kibana ได้รับการพัฒนา จัดการ และบำรุงรักษาโดยบริษัทที่มีชื่อว่า Elastic

ELK Stack ได้รับการออกแบบมาเพื่อให้ผู้ใช้สามารถดึงข้อมูลจากแหล่งใดก็ได้ ในรูปแบบใดก็ได้ และค้นหา วิเคราะห์ และแสดงภาพข้อมูลนั้นแบบเรียลไทม์

ELK สแต็ค Archiเทคเจอร์

ในบทช่วยสอนเกี่ยวกับสแต็ก ELK นี้ เราจะเรียนรู้เกี่ยวกับสถาปัตยกรรม ELK:

นี่คือสถาปัตยกรรมที่เรียบง่ายของสแต็ก ELK

ELK สแต็ค Archiเทคเจอร์
ELK สแต็ค Archiเทคเจอร์
  • บันทึก: บันทึกเซิร์ฟเวอร์ที่ต้องวิเคราะห์จะถูกระบุ
  • Logstash: รวบรวมบันทึกและข้อมูลเหตุการณ์ มันยังแยกวิเคราะห์และแปลงข้อมูลอีกด้วย
  • การค้นหาแบบยืดหยุ่น: ข้อมูลที่ถูกแปลงจาก Logstash is จัดเก็บ ค้นหา และจัดทำดัชนี
  • คิบานะ: Kibana ใช้ Elasticsearch DB เพื่อสำรวจ แสดงภาพ และแบ่งปัน

อย่างไรก็ตาม จำเป็นต้องมีองค์ประกอบเพิ่มอีก 1 รายการหรือการรวบรวมข้อมูลที่เรียกว่า Beats สิ่งนี้ทำให้ Elastic เปลี่ยนชื่อ ELK เป็น Elastic Stack

ELK สแต็ค Archiสอนด้วย Beats

ขณะจัดการกับข้อมูลจำนวนมาก คุณอาจต้องใช้ Kafka, RabbitMQ สำหรับการบัฟเฟอร์และความยืดหยุ่น สำหรับการรักษาความปลอดภัย สามารถใช้ nginx ได้

ELK สแต็ค Archiเทคเจอร์

ตอนนี้อยู่ในบทช่วยสอน Elastic Stack นี้ มาเจาะลึกผลิตภัณฑ์โอเพ่นซอร์สเหล่านี้ทั้งหมด:

Elasticsearch คืออะไร?

Elasticsearch คือ ฐานข้อมูล NoSQL- มันขึ้นอยู่กับเครื่องมือค้นหาของ Lucene และถูกสร้างขึ้นด้วย RESTful APIS นำเสนอการใช้งานที่ง่ายดาย ความน่าเชื่อถือสูงสุด และการจัดการที่ง่ายดาย นอกจากนี้ยังมีการสืบค้นขั้นสูงเพื่อทำการวิเคราะห์รายละเอียดและจัดเก็บข้อมูลทั้งหมดไว้ที่ส่วนกลาง มีประโยชน์สำหรับการดำเนินการค้นหาเอกสารอย่างรวดเร็ว

นอกจากนี้ Elasticsearch ยังช่วยให้คุณจัดเก็บ ค้นหา และวิเคราะห์ข้อมูลปริมาณมากได้ โดยส่วนใหญ่แล้วเครื่องมือนี้จะใช้เป็นเครื่องมือพื้นฐานในการขับเคลื่อนแอปพลิเคชันที่ตอบสนองความต้องการในการค้นหาได้ เครื่องมือนี้ได้รับการนำมาใช้ในแพลตฟอร์มของเครื่องมือค้นหาสำหรับแอปพลิเคชันบนเว็บและมือถือสมัยใหม่ นอกจากการค้นหาที่รวดเร็วแล้ว เครื่องมือนี้ยังมีการวิเคราะห์ที่ซับซ้อนและคุณสมบัติขั้นสูงอีกมากมาย

คุณสมบัติของการค้นหาแบบยืดหยุ่น

  • เซิร์ฟเวอร์การค้นหาโอเพ่นซอร์สถูกเขียนโดยใช้ Java
  • ใช้เพื่อสร้างดัชนีข้อมูลที่แตกต่างกันทุกประเภท
  • มีเว็บอินเตอร์เฟส REST API พร้อมเอาต์พุต JSON
  • ค้นหาข้อความแบบเต็ม
  • การค้นหาแบบ Near Real Time (NRT)
  • ที่เก็บเอกสาร JSON แบบแบ่งส่วนและจำลองแบบที่สามารถค้นหาได้
  • ที่เก็บเอกสารแบบกระจายที่ใช้ REST และ JSON ที่ไม่มีสคีมา
  • การสนับสนุนหลายภาษาและตำแหน่งทางภูมิศาสตร์

ข้อดีของ Elasticsearch

  • จัดเก็บข้อมูลแบบไม่มีสคีมาและสร้างสคีมาสำหรับข้อมูลของคุณด้วย
  • จัดการบันทึกข้อมูลของคุณทีละบันทึกด้วยความช่วยเหลือของ Multi-document API
  • ดำเนินการกรองและสืบค้นข้อมูลของคุณเพื่อหาข้อมูลเชิงลึก
  • อิงตาม Apache Lucene และจัดเตรียม RESTful API
  • ให้ความสามารถในการปรับขนาดแนวนอน ความน่าเชื่อถือ และความสามารถแบบหลายผู้เช่าสำหรับการใช้การทำดัชนีแบบเรียลไทม์เพื่อให้การค้นหาเร็วขึ้น
  • ช่วยให้คุณปรับขนาดในแนวตั้งและแนวนอน

ข้อกำหนดสำคัญที่ใช้ใน Elastic Search

ในบทช่วยสอน ELK นี้ เราจะมาเรียนรู้เกี่ยวกับคำศัพท์สำคัญที่ใช้ใน ElasticSearch:

เทอม การใช้
Cluster คลัสเตอร์คือกลุ่มของโหนดที่เก็บข้อมูลร่วมกันและมีคุณสมบัติการจัดทำดัชนีและการค้นหาแบบเชื่อมโยง
โหนด โหนดเป็นอินสแตนซ์ elasticsearch มันถูกสร้างขึ้นเมื่ออินสแตนซ์ elasticsearch เริ่มต้นขึ้น
ดัชนี ดัชนีคือชุดของเอกสารที่มีลักษณะคล้ายกัน เช่น ข้อมูลลูกค้า แคตตาล็อกผลิตภัณฑ์ ดัชนีมีประโยชน์มากในการทำดัชนี ค้นหา อัปเดต และลบข้อมูล ดัชนีช่วยให้คุณกำหนดดัชนีได้หลายรายการในคลัสเตอร์เดียว
เอกสาร เป็นหน่วยข้อมูลพื้นฐานที่สามารถจัดทำดัชนีได้ โดยจะแสดงเป็นคู่ JSON (คีย์: ค่า) '{“ผู้ใช้”: “nullcon”}'. เอกสารทุกฉบับมีความเชื่อมโยงกับประเภทและรหัสเฉพาะ
Shard ดัชนีแต่ละรายการสามารถแบ่งออกเป็นชาร์ดหลายรายการเพื่อให้สามารถกระจายข้อมูลได้ ชาร์ดคือส่วนที่เป็นอะตอมของดัชนี ซึ่งสามารถกระจายไปทั่วคลัสเตอร์ได้หากคุณต้องการเพิ่มโหนดเพิ่มเติม

ความหมายของ Logstash?

Logstash เป็นเครื่องมือไปป์ไลน์การรวบรวมข้อมูล รวบรวมข้อมูลอินพุตและฟีดเข้าสู่ Elasticsearch โดยรวบรวมข้อมูลทุกประเภทจากแหล่งต่างๆ และทำให้พร้อมสำหรับการใช้งานต่อไป

Logstash สามารถรวมข้อมูลจากแหล่งที่แตกต่างกันและปรับข้อมูลให้เป็นมาตรฐานไปยังจุดหมายปลายทางที่คุณต้องการ ช่วยให้คุณสามารถทำความสะอาดและทำให้ข้อมูลทั้งหมดของคุณเป็นประชาธิปไตยสำหรับการวิเคราะห์และการแสดงภาพกรณีการใช้งาน

ประกอบด้วยสามองค์ประกอบ:

  • อินพุต: ส่งบันทึกเพื่อประมวลผลเป็นรูปแบบที่เครื่องเข้าใจได้
  • ฟิลเตอร์: เป็นชุดของเงื่อนไขในการดำเนินการหรือเหตุการณ์เฉพาะ
  • เอาท์พุต: ผู้มีอำนาจตัดสินใจสำหรับเหตุการณ์หรือบันทึกที่ประมวลผล

คุณสมบัติของ Logstash

ตอนนี้ในบทช่วยสอน LogStash นี้ เรามาเรียนรู้เกี่ยวกับฟีเจอร์ของ LogStash กัน:

  • เหตุการณ์จะถูกส่งผ่านแต่ละเฟสโดยใช้คิวภายใน
  • อนุญาตให้ป้อนข้อมูลที่แตกต่างกันสำหรับบันทึกของคุณ
  • การกรอง/แยกวิเคราะห์บันทึกของคุณ

ประโยชน์จาก Logstash

  • เสนอการรวมศูนย์การประมวลผลข้อมูล
  • โดยจะวิเคราะห์ข้อมูลและเหตุการณ์ที่มีโครงสร้าง/ไม่มีโครงสร้างที่หลากหลาย
  • ELK LogStash นำเสนอปลั๊กอินเพื่อเชื่อมต่อกับแหล่งอินพุตและแพลตฟอร์มประเภทต่างๆ

คิบานะคืออะไร?

Kibana คือเครื่องมือแสดงภาพข้อมูลที่ทำให้ชุด ELK สมบูรณ์ เครื่องมือนี้ใช้สำหรับแสดงภาพเอกสาร Elasticsearch และช่วยให้นักพัฒนาสามารถเข้าใจข้อมูลได้อย่างรวดเร็ว แดชบอร์ด Kibana นำเสนอไดอะแกรมแบบโต้ตอบ ข้อมูลภูมิสารสนเทศ และกราฟต่างๆ เพื่อสร้างภาพคำถามที่ซับซ้อน

สามารถใช้เพื่อค้นหา ดู และโต้ตอบกับข้อมูลที่จัดเก็บไว้ในไดเร็กทอรี Elasticsearch Kibana ช่วยให้คุณแสดงขั้นสูง การวิเคราะห์ข้อมูล และแสดงภาพข้อมูลของคุณในตาราง แผนภูมิ และแผนที่ที่หลากหลาย

ใน Kibana มีวิธีการต่างๆ ในการค้นหาข้อมูลของคุณ

ต่อไปนี้เป็นประเภทการค้นหาที่พบบ่อยที่สุด:

ประเภทการสืบค้น การใช้
ค้นหาข้อความฟรี ใช้เพื่อค้นหาสตริงที่ต้องการ
การค้นหาระดับฟิลด์ ใช้ในการค้นหาสตริงภายในฟิลด์ที่ระบุ
คำสั่งเชิงตรรกะ ใช้เพื่อรวมการค้นหาเข้ากับคำสั่งเชิงตรรกะ
การค้นหาความใกล้เคียง ใช้เพื่อค้นหาคำศัพท์ภายในระยะใกล้เคียงของอักขระที่เจาะจง

ในบทช่วยสอน Kibana นี้ เราจะมาเรียนรู้เกี่ยวกับคุณลักษณะที่สำคัญของ Kibana:

คุณสมบัติของคินบานะ:

  • แดชบอร์ดส่วนหน้าอันทรงพลังซึ่งสามารถมองเห็นข้อมูลที่สร้างดัชนีจากคลัสเตอร์ยืดหยุ่นได้
  • เปิดใช้งานการค้นหาข้อมูลที่จัดทำดัชนีแบบเรียลไทม์
  • คุณสามารถค้นหา ดู และโต้ตอบกับข้อมูลที่จัดเก็บไว้ใน Elasticsearch
  • ดำเนินการสืบค้นข้อมูลและแสดงภาพผลลัพธ์ในแผนภูมิ ตาราง และแผนที่
  • แดชบอร์ดที่กำหนดค่าได้เพื่อแบ่งและแยกบันทึก logstash ใน elasticsearch
  • สามารถให้ข้อมูลย้อนหลังในรูปแบบกราฟ แผนภูมิ ฯลฯ
  • แดชบอร์ดแบบเรียลไทม์ซึ่งกำหนดค่าได้ง่าย
  • Kibana ElasticSearch ช่วยให้สามารถค้นหาข้อมูลที่จัดทำดัชนีได้แบบเรียลไทม์

ข้อดีและข้อเสียของกินบานะ

  • มองเห็นภาพได้ง่าย
  • บูรณาการอย่างสมบูรณ์กับ Elasticsearch
  • เครื่องมือแสดงภาพ
  • เสนอการวิเคราะห์แบบเรียลไทม์ การทำแผนภูมิ การสรุป และการแก้ไขข้อผิดพลาด
  • จัดเตรียมอินเทอร์เฟซตามสัญชาตญาณและใช้งานง่าย
  • อนุญาตให้แชร์สแนปชอตของบันทึกที่ค้นหาผ่าน
  • อนุญาตให้บันทึกแดชบอร์ดและจัดการแดชบอร์ดหลายรายการ

ทำไมต้องวิเคราะห์บันทึก?

ในโครงสร้างพื้นฐานสภาพแวดล้อมบนคลาวด์ ประสิทธิภาพและการแยกส่วนเป็นสิ่งสำคัญมาก ประสิทธิภาพของเครื่องเสมือนในระบบคลาวด์อาจแตกต่างกันไปตามโหลด สภาพแวดล้อม และจำนวนผู้ใช้ที่ใช้งานอยู่ในระบบ ดังนั้นความน่าเชื่อถือและความล้มเหลวของโหนดจึงอาจกลายเป็นปัญหาสำคัญได้

แพลตฟอร์มการจัดการบันทึก สามารถตรวจสอบปัญหาทั้งหมดที่ระบุไว้ข้างต้นได้ รวมถึงบันทึกระบบปฏิบัติการของกระบวนการ NGINX, บันทึกเซิร์ฟเวอร์ IIS สำหรับการวิเคราะห์ปริมาณการใช้งานเว็บ บันทึกแอปพลิเคชัน และบันทึกบน AWS (Amazon บริการเว็บ).

การจัดการบันทึกช่วยให้วิศวกร DevOps ผู้ดูแลระบบสามารถตัดสินใจทางธุรกิจได้ดีขึ้น ดังนั้นการวิเคราะห์บันทึกผ่าน Elastic Stack หรือเครื่องมือที่คล้ายกันจึงมีความสำคัญ

ELK กับ Splunk

กวางชนิดใหญ่ Splunk
Elk เป็นเครื่องมือโอเพ่นซอร์ส Splunk เป็นเครื่องมือเชิงพาณิชย์
Elk Stack ไม่มีข้อเสนอ Solaris พกพาสะดวกเพราะ Kibana ข้อเสนอของ Splunk Solaris การพกพา
ความเร็วในการประมวลผลมีจำกัดอย่างเคร่งครัด นำเสนอกระบวนการที่แม่นยำและรวดเร็ว
ELK เป็นกองเทคโนโลยีที่สร้างขึ้นด้วยการผสมผสาน Elastic Search-Logstash-คิบานะ Splunk เป็นเครื่องมือที่เป็นกรรมสิทธิ์ ให้บริการโซลูชั่นทั้งในสถานที่และระบบคลาวด์
ในการค้นหา ELK การวิเคราะห์และการแสดงภาพจะสามารถทำได้หลังจากตั้งค่าสแต็ก ELK แล้วเท่านั้น Splunk เป็นแพ็คเกจการจัดการข้อมูลที่สมบูรณ์แบบตามที่คุณต้องการ
เครื่องมือ ELK ไม่รองรับการทำงานร่วมกับเครื่องมืออื่นๆ Splunk เป็นเครื่องมือที่มีประโยชน์สำหรับการตั้งค่าการผสานรวมกับเครื่องมืออื่นๆ

กรณีศึกษา

NetFlix

Netflix พึ่งพา ELK stack อย่างมาก บริษัทใช้ ELK stack เพื่อตรวจสอบและวิเคราะห์บันทึกความปลอดภัยของการดำเนินงานฝ่ายบริการลูกค้า ซึ่งช่วยให้บริษัทสามารถจัดทำดัชนี จัดเก็บ และค้นหาเอกสารจากคลัสเตอร์มากกว่า 800 คลัสเตอร์ซึ่งประกอบด้วยโหนดเกือบ XNUMX โหนด

LinkedIn

เว็บไซต์การตลาดโซเชียลมีเดียชื่อดังอย่าง LinkedIn ใช้ ELK stack เพื่อตรวจสอบประสิทธิภาพและความปลอดภัย ทีมไอทีได้บูรณาการ ELK เข้ากับ Kafka เพื่อรองรับภาระงานแบบเรียลไทม์ การดำเนินงาน ELK ของพวกเขาครอบคลุมคลัสเตอร์มากกว่า 100 คลัสเตอร์ในศูนย์ข้อมูล XNUMX แห่งที่แตกต่างกัน

เส้นปลายทางที่ดักไว้เมื่อเดินทางมาถึง

Tripwire คือระบบการจัดการเหตุการณ์ข้อมูลความปลอดภัยทั่วโลก บริษัทใช้ ELK เพื่อรองรับการวิเคราะห์บันทึกแพ็คเก็ตข้อมูล

กลาง

Medium เป็นแพลตฟอร์มการเผยแพร่บล็อกที่มีชื่อเสียง พวกเขาใช้สแต็ก ELK เพื่อแก้ไขปัญหาการใช้งานจริง บริษัทยังใช้ ELK ในการตรวจจับ DynamoDB หม้อไฟ นอกจากนี้ ด้วยการใช้สแต็กนี้ บริษัทสามารถรองรับผู้อ่านที่ไม่ซ้ำใครได้ 25 ล้านคน รวมถึงโพสต์ที่เผยแพร่หลายพันโพสต์ในแต่ละสัปดาห์

ข้อดีและข้อเสียของสแต็ก ELK

ข้อดี

  • ELK ทำงานได้ดีที่สุดเมื่อบันทึกจากแอพต่างๆ ขององค์กรมารวมกันเป็นอินสแตนซ์ ELK เดียว
  • โดยให้ข้อมูลเชิงลึกที่น่าทึ่งสำหรับอินสแตนซ์เดียวนี้ และยังขจัดความจำเป็นในการลงชื่อเข้าใช้แหล่งข้อมูลบันทึกที่แตกต่างกันหลายร้อยแหล่ง
  • การติดตั้งในสถานที่อย่างรวดเร็ว
  • ง่ายต่อการปรับใช้เครื่องชั่งในแนวตั้งและแนวนอน
  • Elastic มีโฮสต์ไคลเอนต์ภาษาซึ่งรวมถึง Ruby Python- PHP, เพิร์ล, .NET, Javaและ Javaสคริปต์และอื่นๆ
  • ความพร้อมใช้งานของไลบรารีสำหรับภาษาโปรแกรมและภาษาสคริปต์ต่างๆ

ข้อเสีย

  • ส่วนประกอบที่แตกต่างกันในสแต็กอาจจัดการได้ยากเมื่อคุณเริ่มตั้งค่าที่ซับซ้อน
  • ไม่มีอะไรที่เหมือนกับการลองผิดลองถูก ดังนั้นยิ่งคุณทำมากเท่าไหร่คุณก็ยิ่งเรียนรู้มากขึ้นเท่านั้น

สรุป

  • การบันทึกแบบรวมศูนย์จะมีประโยชน์เมื่อพยายามระบุปัญหากับเซิร์ฟเวอร์หรือแอปพลิเคชัน
  • สแตกเซิร์ฟเวอร์ ELK มีประโยชน์ในการแก้ไขปัญหาที่เกี่ยวข้องกับระบบการบันทึกแบบรวมศูนย์
  • ELK stack คือชุดเครื่องมือโอเพ่นซอร์สสามตัวที่ Elasticsearch Logstash Kibana
  • Elasticsearch เป็นฐานข้อมูล NoSQL
  • Logstash เป็นเครื่องมือไปป์ไลน์การรวบรวมข้อมูล
  • Kibana คือการแสดงภาพข้อมูลซึ่งทำให้สแต็ก ELK สมบูรณ์
  • ในโครงสร้างพื้นฐานสภาพแวดล้อมบนคลาวด์ ประสิทธิภาพและการแยกส่วนเป็นสิ่งสำคัญมาก
  • ในความเร็วการประมวลผลสแต็กของ ELK นั้นถูกจำกัดอย่างเข้มงวด Splunk ให้กระบวนการที่แม่นยำและรวดเร็ว
  • Netflix, LinkedIn, Tripware, Medium ต่างก็ใช้ ELK stack สำหรับธุรกิจของตน
  • ELK Syslog ทำงานได้ดีที่สุดเมื่อบันทึกจากแอปต่างๆ ขององค์กรมารวมกันเป็นอินสแตนซ์ ELK เดียว
  • ส่วนประกอบที่แตกต่างกันในสแต็กอาจจัดการได้ยากเมื่อคุณเริ่มตั้งค่าที่ซับซ้อน

อ้างอิงของเรา คำถามและคำตอบสัมภาษณ์ ElasticSearch สำหรับผู้สมัครที่ใหม่และมีประสบการณ์