개발자

[쿠버네티스] 로그 관련2

2024년 07월 17일조회 23

애플리케이션이 STDOUT 및 STDERR 대신 파일에 직접 로그를 작성하는 경우 /var/log/containers/에 로그가 남지 않게 됩니다. 그리고 스케쥴링된 노드 어느 path에도 로그가 남지 않습니다. 이 경우 컨테이너 내부의 로그를 수집해야하는데 promtail로 어떻게 설정해야 컨테이너 내부의 로그를 수집할 수 있나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 0

답변이 없을 때 보이는 아이콘

첫 답변을 기다리고 있어요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 07월 17일

Promtail을 사용하여 애플리케이션 로그를 수집하려면 몇 가지 설정 변경이 필요합니다. 1. ConfigMap 수정: 먼저, Promtail ConfigMap을 업데이트 해야합니다. 여기에는 Promtail이 로그를 수집할 파일 위치를 지정하는 scrape_configs 섹션이 포함됩니다. ``` scrape_configs: - job_name: system static_configs: - targets: - localhost labels: job: varlogs __path__: /var/log/*log # 이 부분을 애플리케이션이 로그를 작성하는 디렉토리로 변경해줍니다. ``` 2. 볼륨 마운트 추가: 그 다음으로, Kubernetes의 Prometheus 및 Promtail pod 정의에서 볼륨 마운트를 추가해야 합니다. 이 볼륨 마운트는 컨테이너가 로그를 작성하는 디렉토리를 호스트 파일 시스템에 연결합니다. ```yaml volumeMounts: - name: varlog mountPath: /var/log # 이 부분을 애플리케이션이 로그를 작성하는 디렉토리로 변경해줍니다. ``` 3. 권한 허용: 마지막으로, 해당 디렉토리에 대한 읽기/쓰기 권한이 Promtail 데몬셋에게 있어야 합니다. 국소 파일 시스템에서 로그를 수집하는 것은 대부분의 경우에는 문제가 없지만, 해당 컨테이너가 로그를 쓰는 경로에 대한 접근 권한을 갖고 있어야 합니다. 일반적으로 이는 Kubernetes Pod 정의에서 볼륨 마운트를 통해 이루어집니다. 위 과정들을 통해 Promtail 설정 변경과 볼륨 마운트 추가, 권한 부여를 통해 컨테이너 내부에서 작성하는 파일 로그를 수집하도록 설정할 수 있습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!