นับตั้งแต่ Elastic{on} 17 เรารู้สึกตื่นเต้นเกี่ยวกับคุณลักษณะที่กำลังจะมีขึ้นทั้งหมดใน Elastic Stack โดยเฉพาะอย่างยิ่งแนวคิดโมดูล Filebeat ใหม่ โดยปกติ เมื่อคุณต้องการเริ่มดึงข้อมูลด้วย Filebeat คุณต้องกำหนดค่า Filebeat สร้างเทมเพลตการแมป Elasticsearch สร้างและทดสอบไปป์ไลน์การนำเข้าหรืออินสแตนซ์ Logstash จากนั้นสร้างการแสดงภาพ Kibana สำหรับชุดข้อมูลนั้น ตอนนี้ทีม Beats ได้ทำให้ขั้นตอนการตั้งค่านั้นง่ายขึ้นมากด้วยแนวคิดโมดูล
โมดูล Filebeat รวบรวมขั้นตอนการกำหนดค่าเหล่านั้นทั้งหมดลงในแพ็คเกจที่สามารถเปิดใช้งานได้ด้วยคำสั่งเดียว Filebeat 5.3.0 และใหม่กว่ามาพร้อมกับโมดูลสำหรับบันทึก mysql, nginx, apache และบันทึกระบบ แต่สร้างของคุณเองได้ง่ายๆ
โมดูล Filebeat ใช้งานได้ประมาณสองสามสัปดาห์แล้ว ดังนั้นฉันจึงต้องการสร้างบล็อกสั้นๆ เกี่ยวกับวิธีการใช้งานกับคลัสเตอร์ Elasticsearch ที่ไม่ใช่ในเครื่อง เช่นเดียวกับในบริการ ObjectRocket เราเพิ่งเปิดตัว Elasticsearch เวอร์ชัน 5.4 บนบริการ ObjectRocket ดังนั้นคุณจึงสามารถลองใช้โมดูล Filebeat ได้ในวันนี้ และใช้ประโยชน์จากโมดูล auditd ใหม่และชุดไฟล์ Linux system.auth
การตั้งค่า
ขั้นตอนด้านล่างอ้างอิง ObjectRocket สำหรับอินสแตนซ์ Elasticsearch และ UI ของเรา แต่ควรจะง่ายพอที่จะปรับเปลี่ยนสำหรับบริการอื่นๆ หรือคลัสเตอร์ของคุณเอง นอกจากนี้ เราจะใช้โมดูล "ระบบ" ในตัวอย่างนี้ แต่การรวมโมดูลอื่นๆ นั้นตรงไปตรงมา
สิ่งที่คุณต้องการคือ Elasticsearch 5.3 หรืออินสแตนซ์ที่ใหม่กว่า (ฉันลองใช้ 5.x Elasticsearch เวอร์ชันก่อนหน้าและใช้งานได้ดี แต่ไม่มีการรับประกัน), Kibana ของเวอร์ชันเดียวกัน, ชื่อโฮสต์เพื่อเชื่อมต่อกับคลัสเตอร์ Elasticsearch ข้อมูลรับรองผู้ใช้ที่มีความสามารถในการเขียนไปยังคลัสเตอร์และสร้างดัชนี และ Filebeat เวอร์ชัน 5.3 หรือใหม่กว่า
สมมติว่าคลัสเตอร์ Elasticsearch และ Kibana ของคุณได้รับการตั้งค่าแล้ว ก่อนอื่นคุณต้องดาวน์โหลด Filebeat สำหรับระบบประเภทใดก็ตามที่คุณใช้งานอยู่ ที่นี่ จากนั้นแตกไฟล์ออกจากระบบที่คุณต้องการรวบรวมบันทึก สำหรับตัวอย่างนี้ ฉันแค่ใช้ Macbook ที่ใช้ MacOS และเชื่อมต่อกับคลัสเตอร์ Elasticsearch 5.4.0 ดังนั้นฉันจะใช้แพ็คเกจ filebeat-5.4.0-darwin-x86_64.tar.gz แตกไฟล์เก็บถาวรนั้น จากนั้นเราก็พร้อมที่จะตั้งค่า Filebeat
การตั้งค่าไฟล์บีท
ตามค่าเริ่มต้น Filebeat จะพยายามเชื่อมต่อกับอินสแตนซ์ Elasticsearch บนเครื่องของคุณ และอ่านบันทึกทั้งหมดใน /var/log/*.log ด้วยไฟล์ filebeat.yml ที่รวมอยู่ ดังนั้นก่อนอื่นเราต้องแก้ไขสิ่งนั้นให้ชี้ไปที่คลัสเตอร์และแถบของคุณ จากนักสำรวจอื่น ๆ หากคุณกำลังใช้บริการ ObjectRocket คุณสามารถเริ่มต้นด้วยการคัดลอกข้อมูลโค้ด Beats จาก UI ของเรา ซึ่งจะเติมชื่อโฮสต์เฉพาะสำหรับคลัสเตอร์ของคุณโดยอัตโนมัติ
หลังจากแยกส่วนอื่นๆ ออกและกรอกชื่อผู้ใช้/รหัสผ่าน ไฟล์ filebeat.yml ทั้งหมดของคุณควรมีลักษณะดังนี้:
คลาส div =”highlight”>
output:
elasticsearch:
# The Elasticsearch cluster
hosts: ["https://dfw-xxxx-0.es.objectrocket.com:xxxx", "https://dfw-xxxx-1.es.objectrocket.com:xxxx", "https://dfw-xxxx-2.es.objectrocket.com:xxxx", "https://dfw-xxxx-3.es.objectrocket.com:xxxx"]
# HTTP basic auth
username: "elasticsearch"
password: "supersecretpassword"
แค่นั้นแหละ. โปรดทราบว่าอินพุตทั้งหมดถูกตัดออก ดังนั้นไฟล์จึงมีเฉพาะข้อมูลการเชื่อมต่อ Elasticsearch ณ จุดนี้ ให้ตรวจสอบให้แน่ใจว่าคุณสามารถเข้าถึงคลัสเตอร์ elasticsearch ของคุณจากเครื่องของคุณ เพิ่ม ACL ฯลฯ ต่อไป ลองใช้ Filebeat เพื่อขับเคลื่อนทุกอย่าง
กำลังรันไฟล์บีท
คุณมีทุกอย่างที่กำหนดค่าให้พูดคุยกับคลัสเตอร์ของคุณ ตราบใดที่คุณทำการเปลี่ยนแปลงทั้งหมดกับ filebeat.yml ในตำแหน่งเริ่มต้น คุณจะเรียกใช้คำสั่งต่อไปนี้จากไดเร็กทอรี filebeat:
./filebeat -e -modules=system -setup
-e ทำให้ Filebeat บันทึกไปที่ stderr แทนที่จะเป็น syslog -modules=system บอกให้ Filebeat ใช้โมดูลระบบ และ -setup บอกให้ Filebeat โหลดแดชบอร์ด Kibana ของโมดูล คุณต้องรวมส่วน -setup ของคำสั่งในครั้งแรกเท่านั้น หรือหลังจากอัปเกรด Filebeat เนื่องจากมันเพิ่งโหลดแดชบอร์ดเริ่มต้นลงใน Kibana หากคุณต้องการเรียกใช้หลายโมดูล คุณสามารถแสดงรายการทั้งหมดโดยคั่นด้วยเครื่องหมายจุลภาค (ไม่ต้องเว้นวรรค)
หมายเหตุ:มีข้อบกพร่องใน Filebeat 5.4.0 ที่อาจทำให้
-setup
ส่วนหนึ่งของคำสั่งให้ล้มเหลวในบางระบบ คุณสามารถแก้ไขได้โดยตั้งค่า ulimit ให้สูงกว่านั้น (เรียกใช้ulimit -n 2048
) หรือใช้ filebeat 5.3.x.
Filebeat ควรทำสิ่งนั้นแล้ว ตราบใดที่คุณไม่เห็นข้อผิดพลาด ให้ไปที่ Kibana และตรวจสอบมัน
ดูข้อมูล
เมื่อคุณเข้าสู่ระบบ Kibana แล้ว ควรมีรูปแบบดัชนี filebeat-* ใหม่ พร้อมด้วยการแสดงภาพและแดชบอร์ดใหม่ ไปที่ "แดชบอร์ด" และเปิด "แดชบอร์ด Filebeat syslog"
โวล่า. ตราบใดที่บันทึกของระบบของคุณมีบางอย่างอยู่ในนั้น ตอนนี้คุณควรมีการแสดงข้อมูลเป็นภาพที่สวยงาม
หมายเหตุ:หากไม่มีข้อผิดพลาดที่ชัดเจนจาก Filebeat และไม่มีข้อมูลใน Kibana ระบบของคุณอาจมีบันทึกของระบบที่เงียบมาก ฉันต้องตั้งค่าตัวเลือกวันที่ให้ห่างจากค่าเริ่มต้น "15 นาทีที่ผ่านมา" เล็กน้อยเพื่อดูข้อมูลบางส่วน
ปิดท้าย
นี่เป็นขั้นตอนที่ยอดเยี่ยมมากในการทำให้ Beats ใช้งานได้ง่ายยิ่งขึ้นสำหรับกรณีการใช้งานทั่วไปส่วนใหญ่ และสามารถขยายพื้นฐานของตัวอย่างนี้สำหรับโมดูลอื่นๆ ที่พร้อมใช้งานได้อย่างง่ายดาย ตัวอย่างเช่น เว็บแอปจำนวนมาก (เช่น WordPress, Drupal, Magento เป็นต้น) มีเว็บเซิร์ฟเวอร์และ mysql บางตัวอยู่เบื้องหลัง ด้วยโมดูลชุดเดียวและคำสั่งเดียว คุณจะเริ่มบันทึกการจัดส่งสำหรับเว็บเซิร์ฟเวอร์ ฐานข้อมูล และบันทึกระบบของแอปพลิเคชันนั้นได้ในขั้นตอนเดียว
หากคุณกำลังมองหาข้อมูลเพิ่มเติมและต้องการเจาะลึกถึงวิธีการสร้างโมดูลเหล่านี้ ให้ตรวจดูเอกสารประกอบของนักพัฒนาซอฟต์แวร์และเปิดดูในไดเร็กทอรีโมดูลของการติดตั้ง Filebeat ของคุณ คุณควรจะสามารถจับคู่ผู้สำรวจ ไปป์ไลน์ เทมเพลต และการแสดงภาพที่โมดูลใช้กับสิ่งที่คุณเห็นใน Kibana ได้