
들어가며
kubernetes를 상용으로 운영하기 전 CPU나 system에 대한 Metrics Data를 수집하고 시각화하여 원활한 운영을 해야할 필요가 있었습니다.
현재 EFK Stack으로 logging system을 구축해놓았었는데, 그 중 fluent-bit를 활용하여 metrics data를 수집하는 방법에 대해 다뤄보려고 합니다.
CPU Metric
fluent-bit의 input plugin중 cpu는 기본적으로 프로세스 혹은 전체 시스템의 CPU 사용량을 측정합니다.
설정된 시간에 대해 백분율 단위로 수집되며 현재 이 plugin은 linux에서만 사용하실 수 있습니다.
key
| key name | description |
| 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

그 후 elastic search에 접속하여 index 설정 한 후 kibana의 discover에서 위와 같이 수집된 metrics data를 확인해볼 수 있습니다.
Reference
CPU Metrics - Fluent Bit: Official Manual
[0] [1452185189, {"cpu_p"=>7.00, "user_p"=>5.00, "system_p"=>2.00, "cpu0.p_cpu"=>10.00, "cpu0.p_user"=>8.00, "cpu0.p_system"=>2.00, "cpu1.p_cpu"=>6.00, "cpu1.p_user"=>4.00, "cpu1.p_system"=>2.00}] [1] [1452185190, {"cpu_p"=>6.50, "user_p"=>5.00, "system_p"
docs.fluentbit.io
'데브옵스 이야기' 카테고리의 다른 글
| AWS OpenSearch를 활용해 EFK Stack 구축하기 (0) | 2023.05.03 |
|---|---|
| AWS EC2 Storage 용량 늘리기(scale-up) (1) | 2023.04.29 |
| [ArgoSlackBot] ArgoCD의 상태를 Slack에 메시지 보내기 (1) | 2023.04.27 |
| AWS EFS를 사용하여 POD Storage 구성하기 (1) | 2023.04.25 |