πŸ’‘ fluent-bitλ₯Ό ν™œμš©ν•œ Metric Data μˆ˜μ§‘ν•˜κΈ°

2022λ…„ 11μ›” 24일

λ“€μ–΄κ°€λ©°

kubernetesλ₯Ό μƒμš©μœΌλ‘œ μš΄μ˜ν•˜κΈ° μ „ CPUλ‚˜ system에 λŒ€ν•œ Metrics Dataλ₯Ό μˆ˜μ§‘ν•˜κ³  μ‹œκ°ν™”ν•˜μ—¬ μ›ν™œν•œ μš΄μ˜μ„ ν•΄μ•Όν•  ν•„μš”κ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ EFK Stack으둜 logging system을 κ΅¬μΆ•ν•΄λ†“μ•˜μ—ˆλŠ”λ°, κ·Έ 쀑 fluent-bitλ₯Ό ν™œμš©ν•˜μ—¬ metrics dataλ₯Ό μˆ˜μ§‘ν•˜λŠ” 방법에 λŒ€ν•΄ 닀뀄보렀고 ν•©λ‹ˆλ‹€.

CPU Metric

fluent-bit의 input plugin쀑 cpuλŠ” 기본적으둜 ν”„λ‘œμ„ΈμŠ€ ν˜Ήμ€ 전체 μ‹œμŠ€ν…œμ˜ CPU μ‚¬μš©λŸ‰μ„ μΈ‘μ •ν•©λ‹ˆλ‹€.

μ„€μ •λœ μ‹œκ°„μ— λŒ€ν•΄ λ°±λΆ„μœ¨ λ‹¨μœ„λ‘œ μˆ˜μ§‘λ˜λ©° ν˜„μž¬ 이 plugin은 linuxμ—μ„œλ§Œ μ‚¬μš©ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

key

cpu_p

이 값은 μ‚¬μš©μž 및 컀널 곡간에 μ†Œμš”λœ 사간 λŒ€λΉ„ 전체 μ‹œμŠ€ν…œμ˜ CPU μ‚¬μš©λŸ‰μ„ μš”μ•½ν•΄μ„œ λ³΄μ—¬μ€λ‹ˆλ‹€. ( CPU μ½”μ–΄ 수λ₯Ό κ³ λ €ν•©λ‹ˆλ‹€. )

user_p

이 값은 μ‚¬μš©μž λͺ¨λ“œμ—μ„œ CPU μ‚¬μš©λŸ‰μ„ μ˜λ―Έν•©λ‹ˆλ‹€.( CPU μ½”μ–΄ 수λ₯Ό κ³ λ €ν•©λ‹ˆλ‹€. )

system_p

컀널 λͺ¨λ“œμ—μ„œ CPU μ‚¬μš©λŸ‰, κ°„λ‹¨νžˆ λ§ν•΄μ„œ 컀널에 μ˜ν•œ CPU μ‚¬μš©λŸ‰μ„ μ˜λ―Έν•©λ‹ˆλ‹€.( CPU μ½”μ–΄ 수λ₯Ό κ³ λ €ν•©λ‹ˆλ‹€. )

CPU.core

μœ„μ— μ„€λͺ…ν•œ key외에도 CPU coreλ³„λ‘œ 데이터가 μˆ˜μ§‘λ©λ‹ˆλ‹€. coreλŠ” 0μ—μ„œ NκΉŒμ§€ λ‚˜μ—΄λ©λ‹ˆλ‹€.

cpuN.p_cpu

core N개의 CPU μ‚¬μš©λŸ‰μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

cpuN.p_user

core N개의 μ‚¬μš©μž λͺ¨λ“œμ—μ„œ μ‚¬μš©λœ 총 CPU μ‚¬μš©λŸ‰μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

cpuN.p_system

N번째 core와 κ΄€λ ¨λœ μ‹œμŠ€ν…œ λ˜λŠ” 컀널 λͺ¨λ“œμ—μ„œ μ‚¬μš©λœ 총 CPUμž…λ‹ˆλ‹€.

Proceeding

INPUT

[INPUT]
    Name              cpu
    Tag               my_cpu

λ¨Όμ € cpu plugin을 μž‘μ„±ν•΄μ€λ‹ˆλ‹€. Tagμ—λŠ” λ‹€λ₯Έ 데이터듀도 μˆ˜μ§‘λ  수 μžˆμœΌλ‹ˆ, νŠΉμˆ˜ν•œ 이름을 μž‘μ„±ν•©λ‹ˆλ‹€. (μ—¬κΈ°μ„  my_cpu)

OUTPUT

[OUTPUT]
    Name              kinesis_firehose
    Match             my_cpu
    region            [az]
    delivery_stream   [kinesis_firehose_name]

λ¨Όμ € AWS Kinesisμ—μ„œ firehoseλ₯Ό μƒμ„±ν•΄λ‘μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έ ν›„ ν•΄λ‹Ή μ „μ†‘μŠ€νŠΈλ¦Όμ„ delivery_stream에 μž‘μ„±ν•΄μ€λ‹ˆλ‹€.

그러면 섀정은 λͺ¨λ‘ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

config map을 μ‚­μ œν•΄μ£Όμ‹  ν›„ ν•΄λ‹Ή fluent-bit config map file을 μ μš©ν•΄μ£Όμ‹œλ©΄ λͺ¨λ“  μž‘μ—…μ΄ μ™„λ£Œκ°€ λ©λ‹ˆλ‹€.

Result

es-discover

κ·Έ ν›„ elastic search에 μ ‘μ†ν•˜μ—¬ index μ„€μ • ν•œ ν›„ kibana의 discoverμ—μ„œ μœ„μ™€ 같이 μˆ˜μ§‘λœ metrics dataλ₯Ό 확인해볼 수 μžˆμŠ΅λ‹ˆλ‹€.


Reference