운영 및 유지보수 리눅스 운영 및 유지 관리 컨테이너 로그 분석 및 예외 모니터링을 위해 Docker를 사용하는 방법

컨테이너 로그 분석 및 예외 모니터링을 위해 Docker를 사용하는 방법

Nov 07, 2023 pm 02:09 PM
docker 로그 분석 이상 모니터링

컨테이너 로그 분석 및 예외 모니터링을 위해 Docker를 사용하는 방법

Docker는 애플리케이션과 해당 종속성을 컨테이너에 패키징하여 단일 휴대용 애플리케이션 단위로 실행할 수 있는 인기 있는 컨테이너화 기술입니다. 이 기술을 통해 개발자는 다양한 환경에서 애플리케이션을 쉽게 배포하고 관리할 수 있습니다. 실제 애플리케이션에서는 Docker 컨테이너의 로그 분석 및 예외 모니터링이 매우 필요합니다. 이 문서에서는 다음 측면을 포함하여 컨테이너의 로그 분석 및 예외 모니터링에 Docker를 사용하는 방법을 소개합니다.

  1. Docker 컨테이너 로그
  2. Docker log 명령을 사용하여 로그 보기
  3. 로그 수집 및 분석에 Logstash 사용
  4. 사용 Elasticsearch 데이터 인덱싱 및 저장
  5. 데이터 시각화를 위해 Kibana 사용

먼저 Docker 컨테이너에 대한 로그를 이해해야 합니다.

1. Docker 컨테이너 로그

Docker 컨테이너 로그는 애플리케이션 출력 정보, 오류 정보, 액세스 로그, 시스템 로그 등을 포함하여 컨테이너에 작업 정보를 기록합니다. 이 정보는 애플리케이션 운영 및 유지 관리, 추적, 예외 처리 등에 매우 중요하므로 Docker 컨테이너의 로그를 수집하고 분석해야 합니다.

2. Docker log 명령을 사용하여 로그 보기

Docker는 컨테이너에서 출력된 로그 정보를 보는 데 사용할 수 있는 log 명령을 제공합니다. log 명령어를 이용하면 실행 중인 컨테이너의 실시간 출력 정보를 쉽게 확인할 수 있고, 이 정보를 콘솔에 출력하거나 파일로 저장할 수 있다. 다음은 log 명령어를 사용하여 컨테이너 로그를 보는 예이다.

// 查看容器ID为xxx的日志
docker logs xxx

// 查看容器ID为xxx的日志,输出到控制台并实时更新
docker logs -f xxx 

// 查看容器ID为xxx的最近10条日志
docker logs --tail 10 xxx 
로그인 후 복사

log 명령어를 사용하면 개발자가 쉽게 컨테이너의 실시간 출력 정보를 보고 문제를 빠르게 판단할 수 있는데, 이 방법은 컨테이너에 적합하다. 단일 호스트에서는 컨테이너의 크기가 커지면 수동으로 로그를 보기가 어려워지기 때문에 로그를 자동으로 수집하고 분석하려면 로그 수집 도구를 사용해야 합니다.

3. 로그 수집 및 분석에 Logstash를 사용하세요

Logstash는 로그 수집, 필터링, 변환 및 전송을 위한 오픈 소스 도구입니다. 데이터는 입력 플러그인을 통해 수집되고 필터에 의해 처리 및 변환된 후 출력됩니다. 플러그인이 데이터를 처리합니다. 데이터는 Elasticsearch, Kafka, Amazon S3 등과 같은 대상으로 전송됩니다. Docker 컨테이너의 로그 수집에서 Logstash를 도구로 사용하여 로그를 수집하고 분석할 수 있습니다. 다음은 로그 수집 및 분석을 위해 Logstash를 사용하는 예입니다.

1. Logstash 설치

공식 홈페이지에서 Logstash를 다운로드한 후 압축을 풀어서 사용하세요. Logstash를 시작하는 명령은 다음과 같습니다.

cd logstash-7.15.1/bin
./logstash -f logstash.conf
로그인 후 복사

2. Logstash 구성

Logstash를 컨테이너의 로그 수집 도구로 사용하려면 Logstash에서 입력 플러그인과 출력 플러그인을 구성해야 합니다. 다음은 logstash.conf 구성 파일의 예입니다.

input {
  docker {
    endpoint => "unix:///var/run/docker.sock"
    container_id => "ALL"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => "localhost:9200"
  }
  stdout {
    codec => "json_lines"
  }
}
로그인 후 복사

위 구성 파일은 모든 도커 컨테이너에서 로그 정보를 수집하고 grok 필터를 통해 데이터를 필터링 및 구문 분석한 후 최종적으로 처리된 데이터를 엘라스틱서치.

