การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก

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

ใน Citymobil เราใช้ ELK stack (ElasticSearch, Logstash, Kibana) เพื่อทำงานกับบันทึก และจำนวนข้อมูลที่เข้ามามีจำนวนมาก การค้นหาปัญหาในคำขอจำนวนมากที่อาจปรากฏขึ้นหลังจากการปรับใช้โค้ดใหม่นั้นค่อนข้างยาก และเพื่อการระบุด้วยภาพ Kibana มีส่วนแดชบอร์ด

มีบทความสองสามบทความเกี่ยวกับ Habré พร้อมตัวอย่างวิธีตั้งค่า ELK stack เพื่อรับและจัดเก็บข้อมูล แต่ไม่มีเนื้อหาที่เกี่ยวข้องในการสร้างแดชบอร์ด ดังนั้นฉันต้องการแสดงวิธีสร้างการแสดงข้อมูลด้วยภาพตามบันทึกขาเข้าใน Kibana

การตั้งค่า

เพื่อให้ชัดเจนยิ่งขึ้น ฉันสร้างอิมเมจ Docker ด้วย ELK และ Filebeat และวางในภาชนะเล็กๆ โปรแกรม ใน Go ซึ่งสำหรับตัวอย่างของเราจะสร้างบันทึกการทดสอบ ฉันจะไม่อธิบายรายละเอียดเกี่ยวกับการกำหนดค่าของ ELK มีการเขียนเกี่ยวกับเรื่องนี้เพียงพอแล้วในHabré

โคลนที่เก็บการกำหนดค่า docker-compose และการตั้งค่า ELK และเปิดใช้งานด้วยคำสั่ง docker-compose up. ตั้งใจไม่เพิ่มคีย์ -dเพื่อดูความคืบหน้าของ ELK stack

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง เราจะเห็นรายการในบันทึก (อาจไม่ใช่ในทันที กระบวนการเปิดใช้คอนเทนเนอร์ที่มีสแต็กทั้งหมดอาจใช้เวลาหลายนาที):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

ตามที่อยู่ localhost:5061 Kibana ควรเปิด

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

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

การสร้างรูปแบบดัชนีผ่าน GUI
ในการกำหนดค่า ให้เลือกส่วน Discover ในเมนูด้านซ้าย และไปที่หน้าการสร้างรูปแบบดัชนี

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
เมื่อคลิกที่ปุ่ม "สร้างรูปแบบดัชนี" เราจะไปที่หน้าการสร้างดัชนี ในฟิลด์ "ชื่อรูปแบบดัชนี" ให้ป้อน "logstash-*" หากกำหนดค่าทุกอย่างถูกต้อง ด้านล่าง Kibana จะแสดงดัชนีที่อยู่ภายใต้กฎ

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ในหน้าถัดไป เลือกฟิลด์คีย์ที่มีการประทับเวลา ในกรณีของเราคือ @timestamp.

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
การดำเนินการนี้จะแสดงหน้าการตั้งค่าดัชนี แต่เราไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติมในขณะนี้

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก

ตอนนี้เราสามารถไปที่ส่วน Discover อีกครั้ง ซึ่งเราจะเห็นรายการบันทึก

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก

Dashboard

ในเมนูด้านซ้าย คลิกที่ส่วนการสร้างแดชบอร์ดและไปที่หน้าที่เกี่ยวข้อง

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
คลิกที่ "สร้างแดชบอร์ดใหม่" และไปที่หน้าสำหรับเพิ่มวัตถุในแดชบอร์ด

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

แถบแนวตั้ง

สำหรับตัวอย่าง "แถบแนวตั้ง" ลองสร้างฮิสโตแกรมของอัตราส่วนของสถานะการตอบสนองที่สำเร็จและไม่สำเร็จของบริการของเรา ในตอนท้ายของการตั้งค่า เราจะได้กราฟต่อไปนี้:

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
เราจะจำแนกคำขอทั้งหมดที่มีสถานะการตอบกลับ < 400 เป็นสำเร็จ และ >= 400 เป็นปัญหา

