지니데비 기록 자세히보기

데브옵스/Orchestration

[Kubernetes] 23. Managing Application Logs

지니데비 2024. 11. 13. 21:34
728x90

실시간 로그 확인
kubectl logs [pod name]
  • 위 방법은 일회성 조회이므로 일정 시간이 지난 로그는 볼 수 없으며, Pod가 사라지면 로그도 사라진다.
중앙 집중형 로그 수집 시스템 사용
  • 여러 Pod와 노드에서 생성된 로그를 하나의 시스템으로 수집하여 쉽게 검색하고 분석할 수 있다.
주요 도구 및 설정 방법
  1. EFK Stack (Elasticsearch, Fluentd, Kibana)
    • Fluentd: 로그를 수집하고 Elasticsearch로 전달하는 역할을 해. 각 노드에서 Fluentd가 컨테이너 로그를 수집해 Elasticsearch에 전송한다.
    • Elasticsearch: 데이터를 저장하고, 빠르게 검색할 수 있는 검색 엔진이다.
    • Kibana: 시각화 도구로, 로그를 대시보드 형태로 보여줘서 쉽게 분석할 수 있다.
  2. Promtail + Loki + Grafana (PLG Stack)
    • Promtail: 로그를 수집하고, Loki라는 로그 스토리지 시스템에 전송한다.
    • Loki: 가벼운 로그 관리 솔루션으로, 로그를 저장하고 Grafana와 연동한다.
    • Grafana: Loki의 로그를 시각화하여 모니터링 대시보드로 보여준다.
  3. Fluent Bit: Fluentd의 가벼운 버전으로, 메모리와 리소스 사용량이 적어 컨테이너 환경에 적합하다.
    • 주로 사용: EFK 스택에서 Fluentd 대신 사용되며, 간단한 로그 수집과 전송에 최적화되어 있다.
설정 예시 - EFK 스택 배포
  1. Elasticsearch 및 Kibana 설치:
    • Helm 또는 YAML을 통해 클러스터에 설치하고, 로그 데이터를 수집할 인덱스를 생성한다.
  2. Fluentd 설치 및 구성:
    • 각 노드에 DaemonSet으로 배포하여 모든 노드의 로그를 수집한다.
    • Fluentd가 로그를 필터링하여 Elasticsearch로 전송할 수 있도록 설정한다.
로그 관리 권장사항
  • 중앙집중형 로그 수집: 한곳에서 효율적으로 검색하고 분석할 수 있게 관리한다.
  • 로그 보존 기간 관리: 로그 데이터를 무한정 저장하지 않고, 일정 기간 후 자동으로 삭제되도록 설정한다.
  • 필터링과 태그: 중요한 로그와 그렇지 않은 로그를 구분하고, 원하는 조건에 맞게 필터링하여 저장하면 리소스를 절약할 수 있다.
  • 모니터링 설정: 로그 수집 시스템에 문제가 생기지 않도록 자체적으로 모니터링을 추가하여 문제 발생 시 알림을 받을 수 있도록 설정한다.
728x90
반응형