본문으로 건너뛰기

소개

1. 개요

exemone-cloud-agent는 AWS, Azure클라우드 리소스를 모니터링하는 에이전트입니다.

1.2. 주요 기능

  • AWS CloudWatch 및 Azure Monitor 기반 성능 지표 수집
  • 클라우드 계정의 리소스 목록 자동 조회 및 갱신
  • 관리형 데이터베이스의 상태·세션·SQL·대기·스토리지 등 상세 지표 수집
  • AWS CloudWatch Alarm, CloudWatch Logs, Live Tail 및 Enhanced Monitoring 데이터 수집
  • AWS Cost Explorer 기반 비용 데이터 수집
  • Receiver에서 전달된 설정 및 명령 조회 처리
  • 에이전트 상태 보고, 시간 보정, 설정 갱신 및 연결 장애 복구
  • 수집 주기, 타임아웃, DB 커넥션 풀, gRPC 메시지 크기, 로그 로테이션 설정 지원

2. 패키지

2.1. binary 패키지

  • 패키지명: exemone-cloud-agent-{version}.tar.gz
  • binary 패키지를 압축 풀면 생성되는 패키지 구조

1.3.1. conf

  • agent의 config를 설정하기 위한 파일

1.3.2. license

  • agent의 라이센스 파일

1.3.3. logs

  • agent 로그 파일이 위치합니다
    • agent.log : 기본 로그 파일
    • panic.log : panic발생시 생성되는 로그 파일

1.3.4. history.txt

  • script실행 내역을 저장합니다.

1.3.5. .env

  • install시 사용할 버전정보를 입력하는 파일입니다.

1.3.6. setup.sh, start.sh, stop.sh, version.sh

  • 에이전트 기동에 사용하는 스크립트입니다.

2.2. Container 이미지

  • Linux AMD64 및 ARM64용 컨테이너 이미지를 제공합니다.
  • 실행 바이너리는 컨테이너의 /usr/local/bin/exemone-cloud-agent에 위치합니다.
  • 기본 설정 템플릿은 /opt/exemone/configs에 포함되며, 사용자 설정과 로그는 /home/exemone 볼륨을 통해 관리합니다.
  • 컨테이너는 기본적으로 exemone 일반 사용자 권한으로 실행됩니다.

3. 동작

  1. cloud-agent가 agent_id, access_token, Receiver 주소와 실행 환경 정보를 사용해 Receiver에 등록을 요청합니다.
  2. Receiver로부터 클라우드 계정, 인증 정보, 모니터링 대상, 수집 지표 및 주기 설정을 전달받는다.
  3. 계정별로 AWS 또는 Azure 리소스 목록을 조회하고, 인스턴스별 수집 작업을 생성합니다.
  4. AWS API·CloudWatch·CloudWatch Logs·Cost Explorer, Azure Resource Manager·Azure Monitor 또는 관리형 DB 엔드포인트에서 데이터를 수집합니다.
  5. 수집 데이터와 에이전트 상태를 gRPC 스트림 및 동기 요청을 통해 Receiver로 전송합니다.
  6. 설정 변경이나 Receiver 연결 상태를 감지하면 수집 작업과 통신을 자동으로 갱신하거나 복구합니다.
정보

cloud-agent가 Receiver와 정상적으로 통신할 수 있어야 수집 작업이 시작됩니다. 또한 모니터링 대상 클라우드 계정에는 각 서비스의 리소스 조회 및 메트릭·로그 조회에 필요한 권한이 부여되어 있어야 합니다.

4. 지원 환경

4.1. 실행 환경

구분지원 범위
운영체제Linux
배포 방식Binary 패키지, Docker/OCI 호환 컨테이너
CPU 아키텍처AMD64, ARM64
빌드 기준Go 1.23.x
통신Receiver와 gRPC 통신
컨테이너 기반 이미지AMD64: Red Hat UBI 8.7, ARM64: Red Hat UBI 9.5

Go 런타임은 실행 바이너리에 포함되므로 운영 서버에 Go를 별도로 설치할 필요는 없습니다.

4.2. AWS

현재 cloud-agent의 수집 모듈은 다음 AWS 서비스를 지원합니다.

  • Amazon EC2 및 VPC
  • Amazon RDS 및 Amazon Aurora
  • Amazon ElastiCache
  • Amazon DocumentDB
  • Amazon Redshift
  • Amazon DynamoDB
  • AWS Lambda
  • Amazon S3
  • AWS Database Migration Service (DMS)
  • Amazon Elastic Container Service (ECS) [정식 모니터링 X]

부가 기능으로 CloudWatch Alarm·Logs·Enhanced Monitoring과 Cost Explorer 비용 데이터 수집을 지원합니다. 실제 수집 가능 항목은 서비스 설정, 리전, 엔진 종류, CloudWatch 지표 활성화 여부 및 IAM 권한에 따라 달라질 수 있습니다.

4.3. Microsoft Azure

현재 cloud-agent의 수집 모듈은 다음 Azure 서비스를 지원합니다.

  • Azure Virtual Machines
  • Azure Functions
  • Azure Blob Storage
  • Azure SQL Database
  • Azure Cache for Redis
  • Azure Managed Redis(구 Azure Cache for Redis Enterprise)
  • Azure Cosmos DB

실제 수집 가능 항목은 구독·리소스 그룹·리소스 공급자 설정, Azure Monitor 지표 제공 여부 및 서비스 주체에 부여된 권한에 따라 달라질 수 있습니다.

5. 참고 사항

  • 서비스별 세부 수집 데이터와 필요한 권한은 본 문서의 관련 하위 페이지를 참고합니다.
  • 패키지 구성, 지원 서비스 및 실행 환경은 버전에 따라 변경될 수 있으므로 배포 전 해당 버전의 Release Note를 함께 확인합니다.
  • 본 소개는 exemone-cloud-agent 현재 소스 코드와 배포 파이프라인을 기준으로 작성되었습니다.