ตั้งแต่ Elastic{on} 17 เรากำลังตื่นเต้นกับคุณสมบัติใหม่ๆ ใน Elastic Stack โดยเฉพาะแนวคิดโมดูล Filebeat ที่ใหม่ ปกติแล้วเมื่อต้องการเริ่มเก็บข้อมูลด้วย Filebeat คุณต้องกำหนดค่า Filebeat สร้างเทมเพลตการแมป Elasticsearch สร้างและทดสอบ ingest pipeline หรืออินสแตนซ์ Logstash และสร้างการแสดงภาพ Kibana สำหรับชุดข้อมูลนั้น ทีม Beats ได้ทำให้กระบวนการตั้งค่านั้นง่ายขึ้นมากด้วยแนวคิดโมดูล
โมดูล Filebeat รวมขั้นตอนการกำหนดค่าทั้งหมดไว้ในแพ็กเกจเดียวที่สามารถเปิดใช้งานได้ด้วยคำสั่งเพียงคำเดียว Filebeat 5.3.0 ขึ้นไปมีโมดูลสำหรับ mysql, nginx, apache และ system logs พร้อมใช้งาน และยังสร้างโมดูลของตัวเองได้ง่ายอีกด้วย
โมดูล Filebeat พร้อมใช้งานมาสักพักหนึ่งแล้ว จึงอยากเขียนบล็อก מהיר เกี่ยวกับการใช้งานกับคลัสเตอร์ Elasticsearch ที่ไม่ใช่โลคอล เช่น บนบริการ ObjectRocket เราเพิ่งเปิดตัว Elasticsearch 5.4 บน ObjectRocket จึงสามารถลองใช้โมดูล Filebeat วันนี้และใช้ประโยชน์จากโมดูล auditd และไฟล์เซต Linux system.auth ใหม่ๆ
การตั้งค่า
ขั้นตอนด้านล่างอ้างอิงถึงอินสแตนซ์ Elasticsearch ของ ObjectRocket และ UI ของเรา แต่ปรับใช้กับบริการอื่นหรือคลัสเตอร์ของตัวเองได้ง่าย ในตัวอย่างนี้เราจะใช้โมดูล "system" แต่การเพิ่มโมดูลอื่นๆ ก็ตรงไปตรงมาเช่นกัน
สิ่งที่ต้องมีคือ อินสแตนซ์ Elasticsearch 5.3 ขึ้นไป (ลอง 5.x ก่อนหน้านี้ทำงานได้ แต่ไม่รับประกัน) 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
ค่าเริ่มต้น Filebeat พยายามเชื่อมต่อ Elasticsearch บนเครื่องโลคอลและอ่านล็อกทั้งหมดใน /var/log/*.log ด้วย filebeat.yml ที่มารวมอยู่ จึงต้องแก้ไขให้ชี้ไปที่คลัสเตอร์ของคุณและลบ prospectors อื่นๆ ทั้งหมด หากใช้บริการ ObjectRocket เริ่มต้นได้โดยคัดลอกสนิปเพท Beats จาก UI ของเรา ซึ่งจะกรอกโฮสต์เนมเฉพาะของคลัสเตอร์อัตโนมัติ

หลังลบส่วนอื่นๆ ทั้งหมดและกรอกชื่อผู้ใช้/รหัสผ่าน ไฟล์ filebeat.yml ทั้งหมดควรมีหน้าตาประมาณนี้:
output:
elasticsearch:
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"]
username: "elasticsearch"
password: "supersecretpassword"
แค่นี้ก็พอ หมายเหตุ: ทุก inputs ถูกลบออกแล้ว ไฟล์ประกอบด้วยข้อมูลเชื่อมต่อ Elasticsearch เท่านั้น ตรงนี้ต้องแน่ใจว่าถึงคลัสเตอร์ Elasticsearch จากเครื่องของคุณได้ ACLs เพิ่มแล้ว เป็นต้น ตอนนี้มารัน Filebeat ให้ทำงานกัน
การรัน Filebeat
ทุกอย่างตั้งค่าแล้วพร้อมคุยกับคลัสเตอร์ ถ้าทำการเปลี่ยนแปลง filebeat.yml ในตำแหน่งเริ่มต้น ให้รันคำสั่งต่อไปจากไดเรกทอรี filebeat:
./filebeat -e -modules=system -setup
ตัวเลือก -e ทำให้ Filebeat ล็อกไปที่ stderr แทน syslog, -modules=system บอกให้ใช้โมดูล system, และ -setup บอกให้โหลดแดชบอร์ด Kibana ของโมดูล ต้องใช้ -setup ครั้งแรกหรือหลังอัปเกรด Filebeat เท่านั้น เพราะมันเพียงโหลดแดชบอร์ดเริ่มต้นเข้า Kibana หากต้องการรันหลายโมดูล ให้ระบุลั่นด้วยคอมม่า (ไม่เว้นวรรค)
หมายเหตุ: มีบั๊กใน Filebeat 5.4.0 ที่อาจทำให้ส่วน -setup ล้มเหลวบนระบบบางระบบ แก้ได้โดยตั้ง ulimit สูงขึ้น (รัน
ulimit -n 2048) หรือใช้ Filebeat 5.3.x
Filebeat ควรทำงานอยู่แล้ว ถ้าไม่เห็นข้อผิดพลาด ไปดูที่ Kibana กัน
ดูข้อมูล
ล็อกอิน Kibana แล้ว ควรมี index pattern filebeat-* ใหม่ พร้อม visualization และ dashboard ใหม่ ไปที่ "Dashboards" เปิด "Filebeat syslog dashboard"
โวอิลา ถ้าล็อกระบบของคุณมีข้อมูล ควรได้ visualization สวยงามของข้อมูลแล้ว

หมายเหตุ: ถ้า Filebeat ไม่มีข้อผิดพลาดแต่อยู่ดีแต่ไม่มีข้อมูลใน Kibana ล็อกระบบอาจเงียบเกินไป ต้องปรับ date picker ย้อนหลังกว่าค่าเริ่มต้น 'Last 15 minutes' จึงจะเห็นข้อมูล
สรุป
นี่เป็นขั้นตอนสำคัญที่ทำให้ Beats ใช้งานง่ายขึ้นสำหรับกรณีใช้งานทั่วไป พื้นฐานของตัวอย่างนี้ขยายได้สำหรับโมดูลอื่นๆ ที่มีอยู่ ตัวอย่างแอปเว็บมากมาย (WordPress, Drupal, Magento) มีเว็บเซิร์ฟเวอร์และ MySQL ด้านหลัง ด้วยชุดโมดูลนี้และคำสั่งเดียว เริ่มส่งล็อกของเว็บเซิร์ฟเวอร์ ฐานข้อมูล และล็อกระบบของแอปพลิเคชันได้ในขั้นตอนเดียว
หากต้องการข้อมูลเพิ่มเติมและอยากเจาะลึกว่าโมดูลเหล่านี้สร้างอย่างไร ดู developer documentation และโฟลเดอร์โมดูลในการติดตั้ง Filebeat คุณจะจับคู่ prospectors, pipelines, templates และ visualizations ที่โมดูลใช้กับสิ่งที่เห็นใน Kibana ได้