ข้ามไปที่เนื้อหา

วิธีการใช้ Fluentd

คู่มือนี้อธิบายวิธีการส่งบันทึกที่แน่นอนของผู้ใช้ที่ใช้ใน Analytics v2 ผ่าน fluentd.

การติดตั้ง Fluentd

Note
  • เราขอแนะนำให้ติดตั้ง td-agent เวอร์ชัน 1.x.
  • ไลบรารี td-agent มีให้สำหรับแต่ละภาษา. (https://docs.fluentd.org/language-bindings)

การติดตั้ง td-agent

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
  • แก้ไขไฟล์ตั้งค่า td-agent
$ vim /etc/td-agent/td-agent.conf

การตั้งค่าเริ่มต้นของ Fluentd

  • ไฟล์บันทึก: เส้นทางเริ่มต้นของไฟล์บันทึกคือ /var/log/td-agent และไฟล์ td-agent.log ตั้งอยู่ในโฟลเดอร์ย่อย.
  • เหตุการณ์: เหตุการณ์ ใน fluentd หมายถึงการบันทึกและล็อก.
  • แหล่งที่มา: ช่วยให้สามารถรับ input ที่หลากหลายและปลั๊กอินมากมายสามารถใช้งานได้โดยใช้ @ type.
  • จับคู่: มันจัดการกับเหตุการณ์ 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 และใช้หลักในการดีบัก
<match <i></i>>
  @type stdout
</match>
  • 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 -c /etc/td-agent/td-agent.conf
  • เริ่ม td-agent ใหม่
$ service td-agent restart