Kibana - ข้อมูลเบื้องต้นเกี่ยวกับ Elk Stack

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

ELK ย่อมาจาก Elasticsearch, Logstash และ Kibana ELK เป็นหนึ่งในแพลตฟอร์มการจัดการบันทึกยอดนิยมที่ใช้กันทั่วโลกสำหรับการวิเคราะห์บันทึก

ในกอง ELK -

  • Logstashแยกข้อมูลการบันทึกหรือเหตุการณ์อื่น ๆ จากแหล่งอินพุตที่แตกต่างกัน มันประมวลผลเหตุการณ์และเก็บไว้ใน Elasticsearch ในภายหลัง

  • Kibana เป็นเครื่องมือแสดงภาพซึ่งเข้าถึงบันทึกจาก Elasticsearch และสามารถแสดงต่อผู้ใช้ในรูปแบบของกราฟเส้นกราฟแท่งแผนภูมิวงกลมเป็นต้น

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

ในบทนี้ให้เราเข้าใจวิธีการทำงานกับ ELK stack ด้วยกัน นอกจากนี้คุณยังจะได้เห็นวิธีการ -

  • โหลดข้อมูล CSV จาก Logstash ไปยัง Elasticsearch
  • ใช้ดัชนีจาก Elasticsearch ใน Kibana

โหลดข้อมูล CSV จาก Logstash ไปยัง Elasticsearch

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

เราได้นำข้อมูล countries.csv จากที่นี่: https://www.kaggle.com/fernandol/countries-of-the-world. คุณสามารถดาวน์โหลดไฟล์ csv และใช้งานได้

ไฟล์ csv ที่เราจะใช้มีรายละเอียดดังต่อไปนี้

ชื่อไฟล์ - countriesdata.csv

คอลัมน์ - "ประเทศ" "ภูมิภาค" "ประชากร" "พื้นที่"

คุณยังสามารถสร้างไฟล์ csv จำลองและใช้งานได้ เราจะใช้ logstash เพื่อถ่ายโอนข้อมูลนี้จากcountriesdata.csvไปยัง elasticsearch

เริ่มต้นยางยืดและ Kibana ในเครื่องปลายทางของคุณและทำงานต่อไป เราต้องสร้างไฟล์ config สำหรับ logstash ซึ่งจะมีรายละเอียดเกี่ยวกับคอลัมน์ของไฟล์ CSV และรายละเอียดอื่น ๆ ตามที่แสดงในไฟล์ logstash-config ที่ระบุด้านล่าง -

input {
   file {
      path => "C:/kibanaproject/countriesdata.csv"
      start_position => "beginning"
      sincedb_path => "NUL"
   }
}
filter {
   csv {
      separator => ","
      columns => ["Country","Region","Population","Area"]
   }
   mutate {convert => ["Population", "integer"]}
   mutate {convert => ["Area", "integer"]}
}
output {
   elasticsearch {
      hosts => ["localhost:9200"]
      => "countriesdata-%{+dd.MM.YYYY}"
   }
   stdout {codec => json_lines }
}

ในไฟล์ config เราได้สร้าง 3 องค์ประกอบ -

อินพุต

เราจำเป็นต้องระบุเส้นทางของไฟล์อินพุตซึ่งในกรณีของเราคือไฟล์ csv พา ธ ที่เก็บไฟล์ csv จะถูกกำหนดให้กับฟิลด์พา ธ

กรอง

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

เอาต์พุต

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

บันทึกไฟล์ config ดังกล่าวข้างต้นเป็นlogstash_countries.config โปรดทราบว่าเราต้องกำหนดเส้นทางของ config นี้ไปยังคำสั่ง logstash ในขั้นตอนถัดไป

ในการโหลดข้อมูลจากไฟล์ csv ไปยัง elasticsearch เราต้องเริ่มเซิร์ฟเวอร์ elasticsearch -

ตอนนี้เรียกใช้ http://localhost:9200 ในเบราว์เซอร์เพื่อยืนยันว่า elasticsearch ทำงานสำเร็จหรือไม่

เรามี elasticsearch ทำงานอยู่ ตอนนี้ไปที่เส้นทางที่ติดตั้ง logstash และรันคำสั่งต่อไปนี้เพื่ออัปโหลดข้อมูลไปยัง elasticsearch

> logstash -f logstash_countries.conf

หน้าจอด้านบนแสดงการโหลดข้อมูลจากไฟล์ CSV ไปยัง Elasticsearch หากต้องการทราบว่ามีการสร้างดัชนีใน Elasticsearch หรือไม่เราสามารถตรวจสอบได้ดังนี้ -

เราสามารถดูดัชนี countriesdata-28.12.2018 ที่สร้างขึ้นดังที่แสดงด้านบน

รายละเอียดของดัชนี - ประเทศ -28.12.2018 มีดังนี้ -

โปรดสังเกตว่ารายละเอียดการแม็ปกับคุณสมบัติถูกสร้างขึ้นเมื่อข้อมูลถูกอัปโหลดจาก logstash ไปยัง elasticsearch

ใช้ข้อมูลจาก Elasticsearch ใน Kibana

ขณะนี้เรามี Kibana ที่ทำงานบน localhost พอร์ต 5601 - http://localhost:5601. UI ของ Kibana แสดงไว้ที่นี่ -

โปรดทราบว่าเรามี Kibana ที่เชื่อมต่อกับ Elasticsearch แล้วและเราควรจะเห็น index :countries-28.12.2018 ภายใน Kibana

ใน Kibana UI ให้คลิกที่ตัวเลือกเมนูการจัดการทางด้านซ้าย -

ตอนนี้คลิกการจัดการดัชนี -

ดัชนีที่มีอยู่ใน Elasticsearch จะแสดงในการจัดการดัชนี ดัชนีที่เราจะใช้ใน Kibana คือ countriesdata-28.12.2018

ดังนั้นเมื่อเรามีดัชนี elasticsearch ใน Kibana แล้วต่อไปจะเข้าใจวิธีใช้ดัชนีใน Kibana เพื่อแสดงภาพข้อมูลในรูปแบบของแผนภูมิวงกลมกราฟแท่งแผนภูมิเส้นเป็นต้น