>  기사  >  운영 및 유지보수  >  Linux에서 컨테이너 로그 관리를 구성하는 방법

Linux에서 컨테이너 로그 관리를 구성하는 방법

王林
王林원래의
2023-07-07 21:42:05859검색

Linux에서 컨테이너 로그 관리를 구성하는 방법

소개:
컨테이너 기술이 지속적으로 발전함에 따라 점점 더 많은 애플리케이션이 컨테이너에 배포됩니다. 컨테이너의 특징 중 하나는 경량이라는 점이지만 이로 인해 컨테이너 로그 관리에 어려움을 겪기도 합니다. 이 문서에서는 로그 수집, 저장 및 분석을 수행하기 위해 Linux에서 컨테이너 로그 관리를 구성하는 방법을 소개합니다.

1. Docker 설치
먼저 Linux에 Docker를 설치해야 합니다. Docker는 애플리케이션을 신속하게 구축, 패키징 및 배포하는 데 도움이 되는 널리 사용되는 컨테이너화 플랫폼입니다.

  1. Docker 설치
    Docker를 설치하려면 터미널에서 다음 명령을 실행하세요.
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. Docker 시작
    설치가 완료된 후 다음 명령을 사용하여 Docker 서비스를 시작하세요.
$ sudo systemctl start docker

이제 설치가 완료되었습니다. Docker를 사용하여 컨테이너 로그 관리 구성을 시작할 수 있습니다.

2. 컨테이너 로그 드라이버 구성
기본적으로 Docker는 json-file을 기본 로그 드라이버로 사용합니다. 그러나 프로덕션 환경의 경우 Elasticsearch, Fluentd 등과 같은 보다 강력한 로그 관리 도구가 필요할 수 있습니다.

  1. Docker 서비스 중지
    로그 드라이버를 변경하기 전에 먼저 Docker 서비스를 중지해야 합니다.
$ sudo systemctl stop docker
  1. 로그 드라이버 구성
    Docker 구성 파일을 편집하고 "/etc/docker/daemon.json"을 수정합니다. " 파일에 다음 내용을 추가합니다.
{
  "log-driver": "fluentd",
  "log-opts": {
    "fluentd-address": "192.168.1.100:24224"
  }
}

여기서 fluentd-address는 Fluentd 서버의 IP 주소와 포트입니다.

  1. Docker 다시 시작
    구성을 업데이트한 후 변경 사항을 적용하려면 Docker 서비스를 다시 시작하세요.
$ sudo systemctl start docker

이제 컨테이너의 로그는 Fluentd를 통해 수집되며 저장을 위해 Elasticsearch와 같은 도구로 보낼 수 있습니다. 분석.

3. Fluentd 구성
컨테이너의 로그를 Fluentd로 전송하려면 Fluentd 서버에서 해당 구성을 수행해야 합니다.

  1. Fluentd 설치
    Fluentd 서버에서 다음 명령을 실행하여 Fluentd를 설치합니다.
$ curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent3.sh | sh
  1. Fluentd 구성
    Fluentd 구성 파일을 편집하고 "/etc/td-agent/td-agent.conf" 파일을 수정합니다. 그리고 다음 내용을 추가하세요.
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match docker.**>
  @type elasticsearch
  host 192.168.1.200
  port 9200
  index_name fluentd
  type_name docker
</match>

여기서, 호스트와 포트는 Elasticsearch 서버의 IP 주소와 포트입니다.

  1. Restart Fluentd
    구성을 업데이트한 후 변경 사항을 적용하려면 Fluentd 서비스를 다시 시작하세요.
$ sudo systemctl restart td-agent

이제 Fluentd는 컨테이너에서 로그를 수신할 준비가 되었습니다.

4. 테스트 로그 수집
구성이 효과적인지 테스트하기 위해 간단한 Hello World 애플리케이션을 생성하고 이를 Docker 이미지로 패키징합니다.

  1. 애플리케이션 생성
    터미널에서 다음 명령을 실행하여 "app.py"라는 Python 애플리케이션을 생성합니다.
$ echo 'print("Hello World!")' > app.py
  1. Create Dockerfile
    다음 콘텐츠가 포함된 동일한 디렉터리에 "Dockerfile"이라는 파일을 생성합니다.
FROM python:3
COPY app.py .
CMD [ "python", "./app.py" ]
  1. 이미지 빌드
    도커 이미지를 빌드하려면 터미널에서 다음 명령을 실행하세요.
$ docker build -t myapp .
  1. 컨테이너 실행
    다음 명령을 실행하여 컨테이너를 시작하고 컨테이너에서 로그를 받았는지 확인하세요. Fluentd 서비스:
$ docker run myapp

모든 것이 올바르게 구성되면 Fluentd 서버에 "Hello World!"와 유사한 로그 메시지가 표시됩니다.

요약:
위 단계를 통해 Linux에서 컨테이너 로그 관리를 성공적으로 구성했습니다. Fluentd 및 Elasticsearch와 같은 도구를 사용하면 컨테이너에서 로그를 쉽게 수집, 저장 및 분석하여 애플리케이션을 더 효과적으로 모니터링하고 유지 관리할 수 있습니다. 이 기사가 Linux에서 컨테이너 로그 관리를 구성하는 데 도움이 되기를 바랍니다.

참조 링크:

  • Docker 공식 문서: https://docs.docker.com/
  • Fluentd 공식 문서: https://www.fluentd.org/
  • Elasticsearch 공식 문서: https://www. elastic.co/guide/en/elasticsearch/reference/current/index.html

위 내용은 Linux에서 컨테이너 로그 관리를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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