Linux용 인프라 에이전트는 기본적으로 컨테이너 환경을 지원합니다 . 컨테이너 OS를 실행 중이거나 에이전트를 컨테이너로 배포, 배포해야 하는 제한 사항이 있는 경우 컨테이너화된 버전의 배포 에이전트를 실행할 수 있습니다. 이는 기본 호스트뿐만 아니라 컨테이너 자체에 대한 모니터 지표일 수 있습니다.
사용자 지정(권장) 또는 기본 설정 을 사용하면 인프라 에이전트를 컨테이너 환경 내에서 실행할 수 있습니다. 컨테이너화된 에이전트이든 컨테이너화되지 않은 버전이든 호스트는 한 번에 하나의 에이전트 인스턴스만 실행할 수 있습니다.
필요한 것
인프라 에이전트의 컨테이너화된 버전에는 Docker 1.12 이상이 필요합니다.
버전 1.42부터 인프라 에이전트는 containerd
를 지원하므로 Dockershim 또는 기타 containerd
기반 솔루션에 대한 지원을 제거한 쿠버네티스 v1.24+에서 사용할 수 있습니다. containerd
및 dockerd
런타임 소켓을 모두 사용할 수 있는 경우 인프라 에이전트는 containerd
런타임 소켓으로 작동합니다. 컨테이너는 인프라 에이전트에서 지원하는 Linux 배포 및 버전에서 실행되어야 합니다. 컨테이너 이미지는 AMD64 및 ARM64 아키텍처에서 사용 가능하고 지원됩니다.
로그 전달자는 컨테이너화된 에이전트에 포함되어 있지 않습니다. 모든 기능을 제공하는 기본 호스트에 에이전트를 설치하는 것이 좋습니다.
사용자 지정 설정(권장)
다음은 Linux에서 사용자 지정 Docker 이미지를 만들기 위한 기본 지침입니다. 이를 통해 기반 호스트를 모니터링할 수 있는 컨테이너로 인프라 에이전트를 배포할 수 있습니다.
권장 사항: newrelic/infrastructure
이미지를 확장하고 자체 newrelic-infra.yml
에이전트 구성 파일을 사용하세요. 일단 이미지가 구축되면 추가 설치 시간 설정을 제공하지 않고도 컨테이너를 쉽게 시작할 수 있습니다. docker 와 함께 환경 변수를 사용하여 비밀을 제공하지 마세요.
도커 CLI
뉴렐릭 을 사용하여
newrelic-infra.yml
에이전트 구성 파일을 생성합니다. 구성 옵션 설명은 구성 설정을 참조하세요.license_key: YOUR_LICENSE_KEYnewrelic/infrastructure
이미지를 확장하는Dockerfile
을 만들고 구성을/etc/newrelic-infra.yml
에 추가합니다.FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.yml이미지를 빌드하고 태그를 지정합니다.
bash$docker build -t YOUR_IMAGE_NAME .필수 실행 플래그 를 사용하여 빌드한 이미지에서 컨테이너를 실행합니다.
bash$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_NAMEUI에서 데이터를 보는 방법과 같은 잠재적인 다음 단계는 다음 단계를 참조하세요 .
도커 작성
구성 파일을 저장할 폴더를 만듭니다.
bash$mkdir ~/newrelic-infra-setup디렉토리를 방금 생성한 디렉토리로 변경하십시오.
bash$cd ~/newrelic-infra-setup뉴렐릭 을 사용하여
newrelic-infra.yml
에이전트 구성 파일을 생성합니다. 구성 옵션 설명은 구성 설정을 참조하세요.bash$echo "license_key: YOUR_LICENSE_KEY" > newrelic-infra.ymlnewrelic/infrastructure
이미지를 확장하는newrelic-infra.dockerfile
을 만들고 구성을/etc/newrelic-infra.yml
에 추가합니다.bash$touch newrelic-infra.dockerfilebash$vim newrelic-infra.dockerfile # you can use any text editor파일에 다음 내용을 넣습니다.
FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.ymldocker-compose.yaml
생성:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editor파일에 다음 내용을 넣습니다.
version: '3'services:agent:container_name: newrelic-infrabuild:context: .dockerfile: newrelic-infra.dockerfilecap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"restart: unless-stoppeddocker-compose
빌드 및 시작:bash$docker-compose -f docker-compose.yaml up -dUI에서 데이터를 보는 방법과 같은 잠재적인 다음 단계는 다음 단계를 참조하세요 .
기본 설정
기본 New Relic 인프라 이미지와 함께 기본 설정을 사용하려면:
도커 CLI
필요한 실행 플래그 로 컨테이너를 실행합니다.
bash$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:latestUI에서 데이터를 보는 방법과 같은 잠재적인 다음 단계는 다음 단계를 참조하세요 .
도커 작성
docker-compose.yaml
생성:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editor파일에 다음 내용을 넣습니다.
version: '3'services:agent:container_name: newrelic-infraimage: newrelic/infrastructure:latestcap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"environment:NRIA_LICENSE_KEY: "YOUR_LICENSE_KEY"restart: unless-stoppeddocker-compose
빌드 및 시작:bash$docker-compose -f docker-compose.yaml up -dUI에서 데이터를 보는 방법과 같은 잠재적인 다음 단계는 다음 단계를 참조하세요 .
필요한 컨테이너 권한
Linux 네임스페이스를 통한 호스트 및 기타 컨테이너와의 리소스 격리로 인해 컨테이너는 기본적으로 기본 호스트 리소스에 대한 보기 및 제어가 매우 제한적입니다. 이러한 추가 권한이 없으면 인프라 에이전트는 호스트와 해당 컨테이너를 모니터링할 수 없습니다.
인프라 에이전트는 시스템 파일 및 시스템 호출을 사용하여 호스트에 대한 데이터를 수집합니다. 인프라 에이전트가 데이터를 수집하는 방법에 대한 자세한 내용은 인프라 모니터링 및 보안 에 대한 설명서를 참조하십시오. 필요한 권한은 다음과 같습니다.
기본적으로 개인용이므로 cgroup v2에서 도커를 사용할 때 필요합니다. 이를 통해 에이전트는 컨테이너 메트릭을 수집할 수 있습니다. 도커 엔진 API v1.41 부터 사용 가능합니다.
특권 | 설명 |
---|---|
| 컨테이너의 네트워크 네임스페이스를 호스트의 네트워크 네임스페이스로 설정합니다. 이를 통해 에이전트는 호스트에 대한 네트워크 메트릭을 수집할 수 있습니다. |
| Bind는 호스트의 루트 볼륨을 컨테이너에 마운트합니다. 호스트 루트에 대한 이 읽기 전용 액세스를 통해 에이전트는 호스트에서 프로세스 및 스토리지 메트릭과 인벤토리 데이터를 수집할 수 있습니다. |
| 시스템 프로세스를 추적하는 Linux 기능을 추가합니다. 이를 통해 에이전트는 호스트에서 실행 중인 프로세스에 대한 데이터를 수집할 수 있습니다. 여기에서 더 읽어보세요. |
| |
| |
| |
| Bind는 호스트의 Docker 데몬 소켓을 컨테이너에 마운트합니다. 이를 통해 에이전트는 Docker 데몬 소켓을 통해 Engine API에 연결하여 호스트의 컨테이너 데이터를 수집할 수 있습니다. |
이 문서가 설치하는데 도움이 되셨나요?
설치 후 다음 단계
설치가 완료된 후의 다음 단계는 다음 단계를 참조하세요 .
수집된 인벤토리
인벤토리 는 인프라 에이전트의 기본 제공 데이터 수집기에서 수집됩니다. 인프라 에이전트는 컨테이너로 실행되는 Linux 시스템에 대해 이 데이터를 수집합니다.
범주 | 원천 | 다음을 사용하여 수집된 데이터 |
---|---|---|
|
| 에이전트의 전체 구성 파일 |
|
|
컨테이너 데이터
인프라 에이전트가 Docker 컨테이너에서 실행되면 인프라 에이전트가 호스트에서 기본적으로 실행할 때 수집할 수 있는 것과 동일한 호스트 컴퓨트 데이터와 이벤트 데이터를 수집할 수 있습니다. 보다 자세한 내용은 Docker 컨테이너 데이터를 확인하는 방법에 대한 문서를 참조하십시오.
컨테이너화된 에이전트 이미지
컨테이너화된 에이전트 이미지는 알파인 기본 이미지에서 빌드됩니다.
소스 코드 확인
이 통합은 오픈소스 소프트웨어입니다.소스 코드를 탐색하고 개선 사항을 보내거나 각자의 포크를 만들어 빌드할 수 있습니다.