• 로그인지금 시작하기

인프라 모니터링을 위한 Docker 컨테이너

Linux용 인프라 모니터링 에이전트는 기본적으로 Docker 환경을 지원합니다. 컨테이너 OS를 실행 중이거나 에이전트를 컨테이너로 배포해야 하는 제한 사항이 있는 경우 인프라 모니터링 에이전트의 컨테이너화된 버전을 실행할 수 있습니다. 이를 통해 컨테이너 자체와 기본 호스트에 대한 메트릭을 모니터링할 수 있습니다.

커스텀(권장) 또는 기본 설정을 사용하면 인프라 에이전트를 컨테이너 환경 내에서 실행할 수 있습니다. 호스트는 컨테이너화된 에이전트이든, 컨테이너화되지 않은 버전이든, 한 번에 하나의 에이전트 인스턴스만 실행할 수 있습니다.

Linux용 인프라 모니터링 에이전트를 사용해 보길 원하십니까? 지금 무료로 뉴렐릭 계정을 만드십시오! 신용카드는 필요하지 않습니다.

필요한 사항

인프라 에이전트의 컨테이너화된 버전에는 Docker 1.12 이상이 필요합니다. 컨테이너는 에이전트가 지원하는 Linux 배포 및 버전을 실행해야 합니다. 컨테이너 이미지는 AMD64 및 ARM64 아키텍처에서 사용 가능하고 지원됩니다.

로그 전달자는 컨테이너화된 에이전트에 포함되어 있지 않습니다. 모든 기능을 제공하는 기본 호스트에 에이전트를 설치하는 것이 좋습니다.

커스텀 설정(권장)

다음은 Linux에서 커스텀 Docker 이미지를 생성하는 기본적인 방법입니다. 이를 통해 인프라 에이전트를 기저 호스트를 모니터링할 수 있는 컨테이너로 배포할 수 있습니다.

권장 사항: newrelic/infrastructure 이미지를 확장하고 고유한 newrelic-infra.yml 에이전트 구성 파일을 사용합니다. 이미지가 빌드되면 추가 시작 시간 설정을 제공하지 않고도 컨테이너를 쉽게 스핀업할 수 있습니다. Docker에서 환경 변수를 사용해 비밀을 제공하면 안됩니다.

Docker CLI

  1. 뉴렐릭 라이선스 키로 newrelic-infra.yml 에이전트 구성 파일을 생성합니다. 자세한 구성 옵션 설명은 구성 설정을 참조하십시오.

    license_key: YOUR_LICENSE_KEY
  2. newrelic/infrastructure 이미지를 확장하는 Dockerfile을 만들고 구성을 /etc/newrelic-infra.yml에 추가합니다.

    FROM newrelic/infrastructure:latest
    ADD newrelic-infra.yml /etc/newrelic-infra.yml
  3. 이미지를 빌드하고 태그를 지정합니다.

    docker build -t YOUR_IMAGE_NAME .
  4. required run flags를 사용하여 빌드한 이미지에서 컨테이너를 실행합니다.

    docker run \
        -d \
        --name newrelic-infra \
        --network=host \
        --cap-add=SYS_PTRACE \
        --privileged \
        --pid=host \
        --cgroupns=host  # required on cgroup v2 \
        -v "/:/host:ro" \
        -v "/var/run/docker.sock:/var/run/docker.sock" \
        YOUR_IMAGE_NAME
  5. UI에서 데이터를 보는 방법은 다음 단계를 참조하십시오.

Docker 작성

  1. 구성 파일을 저장할 폴더를 만듭니다.

    mkdir ~/newrelic-infra-setup
  2. 디렉터리를 방금 만든 폴더로 변경합니다.

    cd ~/newrelic-infra-setup
  3. 뉴렐릭 라이선스 키로 newrelic-infra.yml 에이전트 구성 파일을 생성합니다. 자세한 구성 옵션 설명은 구성 설정을 참조하십시오.

    echo "license_key: YOUR_LICENSE_KEY" > newrelic-infra.yml
  4. newrelic/infrastructure 이미지를 확장하는 newrelic-infra.dockerfile을 만들고 구성을 /etc/newrelic-infra.yml에 추가합니다.

    touch newrelic-infra.dockerfile
    vim newrelic-infra.dockerfile #you can use any text editor
  5. 파일에 다음 내용을 넣습니다.

    FROM newrelic/infrastructure:latest
    ADD newrelic-infra.yml /etc/newrelic-infra.yml
  6. docker-compose.yaml 생성:

    touch docker-compose.yaml
    vim docker-compose.yaml #you can use any text editor

    파일에 다음 내용을 넣습니다.

    version: '3'
    services:
    agent:
    container_name: newrelic-infra
    build:
    context: .
    dockerfile: newrelic-infra.dockerfile
    cap_add:
    - SYS_PTRACE
    network_mode: host
    pid: host
    privileged: true
    volumes:
    - "/:/host:ro"
    - "/var/run/docker.sock:/var/run/docker.sock"
    restart: unless-stopped
  7. docker-compose 빌드 및 시작:

    docker-compose -f docker-compose.yaml up -d
  8. UI에서 데이터를 보는 방법은 다음 단계를 참조하십시오.

기본 설정

기본 뉴렐릭 인프라 이미지와 함께 기본 설정을 사용하려면:

