Filebeat Basics

Filebeat์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•„์š”์šฐ

Reference: filebeat docs

What is Filebeat?

Filebeat

  • Log data ๋ฅผ ์ „๋‹ฌ ํ•˜๊ณ , ์ค‘์•™ํ™” ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰์˜ Producer

  • Server์— agent๋กœ ์„ค์น˜๋˜๋Š” Filebeat ๋Š”

    1. Directory ํ˜น์€ ํŠน์ • file์„ monitoring ํ•˜๊ณ ,

    2. log event๋ฅผ ์ˆ˜์ง‘ ํ•˜๊ณ ,

    3. Indexing ์„ ์œ„ํ•ด ElasicSearch ๋˜๋Š” Logstash ๋กœ ์ „๋‹ฌํ•œ๋‹ค

image-20200911205327354

How it works?

  1. Filebeat๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ์„ค์ •์—์„œ ์ง€์ •ํ•œ log data ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ prospector ๋ฅผ ๊ฐ€์ง„๋‹ค

  2. ์ง€์ •ํ•œ log file ์—์„œ event๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค Filebeat ๋Š” data ์ˆ˜ํ™•๊ธฐ (harvester) ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค

  3. ํ•˜๋‚˜์˜ log file ์„ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ harvester ๋Š” ์ƒˆ log data๋ฅผ ์ฝ๊ณ , libbeat ์— ๋ณด๋‚ธ๋‹ค

  4. libbeat ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ง‘๊ณ„ํ•˜๊ณ , ์ง‘๊ณ„๋œ data๋ฅผ Filebeat ์„ค์ •์— ๊ตฌ์„ฑ๋œ ์ถœ๋ ฅ์œผ๋กœ data๋ฅผ ๋ณด๋‚ธ๋‹ค

How Filebeat works (in detail)

  • Filebeat๋Š” prospector ์™€ harvester ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค

    • ๋‘ ๊ฐ€์ง€ components ๋“ค์ด ํ•จ๊ป˜ file์„ ์ถ”์ ํ•˜๊ณ , ์ง€์ •ํ•œ ๊ณณ์œผ๋กœ event data ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค

What is a harvester?

  • Harvester๋Š” file์˜ ๋‚ด์šฉ์„ ์ฝ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค

  • ๊ฐ ํŒŒ์ผ์„ ํ•œ ์ค„์”ฉ ์ฝ์œผ๋ฉด์„œ ๋‚ด์šฉ์„ ๋ณด๋‚ธ๋‹ค

  • ํ•˜๋‚˜์˜ ํŒŒ์ผ๋‹น ํ•˜๋‚˜์˜ Harvester๊ฐ€ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ณ , ๋๋‚ธ๋‹ค

    • ์ฆ‰, Harvester๊ฐ€ ์ž‘๋™ํ•˜๋Š”๋™์•ˆ file descriptor ๋Š” ์—ด๋ ค์žˆ๊ณ , harvester๋Š” ๊ณ„์†ํ•ด์„œ ํŒŒ์ผ์„ ์ฝ๋Š”๋‹ค

      • Cons

        • harvester๊ฐ€ ์ž‘์—…์„ ๋๋‚ผ ๋•Œ๊นŒ์ง€ disk ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค!

What is a prospector?

  • Prospector ๋Š” harvester ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ฝ์–ด๋“ค์ผ ์ž์›์„ ์ฐพ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค

  • ๋งŒ์•ฝ input ์ด log ๋ผ๋ฉด prospector๋Š”

    1. ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ์ฐพ๊ณ 

    2. harvester ๋ฅผ ๊ฐ ํŒŒ์ผ์—์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค

  • Filebeat ๊ฐ€ ๊ธฐ์žฌ๋œ ํŠน์ • ๊ฒฝ๋กœ๋กœ๋ถ€ํ„ฐ ์ฝ์„ ๋ชจ๋“  log file ์„ ์„ค์ •ํ•˜๋Š” ์˜ˆ์‹œ

    • ex)

      filebeat.prospectors:
      - type: log
       paths:
        - /var/log/*.log
        - /var/path2/*.log
  • Filebeat๋Š” ํ˜„์žฌ prospector type์œผ๋กœ log ์™€ stdin ์„ ์ง€์›ํ•œ๋‹ค

  • Filebeat prospector ๋Š” ์˜ค์ง local file ๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค!

    • Remote host ์— ์—ฐ๊ฒฐํ•˜์—ฌ ํŒŒ์ผ์ด๋‚˜ log๋ฅผ ์ฝ์„ ์ˆ˜ ์—†๋‹ค!!

How does Filebeat keep the state of files?

  • Filebeat๋Š” ๊ฐ ํŒŒ์ผ์˜ state๋ฅผ ์ถ”์ ํ•˜๊ณ  disk์˜ registry file์— ์ €์žฅํ•œ๋‹ค

    • state๋Š”

      1. harvest๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ฝ๊ณ ์žˆ๋˜ ๊ณณ์„ ๊ธฐ์–ตํ•˜๊ณ ,

      2. ๋ชจ๋“  log๊ฐ€ ์ „์†ก๋˜์—ˆ๋Š”์ง€ ๋ณด์ฆํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋œ๋‹ค

  • Filebeat๊ฐ€ ๋™์ž‘ ํ•˜๋Š”๋™์•ˆ state ์ •๋ณด๋Š” prospector ์— ์˜ํ•ด memory ์— ์ €์žฅ๋œ๋‹ค

  • Filebeat๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋ฉด,

    1. Registry file์— ์ €์žฅ๋œ ์ •๋ณด๋Š” state ๋ฅผ ๋‹ค์‹œ ์„ค์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๊ณ ,

    2. Filebeat๋Š” ๊ฐ harvester ๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰๋˜๋˜ ์œ„์น˜์—์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค

Last updated

Was this helpful?