Fluentd node 별 디렉토리 분리

작성자 이경미 수정일 2023-02-13 09:34

#fluentd, #fluent node

들어가며

  • kubernetes log 를 수집해주는 sw 인 fluentd 의 상세 설정 방법을 알 수 있습니다.
  • node 별로 디렉토리를 생성하여 pod 의 log 를 수집할 수 있습니다. 



내용

flunetd 가 수집하는 log 는 기본적으로 minio 에 저장되도록 sodaflow 에 추가됩니다. 

하지만 node 가 여러개로 나눠진 경우 분리하여 저장하는 기능은 추가되어있지 않습니다. 

따라서 node 별로 pod 의 log 수집을 원하는 경우 다음 작업을 수행하여 fluentd 에 적용해야 합니다. 


fluentd_0.3.9.yaml

sodaflow 에서 제공되는 fluentd 는 해당 yaml 로 실행합니다. 

vi fluentd_0.3.9.yaml


오픈 소프트웨어를 사용하기 때문에 기본적인 틀은 fluentd 형식을 따라갑니다. 

이 때, node 별로 디렉토리를 변경하기 위해서는 옵션을 다음과 같이 추가합니다. 

  04_outputs.conf: |-
    <label @OUTPUT>
       <match **>
         @type s3
         aws_key_id "minio#agilesoda$01"
         aws_sec_key "minio#agilesoda$01"
         s3_endpoint "http://minio.minio:9000&quot;
         force_path_style true
         store_as json
         s3_bucket logging
         path "#{ENV['K8S_NODE_NAME']}"
         s3_object_key_format "%{path}/${tag}/%{time_slice}-events_%{index}.%{file_extension}"
         time_slice_format %Y/%m/%d/%H


추가되는 옵션 

k8s node name 을 추가한 뒤 경로에 입력해줍니다. 

path "#{ENV['K8S_NODE_NAME']}"
s3_object_key_format "%{path}/${tag}/%{time_slice}-events_%{index}.%{file_extension}"



적용

kubectl apply -f fluentd_0.3.9.yaml


마무리

  • 적용 후 minio 에 node 이름 별로 pod 의 log 가 생성되는 것을 확인할 수 있습니다.
    참고된 결과는 실제 pod 의 로그를 중략한 특정 부분입니다. 
    cd <NAS ROOT>/minio-minio-data-volume-pvc-<UUID>/minio/
    tree logging
    |-- lp645
    |   |-- kubernetes.var.log.containers.gitlab-redis-74cdd497c6-69vjb_sodaflow_gitlab-redis-caf51ab02f1b3d3b9ecdabcffabc464282ba5c88dd780ee8ea880410a25bf23e.log
    |   |   `-- 2023
    |   |       `-- 01
    |   |           `-- 26
    |   |               `-- 08-events_0.json
    |   |-- kubernetes.var.log.containers.kubewatch-654455fdc4-lld9r_sodaflow_kubewatch-0ea4e900b5298e3292c42be2a120b856e3b3eaefbcf735207d2aab6701260f1f.log
    |   |   `-- 2023
    |   |       `-- 01
    |   |           `-- 26
    |   |               `-- 08-events_0.json
    |-- lp646
    |   |-- kubernetes.var.log.containers.devainexus-74484dd664-sspgq_sodaflow_devainexus-c49b3af3ed05b16f4d13a915b8346891ad6000df9dc8229621e374818f080586.log
    |   |   `-- 2023
    |   |       `-- 01
    |   |           `-- 26
    |   |               `-- 08-events_0.json
    |   |-- kubernetes.var.log.containers.mariadb-cluster-primary-8d9fdc949-7p4gm_sodaflow_mariadb-18ad4f8db37cd817b71a130a2e2f4a8294b4a83e5d2e8ba0723f77384b6185b2.log
    |   |   `-- 2023
    |   |       `-- 01
    |   |           `-- 26
    |   |               `-- 08-events_0.json
    |-- lp647
    |   |-- kubernetes.var.log.containers.workflow-controller-76b8c46fdb-p476p_sodaflow_workflow-controller-3a2e6dce11e99aeb4c3f3534a7d82a70251fd1f2c57258a062d2e5c7277513bd.log
    |       `-- 2023
    |           `-- 01
    |               `-- 26
    |                   `-- 08-events_0.json
    `-- lp648
        |-- kubernetes.var.log.containers.restapp-app04c2d-0_sodaflow_restapp-d1f8b53c9f972a02792d85462007937801f6a9075392b3625f71f27e1f802d07.log
        |   `-- 2023
        |       `-- 01
        |           `-- 26
        |               `-- 08-events_0.json
        `-- kubernetes.var.log.containers.restapp-server-1-0_sodaflow_rest-server-42dc2b8b938b2a8a0712968fde98a09dfbaccbe5fc97f87549c5fb4932ea73f6.log
            `-- 2023
                `-- 01
                    `-- 26
                        `-- 08-events_0.json


아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300