ในบทช่วยสอนนี้ เราจะแนะนำคุณตลอดกระบวนการเรียกใช้ Logstash ในคอนเทนเนอร์ Docker ด้วยการกำหนดค่าพื้นฐาน
ความต้องการ:
ก่อนที่เราจะเริ่มบทช่วยสอน ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
- ติดตั้ง Docker บนเครื่องโฮสต์ของคุณ (แนะนำให้ใช้เวอร์ชัน 23 ขึ้นไป)
- ติดตั้ง Docker Compose บนเครื่องของคุณแล้ว
เมื่อมีคุณสมบัติตรงตามข้อกำหนดแล้ว เราก็สามารถดำเนินการสอนต่อได้
ตั้งค่าไฟล์การกำหนดค่า Logstash
Logstash ใช้ไฟล์การกำหนดค่าเพื่อกำหนดวิธีการนำเข้า กรอง และส่งไปยังเอาต์พุต มีตัวเลือกมากมายที่คุณสามารถกำหนดค่าได้ตามข้อมูลอ้างอิงในเอกสารอย่างเป็นทางการ
สำหรับตัวอย่างของเรา เรามุ่งเน้นไปที่การกำหนดค่าพื้นฐานที่นำเข้าข้อมูลจากไฟล์บันทึก กรองเพื่อหาบันทึกที่ตรงกัน และส่งออกข้อมูลไปยังไฟล์
สร้างไฟล์ชื่อ “logstash.conf” และเพิ่มการกำหนดค่าดังนี้:
ป้อนข้อมูล {ไฟล์ {
เส้นทาง => '/var/log/apache/access.log'
start_position => 'จุดเริ่มต้น'
Sincedb_path => '/dev/null'
ละเว้น_older => 0
}
}
กรอง {
ถ้า [ข้อความ] =~ 'ข้อผิดพลาด' {
โกรก {
ตรงกัน => { 'ข้อความ' => '%{COMBINEDAPACHELOG}' }
}
}
}
เอาท์พุท {
ไฟล์ {
เส้นทาง => '/var/log/apache/error_logs.log'
}
}
ไฟล์ก่อนหน้านี้กำหนดการกำหนดค่าดังแสดงต่อไปนี้:
- ส่วนอินพุต – ส่วนอินพุตใช้ปลั๊กอินอินพุตไฟล์เพื่ออ่านไฟล์บันทึก Apache ที่อยู่ใน /var/log/apache/access.log
- จากนั้นเรากำหนดตำแหน่งเริ่มต้นที่จุดเริ่มต้นซึ่งทำให้ Logstash สามารถอ่านไฟล์ทั้งหมดได้ตั้งแต่ต้น
- Sincedb_path – พารามิเตอร์นี้ช่วยให้เราปิดการใช้งานการติดตาม Sincedb ของ Logstash โดยตั้งค่าเป็น /dev/null เพื่อให้แน่ใจว่า Logstash จะอ่านตั้งแต่ต้นไฟล์เสมอ
- Ignore_older – การตั้งค่าของพารามิเตอร์นี้เป็น 0 อนุญาตให้ Logstash ประมวลผลรายการทั้งหมดของไฟล์บันทึก
- ส่วนตัวกรอง – ในส่วนตัวกรอง เรากำหนดรูปแบบตัวกรองเพื่อตรวจสอบว่าข้อความบันทึกมีคำว่า ERROR หรือไม่ คุณสามารถปรับเงื่อนไขสำหรับบล็อกตัวกรองเพื่อกรองการจับคู่ไฟล์ที่แม่นยำยิ่งขึ้น
- หากตรงตามเงื่อนไข เราจะใช้ตัวกรอง grok เพื่อแยกวิเคราะห์บรรทัดบันทึก Apache โดยใช้รูปแบบ COMBINEDAPACHELOG ซึ่งเป็นรูปแบบในตัวใน Logstash เพื่อแยกวิเคราะห์บันทึก Apache
- ส่วนผลลัพธ์ – ส่วนนี้ช่วยให้เราสามารถกำหนดรูปแบบผลลัพธ์สำหรับรายการที่ตรงกัน
- ในกรณีของเรา เราเขียนมันลงในไฟล์ /var/log/apache/error_logs.log โดยใช้พารามิเตอร์ path
สิ่งนี้ควรให้การกำหนดค่า Logstash พื้นฐานแก่เราซึ่งช่วยให้เราสามารถสาธิตการทำงานของ Logstash พื้นฐานบางอย่างได้
โปรดอ้างอิงเพิ่มเติมเกี่ยวกับการสร้างและการกำหนดค่าไปป์ไลน์ Logstash ในทรัพยากรเอกสารที่ให้มาต่อไปนี้:
https://www.elastic.co/guide/en/logstash/current/configuration.html
สร้างไฟล์นักเทียบท่า
เมื่อเรากำหนดการกำหนดค่า Logstash แล้ว เราก็สามารถดำเนินการต่อและเรียนรู้วิธีเรียกใช้คอนเทนเนอร์ได้ ภายในไดเร็กทอรีเดียวกันกับไฟล์ 'logstash.conf' ให้สร้างไฟล์ใหม่ชื่อ 'Dockerfile'
แก้ไขไฟล์นี้และเพิ่มรายการดังต่อไปนี้:
จาก docker.elastic.co/logstash/logstash:8.9.2คัดลอก logstash.conf /usr/share/logstash/pipeline/logstash.conf
ในตัวอย่างที่กำหนด เรากำหนดอิมเมจพื้นฐานเป็นอิมเมจ Logstash อย่างเป็นทางการโดยใช้เวอร์ชัน 8.9.2
จากนั้นเราจะคัดลอกไฟล์ “logstash.conf” ที่เราสร้างขึ้นไปยัง /usr/share/logstash/pipeline/logstash.conf ในรูปภาพ
สร้างอิมเมจนักเทียบท่า
จากนั้น นำทางไปยังไดเร็กทอรีที่มีไฟล์คอนฟิกูเรชัน Dockerfile และ Logstash รันคำสั่งต่อไปนี้เพื่อสร้างอิมเมจ:
$ สร้างนักเทียบท่า -ที กำหนดเอง logstash-image
เรียกใช้คอนเทนเนอร์ Logstash
ตอนนี้เราสร้างอิมเมจ Docker แล้ว เราสามารถรันคอนเทนเนอร์ Logstash ได้โดยใช้คำสั่ง Docker “run” ดังนี้:
$ นักเทียบท่าวิ่ง -d --ชื่อ logstash-server กำหนดเอง-logstash-imageสิ่งนี้ควรเรียกใช้คอนเทนเนอร์ Logstash โดยใช้อิมเมจที่เราสร้างขึ้นในขั้นตอนก่อนหน้า
ตรวจสอบบันทึก Logstash Container
หากต้องการตรวจสอบว่า Logstash ทำงานอย่างถูกต้อง คุณสามารถตรวจสอบบันทึกของคอนเทนเนอร์ได้โดยใช้คำสั่งต่อไปนี้:
$ บันทึกนักเทียบท่า < คอนเทนเนอร์_ชื่อ >เอาท์พุท:
บทสรุป
ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีตั้งค่าเซิร์ฟเวอร์ Logstash ที่ทำงานเป็น Docker อย่างรวดเร็วโดยใช้ไฟล์การกำหนดค่าแบบกำหนดเอง เราขอแนะนำให้ตรวจสอบเอกสารประกอบเกี่ยวกับพารามิเตอร์รูปภาพและตัวเลือกการกำหนดค่า