ในการสร้างแผนภูมิ "แถบแนวตั้ง" เราจำเป็นต้องเลือกแหล่งข้อมูล เลือก Index Pattern ที่เราสร้างไว้ก่อนหน้านี้

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ตามค่าเริ่มต้น กราฟทึบเดียวจะปรากฏขึ้นหลังจากเลือกแหล่งข้อมูล มาตั้งค่ากันเถอะ

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ในบล็อก "ที่เก็บข้อมูล" ให้กดปุ่ม "เพิ่ม" เลือก "X-asis" และตั้งค่าแกน X เรามาแยกการประทับเวลาของรายการในบันทึกไปพร้อมๆ กัน ในฟิลด์ "การรวม" เลือก "ฮิสโตแกรมวันที่" และในฟิลด์ "ฟิลด์" เลือก "@timestamp" เพื่อระบุฟิลด์เวลา ปล่อยให้ "ช่วงเวลาต่ำสุด" อยู่ในสถานะ "อัตโนมัติ" แล้วมันจะปรับให้เข้ากับการแสดงผลของเราโดยอัตโนมัติ 

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
เมื่อคลิกที่ปุ่ม "อัปเดต" เราจะเห็นกราฟที่มีจำนวนคำขอทุกๆ 30 วินาที

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ตอนนี้มาตั้งค่าคอลัมน์ตามแกน Y กัน ตอนนี้เรากำลังแสดงจำนวนคำขอทั้งหมดในช่วงเวลาที่เลือก

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ลองเปลี่ยนค่า "การรวม" เป็น "Sum Bucket" ซึ่งจะช่วยให้เรารวมข้อมูลสำหรับคำขอที่สำเร็จและไม่สำเร็จได้ ในบล็อก Bucket -> Aggregation เลือกการรวมโดย "ตัวกรอง" และตั้งค่าการกรองโดย "statusCode >= 400" และในฟิลด์ "ป้ายกำกับที่กำหนดเอง" เราระบุชื่อตัวบ่งชี้ของเราเพื่อให้เข้าใจได้ง่ายขึ้นในคำอธิบายแผนภูมิและในรายการทั่วไป

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
เมื่อคลิกปุ่ม "อัปเดต" ใต้บล็อกการตั้งค่า เราจะได้รับกราฟพร้อมคำขอปัญหา

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
หากคุณคลิกที่วงกลมถัดจากคำอธิบาย หน้าต่างจะปรากฏขึ้นซึ่งคุณสามารถเปลี่ยนสีของคอลัมน์ได้

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ตอนนี้มาเพิ่มข้อมูลเกี่ยวกับคำขอที่สำเร็จลงในแผนภูมิ ในส่วน "ตัวชี้วัด" คลิกปุ่ม "เพิ่ม" และเลือก "แกน Y"

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ในเมตริกที่สร้างขึ้น เราทำการตั้งค่าเดียวกันกับคำขอที่ผิดพลาด เฉพาะในตัวกรองที่เราระบุ "รหัสสถานะ < 400"

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ด้วยการเปลี่ยนสีของคอลัมน์ใหม่ เราจะแสดงอัตราส่วนของคำขอที่มีปัญหาและคำขอที่สำเร็จ

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

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก

ตารางข้อมูล

ตอนนี้พิจารณามุมมองแบบตาราง "ตารางข้อมูล" มาสร้างตารางที่มีรายการ URL ทั้งหมดที่ได้รับการร้องขอและจำนวนคำขอเหล่านั้น เช่นเดียวกับตัวอย่างแถบแนวตั้ง เราจะเลือกแหล่งข้อมูลก่อน

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
หลังจากนั้น หน้าจอจะแสดงตารางที่มีหนึ่งคอลัมน์ซึ่งแสดงจำนวนคำขอทั้งหมดสำหรับช่วงเวลาที่เลือก

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
เราจะเปลี่ยนบล็อก "ถัง" เท่านั้น คลิกปุ่ม "เพิ่ม" และเลือก "แยกแถว"

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ในฟิลด์ "การรวม" เลือก "ข้อกำหนด" และในช่องที่ปรากฏ "ฟิลด์" เลือก "url.keyword"

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
เมื่อระบุค่า "Url" ในช่อง "ป้ายกำกับที่กำหนดเอง" แล้วคลิก "อัปเดต" เราจะได้ตารางที่ต้องการพร้อมจำนวนคำขอสำหรับแต่ละ URL สำหรับช่วงเวลาที่เลือก

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก
ที่ด้านบนของหน้าจอ คลิกปุ่ม "บันทึก" อีกครั้ง และระบุชื่อตาราง เช่น URL กลับไปที่แดชบอร์ดและดูทั้งสองมุมมองที่สร้างขึ้น

การสร้างแดชบอร์ดใน Kibana เพื่อตรวจสอบบันทึก

การทำงานกับแดชบอร์ด

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

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

ข้อสรุป

Kibana เป็นเครื่องมืออันทรงพลังที่ช่วยให้คุณเห็นภาพข้อมูลใดๆ ได้อย่างสะดวก ฉันพยายามแสดงการตั้งค่าของจอแสดงผลหลักสองประเภท แต่ประเภทอื่นมีการกำหนดค่าในลักษณะเดียวกัน และการตั้งค่ามากมายที่ฉันทิ้งไว้ "เบื้องหลัง" จะช่วยให้คุณปรับแต่งแผนภูมิได้อย่างยืดหยุ่นมากเพื่อให้เหมาะกับความต้องการของคุณ

ที่มา: will.com

เพิ่มความคิดเห็น