4. 데이터 인덱싱 및 저장에 Elasticsearch를 사용하세요

Elasticsearch는 다양한 유형의 문서를 검색하는 데 사용할 수 있는 분산 오픈 소스 검색 엔진입니다. Docker 컨테이너의 로그 수집에서는 Elasticsearch를 데이터의 인덱스 및 저장소로 사용합니다. 다음은 데이터 인덱싱 및 저장을 위해 Elasticsearch를 사용하는 예입니다.

1. Elasticsearch 설치

공식 홈페이지에서 Elasticsearch를 다운로드한 후 압축을 풀어 사용하세요. Elasticsearch를 시작하는 명령은 다음과 같습니다.

cd elasticsearch-7.15.1/bin
./elasticsearch
로그인 후 복사

2. Elasticsearch 구성

elasticsearch.yml 파일을 수정하여 ES 클러스터의 이름과 노드 이름을 구성합니다. 다음은 간단한 elasticsearch.yml 구성 파일 예입니다.

cluster.name: docker-cluster
node.name: es-node1
network.host: 0.0.0.0
로그인 후 복사

위 구성은 노드 이름이 es-node1이고 ES 서비스가 사용 가능한 모든 네트워크 인터페이스에 바인딩된 docker-cluster라는 클러스터를 생성한다는 의미입니다.

3. 인덱스 생성

Elasticsearch에서는 먼저 데이터에 대한 인덱스를 생성하고 데이터의 필드를 지정해야 합니다. 샘플 코드는 다음과 같습니다.

PUT /logstash-test
{
  "mappings": {
    "properties": {
      "host": {
        "type": "keyword"
      },
      "message": {
        "type": "text"
      },
      "path": {
        "type": "text"
      },
      "verb": {
        "type": "keyword"
      }
    }
  }
}
로그인 후 복사

위 코드는 Elasticsearch에서 "logstash-test"라는 인덱스를 생성하고 인덱스에 포함되는 필드와 필드 유형을 정의합니다.

5. 데이터 시각화 표시를 위해 Kibana 사용

Kibana는 Elasticsearch에서 얻은 데이터를 표시하는 데 사용할 수 있는 오픈 소스 데이터 시각화 도구입니다. Docker 컨테이너의 로그 수집 프로세스 중에 데이터 시각화를 위해 Kibana를 사용합니다. 다음은 데이터 시각화 표시를 위해 Kibana를 사용하는 예입니다.

1. Kibana 설치

공식 홈페이지에서 Kibana를 다운로드한 후 압축을 풀어 사용하세요. Kibana를 시작하는 명령은 다음과 같습니다:

cd kibana-7.15.1/bin
./kibana
로그인 후 복사

2. 인덱스 템플릿 설정

Kibana에서는 인덱스 템플릿을 설정해야 합니다. 인덱스 템플릿에는 데이터 필드 정의와 쿼리 분석 정보가 포함되어 있습니다. 샘플 코드는 다음과 같습니다.

PUT _index_template/logstash-template
{
  "index_patterns": ["logstash-*"],
  "template": {
    "mappings": {
      "properties": {
        "@timestamp": { "type": "date" },
        "@version": { "type": "keyword" },
        "message": { "type": "text" },
        "path": { "type": "text" }
      }
    }
  }
}
로그인 후 복사

위 코드는 "logstash-template"이라는 이름의 인덱스 템플릿을 생성하고 이름이 "logstash-*"로 시작하는 인덱스에 적용하는 것을 의미합니다.

3. 데이터 시각화

Kibana의 플러그인 패널에서 시각적 템플릿을 설정하고 관리하도록 선택할 수 있습니다. 패널을 통해 꺾은선형 차트, 막대형 차트, 파이 차트 등 다양한 형태의 시각적 차트를 쉽게 생성할 수 있습니다.

요약하자면, 이 글에서는 컨테이너 로그 분석 및 예외 모니터링을 위해 Docker를 사용하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. Docker 자체에서는 컨테이너의 로그를 볼 수 있는 log 명령을 제공하지만, 컨테이너 규모가 커질수록 로그를 수동으로 보기가 더 어려워집니다. Logstash, Elasticsearch, Kibana 등의 도구를 사용하면 컨테이너 로그를 자동으로 수집 및 분석하고 컨테이너의 실행 상태를 표시할 수 있어 애플리케이션 운영 및 유지 관리, 오류 처리에 매우 유용합니다.

위 내용은 컨테이너 로그 분석 및 예외 모니터링을 위해 Docker를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? Mar 05, 2025 pm 05:57 PM

Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Apr 01, 2025 pm 03:06 PM

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

Dockerfile에서 여러 서비스를 효율적으로 시작하는 방법은 무엇입니까? Dockerfile에서 여러 서비스를 효율적으로 시작하는 방법은 무엇입니까? Apr 01, 2025 pm 02:15 PM

