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 เพื่อแสดงภาพข้อมูลในรูปแบบของแผนภูมิวงกลมกราฟแท่งแผนภูมิเส้นเป็นต้น