Docker CLI

  1. required run flags로 컨테이너를 실행합니다.

    docker run \
       -d \
       --name newrelic-infra \
       --network=host \
       --cap-add=SYS_PTRACE \
       --privileged \
       --pid=host \
        --cgroupns=host  # required on cgroup v2 \
       -v "/:/host:ro" \
       -v "/var/run/docker.sock:/var/run/docker.sock" \
       -e NRIA_LICENSE_KEY=YOUR_LICENSE_KEY \
       newrelic/infrastructure:latest
  2. UI에서 데이터를 보는 방법은 다음 단계를 참조하십시오.

Docker 작성

  1. docker-compose.yaml 생성:

    touch docker-compose.yaml
    vim docker-compose.yaml #you can use any text editor

    파일에 다음 내용을 넣습니다.

    version: '3'
    
    services:
      agent:
        container_name: newrelic-infra
        image: newrelic/infrastructure:latest
        cap_add:
          - SYS_PTRACE
        network_mode: host
        pid: host
        privileged: true
        volumes:
          - "/:/host:ro"
          - "/var/run/docker.sock:/var/run/docker.sock"
        environment:
          NRIA_LICENSE_KEY: "YOUR_LICENSE_KEY"
        restart: unless-stopped
  2. docker-compose 빌드 및 시작:

    docker-compose -f docker-compose.yaml up -d
  3. UI에서 데이터를 보는 방법은 다음 단계를 참조하십시오.

필수 컨테이너 권한

Linux 네임스페이스를 통한 호스트와 기타 컨테이너의 리소스 격리로 인해 컨테이너는 기본적으로 기본 호스트 리소스에 대한 보기와 제어가 매우 제한적입니다. 이러한 추가 권한이 없으면 인프라 에이전트는 호스트와 컨테이너를 모니터링할 수 없습니다.

인프라 에이전트는 시스템 파일 및 시스템 호출을 사용하여 호스트에 대한 데이터를 수집합니다. 인프라 에이전트가 데이터를 수집하는 방법에 대한 보다 자세한 내용은 인프라 모니터링 및 보안 문서를 참조하십시오. 필수 권한은 다음과 같습니다.

기본적으로 비공개이므로 cgroup v2에서 Docker를 사용할 때 필요합니다. 이를 통해 에이전트는 컨테이너 메트릭을 수집할 수 있습니다. Docker 엔진 API v1.41 부터 사용할 수 있습니다.

권한

설명

--network=host

컨테이너의 네트워크 네임스페이스를 호스트의 네트워크 네임스페이스로 설정합니다. 이를 통해 에이전트는 호스트에 대한 네트워크 메트릭을 수집할 수 있습니다.

-v "/:/host:ro"

Bind는 호스트의 루트 볼륨을 컨테이너에 마운트합니다. 호스트의 루트에 대한 이러한 읽기 전용 액세스를 통해 에이전트는 호스트에서 인벤토리 데이터는 물론 프로세스 및 스토리지 메트릭을 수집할 수 있습니다.

--cap-add=SYS_PTRACE

시스템 프로세스를 추적하는 Linux 기능을 추가합니다. 이를 통해 에이전트는 호스트에서 실행 중인 프로세스에 대한 데이터를 수집할 수 있습니다. 여기에서 보다 자세한 내용을 확인할 수 있습니다.

--privileged

--pid=host

--cgroupns=host

-v "/var/run/docker.sock:/var/run/docker.sock"

Bind는 호스트의 Docker 데몬 소켓을 컨테이너에 마운트합니다. 이를 통해 에이전트는 Docker 데몬 소켓을 통해 Engine API에 연결하여 호스트의 컨테이너 데이터를 수집할 수 있습니다.

While you wait for your data to come in...

Did this doc help you install?

설치 후 다음 단계

설치가 완료된 후의 단계는 다음 단계를 참조하십시오.

수집된 인벤토리

인벤토리는 인프라 에이전트에 내장된 데이터 수집기에서 수집됩니다. 인프라 에이전트는 컨테이너로 실행되는 Linux 시스템을 위해 이 데이터를 수집합니다.

Category

소스

데이터 수집에 사용된 파일

metadata

agent_config

에이전트의 전체 구성 파일

system

uptime -s, /etc/redhat-release, /proc/cpuinfo, /etc/os-release, /proc/sys/kernel/random/boot_id, /proc/sys/kernel/osrelease, /sys/class/dmi/id/product_uuid, /sys/devices/virtual/dmi/id/sys_vendor, /sys/devices/virtual/dmi/id/product_name

컨테이너 데이터

인프라 에이전트가 Docker 컨테이너에서 실행되면 인프라 에이전트가 호스트에서 기본적으로 실행할 때 수집할 수 있는 것과 동일한 호스트 컴퓨트 데이터이벤트 데이터를 수집할 수 있습니다. 보다 자세한 내용은 Docker 컨테이너 데이터를 확인하는 방법에 대한 문서를 참조하십시오.

컨테이너화된 에이전트 이미지

컨테이너화된 에이전트 이미지는 Alpine 기본 이미지에서 빌드됩니다.

Alpine은 버전 0.0.55부터 기본 이미지로 사용됩니다. 이 이미지를 latest 태그가 가리킵니다. 이전 버전에서는 CentOS 7을 기본 이미지로 사용했습니다.

소스 코드 확인

이 통합은 오픈소스 소프트웨어입니다.소스 코드를 탐색하고 개선 사항을 보내거나 각자의 포크를 만들어 빌드할 수 있습니다.

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.