Linux용 인프라 모니터링 에이전트는 기본적으로 컨테이너 환경을 지원합니다 . 컨테이너 OS를 실행 중이거나 에이전트를 컨테이너로 배포해야 하는 제한 사항이 있는 경우 인프라 모니터링 에이전트의 컨테이너화된 버전을 실행할 수 있습니다. 이를 통해 컨테이너 자체와 기본 호스트에 대한 메트릭을 모니터링할 수 있습니다.
커스텀(권장) 또는 기본 설정을 사용하면 인프라 에이전트를 컨테이너 환경 내에서 실행할 수 있습니다. 호스트는 컨테이너화된 에이전트이든, 컨테이너화되지 않은 버전이든, 한 번에 하나의 에이전트 인스턴스만 실행할 수 있습니다.
Linux용 인프라 모니터링 에이전트를 사용해 보고 싶으신가요? 지금 뉴렐릭의 무료 계정을 신청하십시오! 신용카드는 필요하지 않습니다.
필요한 사항
인프라 에이전트의 컨테이너화된 버전에는 Docker 1.12 이상이 필요합니다.
버전 1.42부터 인프라 에이전트는 containerd
를 지원하므로 Dockershim 또는 기타 containerd
기반 솔루션에 대한 지원을 제거한 쿠버네티스 v1.24+에서 사용할 수 있습니다. containerd
및 dockerd
런타임 소켓을 모두 사용할 수 있는 경우 인프라 에이전트는 containerd
런타임 소켓으로 작동합니다. 컨테이너는 인프라 에이전트에서 지원하는 Linux 배포 및 버전에서 실행되어야 합니다. 컨테이너 이미지는 AMD64 및 ARM64 아키텍처에서 사용 가능하고 지원됩니다.
로그 전달자는 컨테이너화된 에이전트에 포함되어 있지 않습니다. 모든 기능을 제공하는 기본 호스트에 에이전트를 설치하는 것이 좋습니다.
커스텀 설정(권장)
다음은 Linux에서 커스텀 Docker 이미지를 생성하는 기본적인 방법입니다. 이를 통해 인프라 에이전트를 기저 호스트를 모니터링할 수 있는 컨테이너로 배포할 수 있습니다.
권장 사항: newrelic/infrastructure
이미지를 확장하고 고유한 newrelic-infra.yml
에이전트 구성 파일을 사용합니다. 이미지가 빌드되면 추가 시작 시간 설정을 제공하지 않고도 컨테이너를 쉽게 스핀업할 수 있습니다. Docker에서 환경 변수를 사용해 비밀을 제공하면 안됩니다.
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 .required run flags를 사용하여 빌드한 이미지에서 컨테이너를 실행합니다.
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에서 데이터를 보는 방법은 다음 단계를 참조하십시오.
Docker 작성
구성 파일을 저장할 폴더를 만듭니다.
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에서 데이터를 보는 방법은 다음 단계를 참조하십시오.
기본 설정
기본 뉴렐릭 인프라 이미지와 함께 기본 설정을 사용하려면:
Docker CLI
required run flags로 컨테이너를 실행합니다.
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 작성
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에서 Docker를 사용할 때 필요합니다. 이를 통해 에이전트는 컨테이너 메트릭을 수집할 수 있습니다. Docker 엔진 API v1.41 부터 사용할 수 있습니다.
권한 | 설명 |
---|---|
| 컨테이너의 네트워크 네임스페이스를 호스트의 네트워크 네임스페이스로 설정합니다. 이를 통해 에이전트는 호스트에 대한 네트워크 메트릭을 수집할 수 있습니다. |
| Bind는 호스트의 루트 볼륨을 컨테이너에 마운트합니다. 호스트의 루트에 대한 이러한 읽기 전용 액세스를 통해 에이전트는 호스트에서 인벤토리 데이터는 물론 프로세스 및 스토리지 메트릭을 수집할 수 있습니다. |
| 시스템 프로세스를 추적하는 Linux 기능을 추가합니다. 이를 통해 에이전트는 호스트에서 실행 중인 프로세스에 대한 데이터를 수집할 수 있습니다. 여기에서 보다 자세한 내용을 확인할 수 있습니다. |
| |
| |
| |
| Bind는 호스트의 Docker 데몬 소켓을 컨테이너에 마운트합니다. 이를 통해 에이전트는 Docker 데몬 소켓을 통해 Engine API에 연결하여 호스트의 컨테이너 데이터를 수집할 수 있습니다. |
이 문서가 설치하는데 도움이 되셨나요?
설치 후 다음 단계
설치가 완료된 후의 단계는 다음 단계를 참조하십시오.
수집된 인벤토리
인벤토리는 인프라 에이전트에 내장된 데이터 수집기에서 수집됩니다. 인프라 에이전트는 컨테이너로 실행되는 Linux 시스템을 위해 이 데이터를 수집합니다.
Category | 소스 | 데이터 수집에 사용된 파일 |
---|---|---|
|
| 에이전트의 전체 구성 파일 |
|
|
컨테이너 데이터
인프라 에이전트가 Docker 컨테이너에서 실행되면 인프라 에이전트가 호스트에서 기본적으로 실행할 때 수집할 수 있는 것과 동일한 호스트 컴퓨트 데이터와 이벤트 데이터를 수집할 수 있습니다. 보다 자세한 내용은 Docker 컨테이너 데이터를 확인하는 방법에 대한 문서를 참조하십시오.
컨테이너화된 에이전트 이미지
컨테이너화된 에이전트 이미지는 Alpine 기본 이미지에서 빌드됩니다.
Alpine은 버전 0.0.55부터 기본 이미지로 사용됩니다. 이 이미지를 latest
태그가 가리킵니다. 이전 버전에서는 CentOS 7을 기본 이미지로 사용했습니다.
소스 코드 확인
이 통합은 오픈소스 소프트웨어입니다.소스 코드를 탐색하고 개선 사항을 보내거나 각자의 포크를 만들어 빌드할 수 있습니다.