วิธีการใช้ Fluentd
คู่มือนี้อธิบายวิธีการส่งบันทึกที่แน่นอนของผู้ใช้ที่ใช้ใน Analytics v2 ผ่าน fluentd.
การติดตั้ง Fluentd¶
Note
- เราขอแนะนำให้ติดตั้ง td-agent เวอร์ชัน 1.x.
- ไลบรารี td-agent มีให้สำหรับแต่ละภาษา. (https://docs.fluentd.org/language-bindings)
การติดตั้ง td-agent¶
- แก้ไขไฟล์ตั้งค่า td-agent
การตั้งค่าเริ่มต้นของ Fluentd¶
- ไฟล์บันทึก: เส้นทางเริ่มต้นของไฟล์บันทึกคือ
/var/log/td-agent
และไฟล์ td-agent.log ตั้งอยู่ในโฟลเดอร์ย่อย. - เหตุการณ์: เหตุการณ์ ใน fluentd หมายถึงการบันทึกและล็อก.
- แหล่งที่มา:
- จับคู่: มันจัดการกับเหตุการณ์
input
ที่ส่งผ่าน
ปลั๊กอิน Fluentd¶
- ตรวจสอบและติดตั้งปลั๊กอิน: ติดตั้งปลั๊กอินที่คุณต้องการหลังจากตรวจสอบรายการปลั๊กอิน (ปลั๊กอินเช่น
tail
,forward
และstdout
จะมีให้โดยค่าเริ่มต้น แต่ปลั๊กอินอื่นๆ เช่นforest
ต้องติดตั้งแยกต่างหาก.)
$ td-agent-gem list #ตรวจสอบรายการปลั๊กอิน
# สามารถติดตั้งปลั๊กอินได้โดยใช้คำสั่ง td-agent-gem install [ปลั๊กอินที่คุณต้องการ]
$ td-agent-gem install fluent-plugin-forest # ติดตั้งปลั๊กอิน fluent-plugin-forest
- แท็ก: แท็ก คือค่าที่ประกอบด้วย เหตุการณ์ และส่วน
<match>
จัดการกับค่าที่ตรงกับ แท็ก.
# ตัวอย่างการใช้งานสำหรับแท็ก
<source>
@type tail
tag ha2union.game.com2us # แนบแท็กนี้กับเหตุการณ์ที่ส่งโดยใช้ in_tail
path /var/log/sample.log
</source>
# เหตุการณ์อินพุตที่ถ่ายโอนผ่านแหล่งข้อมูลจะถูกส่งไปยังแท็กการจับคู่ที่แมพกับแท็กเหตุการณ์
<match ha2union.game.com2us>
@type stdout
<match>
[ปลั๊กอินนำเข้า]¶
- in_tail: ปลั๊กอิน in_tail อ่านข้อมูลโดยใช้คำสั่ง
tail
.
<source>
@type tail
path /var/log/com2us.log # เส้นทางการอ่านเช่นไฟล์
pos_file /var/log/fluent/com2us_posfile.log.pos # บันทึกส่วนสุดท้ายที่อ่าน
tag ha2union.game.com2us # แท็กเหตุการณ์ แนบแท็กไปยังเหตุการณ์ที่ส่ง
</source>
# pos_file: เมื่อเรียกใช้ fluentd อีกครั้ง ให้จัดการไฟล์จากส่วนสุดท้ายที่อ่าน
- in_forward: โดยทั่วไปจะใช้สำหรับรับข้อมูลจากโหนด fluentd อื่นๆ
<source>
@type forward
port 24224 # Port to send ( default : 24224 )
bind 0.0.0.0 # Bind address to send ( default : 0.0.0.0(all of address))
</source>
[ปลั๊กอินเอาท์พุต]¶
Note
ส่วนขยายเอาต์พุตที่กำหนดในส่วน
output\_stdout
: ส่งออกบันทึกเหตุการณ์ด้วยstdout
และใช้หลักในการดีบัก
output\_forward
: ใช้เมื่อส่งบันทึกเหตุการณ์ไปยังโหนด fluentd อื่นๆ.
<match <i></i>>
@type forward
<server>
name com2us.fluentd1
host [Server1's IP or domain for receiving]
port 24224
weight 50 # Set up the load balancing weight in the <server> section
</server>
<server>
name com2us.fluentd2
host [Server2's IP or domain for receiving]
port 24224
weight 50 # Set up the load balancing weight in the <server> section
</server>
</match>
fluent-plugin-forest
: เปิดใช้งานการบันทึกไฟล์บันทึกโดยใช้ชื่อแท็ก (โดยการตั้งค่าดังต่อไปนี้ ไฟล์บันทึกสามารถบันทึกในเครื่องได้)
<store>
@type forest
subtype file
<template>
time_slice_format %Y%m%d%H
time_slice_wait 10s
path /com2us/log/td-agent/data/${tag}/${tag}.*.log
compress gz
format json
</template>
</store>
ตัวอย่างการใช้งานของ fluentd¶
การใช้ fluentd ช่วยให้สามารถส่งบันทึกด้วยวิธีการดังต่อไปนี้ สำหรับรายละเอียดเพิ่มเติม คลิกที่ลิงก์ด้านล่าง
แก้ไขการตั้งค่า¶
- ตรวจสอบบริบทของ
td-agent.conf
- เริ่ม td-agent ใหม่