• 로그인지금 시작하세요

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

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

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

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

Linux용 인프라 모니터링 에이전트를 사용해 보고 싶으십니까? 무료 로 New Relic 계정을 만드 십시오! 신용 카드가 필요하지 않습니다.

필요한 것

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

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

사용자 지정 설정(권장)

다음은 Linux에서 사용자 지정 Docker 이미지를 만들기 위한 기본 지침입니다. 이를 통해 기반 호스트를 모니터링할 수 있는 컨테이너로 인프라 에이전트를 배포할 수 있습니다.

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

도커 CLI

  1. New Relic 라이선스 키로 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. 필수 실행 플래그 를 사용하여 빌드한 이미지에서 컨테이너를 실행합니다.

    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에서 데이터를 보는 방법과 같은 잠재적인 다음 단계는 다음 단계를 참조하세요 .

도커 작성

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

    mkdir ~/newrelic-infra-setup
  2. 디렉토리를 방금 생성한 디렉토리로 변경하십시오.

    cd ~/newrelic-infra-setup
  3. New Relic 라이선스 키로 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에서 데이터를 보는 방법과 같은 잠재적인 다음 단계는 다음 단계를 참조하세요 .

기본 설정

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

도커 CLI

  1. 필요한 실행 플래그 로 컨테이너를 실행합니다.

    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에서 데이터를 보는 방법과 같은 잠재적인 다음 단계는 다음 단계를 참조하세요 .

도커 작성

  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에서 도커를 사용할 때 필요합니다. 이를 통해 에이전트는 컨테이너 메트릭을 수집할 수 있습니다. 도커 엔진 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 데몬 소켓을 통해 엔진 API에 연결하여 호스트의 컨테이너 데이터를 수집할 수 있습니다.

설치 후 다음 단계

설치가 완료된 후의 다음 단계는 다음 단계를 참조하세요 .

수집된 인벤토리

인벤토리 는 인프라 에이전트의 기본 제공 데이터 수집기에서 수집됩니다. 인프라 에이전트는 컨테이너로 실행되는 Linux 시스템에 대해 이 데이터를 수집합니다.

범주

원천

다음을 사용하여 수집된 데이터

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 컨테이너 데이터를 보는 방법에 대한 설명서를 참조하십시오.

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

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

알파인은 버전 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.