บันทึกใน Docker

Banthuk Ni Docker



Logstash เป็นไปป์ไลน์การประมวลผลข้อมูลแบบโอเพนซอร์สที่ช่วยให้คุณรวบรวม ประมวลผล และส่งต่อข้อมูลบันทึกจากแหล่งต่างๆ

ในบทช่วยสอนนี้ เราจะแนะนำคุณตลอดกระบวนการเรียกใช้ Logstash ในคอนเทนเนอร์ Docker ด้วยการกำหนดค่าพื้นฐาน

ความต้องการ:

ก่อนที่เราจะเริ่มบทช่วยสอน ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:







  1. ติดตั้ง Docker บนเครื่องโฮสต์ของคุณ (แนะนำให้ใช้เวอร์ชัน 23 ขึ้นไป)
  2. ติดตั้ง 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'
}
}

ไฟล์ก่อนหน้านี้กำหนดการกำหนดค่าดังแสดงต่อไปนี้:

  1. ส่วนอินพุต – ส่วนอินพุตใช้ปลั๊กอินอินพุตไฟล์เพื่ออ่านไฟล์บันทึก Apache ที่อยู่ใน /var/log/apache/access.log
    • จากนั้นเรากำหนดตำแหน่งเริ่มต้นที่จุดเริ่มต้นซึ่งทำให้ Logstash สามารถอ่านไฟล์ทั้งหมดได้ตั้งแต่ต้น
    • Sincedb_path – พารามิเตอร์นี้ช่วยให้เราปิดการใช้งานการติดตาม Sincedb ของ Logstash โดยตั้งค่าเป็น /dev/null เพื่อให้แน่ใจว่า Logstash จะอ่านตั้งแต่ต้นไฟล์เสมอ
    • Ignore_older – การตั้งค่าของพารามิเตอร์นี้เป็น 0 อนุญาตให้ Logstash ประมวลผลรายการทั้งหมดของไฟล์บันทึก
  2. ส่วนตัวกรอง – ในส่วนตัวกรอง เรากำหนดรูปแบบตัวกรองเพื่อตรวจสอบว่าข้อความบันทึกมีคำว่า ERROR หรือไม่ คุณสามารถปรับเงื่อนไขสำหรับบล็อกตัวกรองเพื่อกรองการจับคู่ไฟล์ที่แม่นยำยิ่งขึ้น
    • หากตรงตามเงื่อนไข เราจะใช้ตัวกรอง grok เพื่อแยกวิเคราะห์บรรทัดบันทึก Apache โดยใช้รูปแบบ COMBINEDAPACHELOG ซึ่งเป็นรูปแบบในตัวใน Logstash เพื่อแยกวิเคราะห์บันทึก Apache
  3. ส่วนผลลัพธ์ – ส่วนนี้ช่วยให้เราสามารถกำหนดรูปแบบผลลัพธ์สำหรับรายการที่ตรงกัน
    • ในกรณีของเรา เราเขียนมันลงในไฟล์ /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 อย่างรวดเร็วโดยใช้ไฟล์การกำหนดค่าแบบกำหนดเอง เราขอแนะนำให้ตรวจสอบเอกสารประกอบเกี่ยวกับพารามิเตอร์รูปภาพและตัวเลือกการกำหนดค่า