Dockerfile에서 CMD 명령의 효율적인 사용에 대해 많은 새로운 Docker 사용자가 CMD를 사용하고 있습니다 ...

Zen Tao 버전 17.8에서 버전 18.1에서 업그레이드 할 때 어떤 종류의 소스 코드 설치 패키지 버전을 선택해야합니까? Zen Tao 버전 17.8에서 버전 18.1에서 업그레이드 할 때 어떤 종류의 소스 코드 설치 패키지 버전을 선택해야합니까? Apr 01, 2025 pm 02:21 PM

문제 소개 : Docker를 사용하여 배포 된 Zen 프로젝트에서 사용자는 종종 버전 업그레이드 문제에 직면합니다. 이 기사는 Zen 버전 17.8에서 얻는 방법에 대해 자세히 설명합니다.

Docker를 사용한 Centos Containerization : 응용 프로그램 배포 및 관리 Docker를 사용한 Centos Containerization : 응용 프로그램 배포 및 관리 Apr 03, 2025 am 12:08 AM

Docker를 사용하여 Contorize를 사용하여 Centos의 응용 프로그램을 배포하고 관리하면 다음 단계를 통해 달성 할 수 있습니다. 1. Docker 설치, YUM 명령을 사용하여 Docker 서비스를 설치하고 시작하십시오. 2. Docker 이미지와 컨테이너를 관리하고 DockerHub를 통해 이미지를 얻고 DockerFile을 사용하여 이미지를 사용자 정의하십시오. 3. DockerCompose를 사용하여 멀티 컨테이너 응용 프로그램을 관리하고 YAML 파일을 통해 서비스를 정의하십시오. 4. 응용 프로그램을 배포하고 DockerPull 및 DockErrun 명령을 사용하여 DockerHub에서 컨테이너를 당기고 실행하십시오. 5. Docker 네트워크 및 볼륨을 사용하여 고급 관리 및 복잡한 응용 프로그램을 배포하십시오. 이 단계를 통해 D를 최대한 활용할 수 있습니다.

Docker는 LNMP 환경을 구축합니다. 단일 Dockerfile 또는 Docker가 더 나은가? Docker는 LNMP 환경을 구축합니다. 단일 Dockerfile 또는 Docker가 더 나은가? Apr 01, 2025 pm 02:09 PM

Dockerfile LNMP 환경 학습을위한 Dockerfile 모범 사례 Docker 동안 많은 개발자가 자체 LNMP (Linux, Nginx, MySQL, PHP)를 구축하려고합니다.

Docker 인터뷰 질문 : Ace Your DevOps 엔지니어링 인터뷰 Docker 인터뷰 질문 : Ace Your DevOps 엔지니어링 인터뷰 Apr 06, 2025 am 12:01 AM

Docker는 DevOps 엔지니어에게 필수 기술입니다. 1. Docker는 포장 애플리케이션 및 컨테이너에 대한 종속성을 통해 격리 및 휴대 성을 달성하는 오픈 소스 컨테이너화 플랫폼입니다. 2. Docker는 네임 스페이스, 제어 그룹 및 연합 파일 시스템과 함께 작동합니다. 3. 기본 사용에는 컨테이너 생성, 실행 및 관리가 포함됩니다. 4. 고급 사용법에는 DockerCompose를 사용하여 다중 컨테이너 응용 프로그램을 관리하는 것이 포함됩니다. 5. 일반적인 오류에는 컨테이너 고장, 포트 매핑 문제 및 데이터 지속성 문제가 포함됩니다. 디버깅 기술에는 로그보기, 컨테이너 입력 및 자세한 정보보기가 포함됩니다. 6. 성능 최적화 및 모범 사례에는 이미지 최적화, 리소스 제약 조건, 네트워크 최적화 및 Dockerfile 사용을위한 모범 사례가 포함됩니다.

Docker와의 YII : 응용 프로그램 컨테이너화 및 배포 Docker와의 YII : 응용 프로그램 컨테이너화 및 배포 Apr 02, 2025 pm 02:13 PM

Docker를 사용하여 YII 애플리케이션을 컨테이너화하고 배포하는 단계에는 다음이 포함됩니다. 1. Dockerfile을 작성하고 이미지 빌딩 프로세스를 정의합니다. 2. DockerCompose를 사용하여 YII 응용 프로그램 및 MySQL 데이터베이스를 시작하십시오. 3. 이미지 크기 및 성능을 최적화하십시오. 여기에는 특정 기술 운영뿐만 아니라 효율적이고 신뢰할 수있는 배포를 보장하기 위해 Dockerfile의 작업 원칙과 모범 사례를 이해하는 것도 포함됩니다.

See all articles