RSS 피드 구독하기

이 문서에서는 Performance Co-Pilot(PCP) 툴에 대해 알아보고, 이를 활용하여 Red Hat Ansible Automation Platform을 위한 시스템 및 애플리케이션 모니터링을 구현하는 방법을 알아봅니다.

Performance Co-Pilot(PCP)이란?

PCP는 Red Hat에서 개발한 오픈소스 성능 모니터링 및 분석 프레임워크입니다. 다양한 시스템, 서비스, 애플리케이션의 성능 메트릭을 모니터링하고 검색 및 분석할 수 있는 툴, 라이브러리, 서비스 제품군을 제공합니다. PCP는 확장성을 고려하여 설계되었으므로 단일 서버에서 대규모 분산 시스템 네트워크에 이르기까지 모든 것을 실시간으로 모니터링할 수 있습니다.

PCP의 주요 기능:

  1. 확장성: PCP는 개별 시스템과 분산된 환경을 모두 모니터링하는 데 사용할 수 있습니다.
  2. 멀티 소스 데이터 수집: 운영 체제(OS), 데이터베이스, 네트워크 인터페이스, 사용자 정의 애플리케이션 등 여러 소스에서 데이터를 수집합니다.
  3. 확장성: 사용자 정의 에이전트 또는 확장 프로그램을 개발하여 새로운 메트릭을 추가할 수 있습니다.
  4. 저장 및 검색: PCP는 과거 분석을 위해 성능 데이터를 저장할 수 있으며 실시간 데이터 검색을 지원합니다.
  5. 실시간 모니터링: 실시간 메트릭을 제공하여 실시간 성능 분석을 지원합니다.
  6. 그래픽 및 커맨드라인 인터페이스: PCP에는 모니터링 및 성능 데이터 분석을 위한 그래픽 툴(예: pmchart)과 커맨드라인 툴(예: pminfo, pmval, pmlogsummary)이 모두 포함되어 있습니다.

일반적인 구성 요소:

  • PMCD(Performance Metrics Collector Daemon): 에이전트에서 메트릭을 수집하는 중앙 데몬(daemon)
  • PMNS(Performance Metrics Name Space): 성능 메트릭을 구성하는 계층적 네임스페이스
  • PMIE(Performance Metrics Inference Engine): 실시간 메트릭 임곗값에 기반한 경고나 조치를 생성하는 툴
  • PMLogger: 나중에 분석하기 위해 성능 메트릭을 기록하는 용도
  • PMProxy: 프록시 프로토콜 역할을 하여 PCP가 PMProxy를 통해 하나 이상의 PMCD 인스턴스에 연결하도록 클라이언트를 모니터링할 수 있음

활용 사례:

  • 시스템 성능 분석: PCP는 CPU, 메모리, 디스크 I/O, 네트워크 사용량 및 기타 시스템 메트릭을 모니터링할 수 있습니다.
  • 애플리케이션 모니터링: PCP는 특정 애플리케이션 또는 서비스를 모니터링하여 리소스 소비 및 성능 동향을 파악할 수 있습니다.
  • 이력 데이터 분석: 이력 추세 분석 또는 시스템 장애 후 포렌식 분석을 위해 시간 경과에 따른 성능 데이터를 저장할 수 있습니다.

PCP를 사용하여 Ansible Automation Platform을 모니터링해야 하는 이유

PCP를 사용하여 Ansible Automation Platform을 모니터링하는 것은 다음과 같은 몇 가지 이유로 중요합니다.

  1. 성능 인사이트: PCP는 Ansible Automation Platform의 성능에 대한 자세한 메트릭과 인사이트를 제공합니다. 이러한 인사이트는 장애물을 식별하고 리소스 사용을 최적화하는 데 유용합니다.
  2. 사전 예방적 문제 감지: 성능 메트릭을 지속적으로 모니터링하여 잠재적인 문제가 심각한 문제로 확대되기 전에 감지할 수 있으므로 사전 예방적 문제 해결이 가능합니다.
  3. 리소스 관리: 리소스 활용도(CPU, 메모리, 디스크 I/O)를 이해하면 효과적인 용량 계획에 도움이 되며 리소스 경합 없이 자동화 환경을 원활하게 실행할 수 있습니다.
  4. 확장성: 자동화를 확장해야 하는 경우 모니터링을 통해 Ansible Automation Platform 인프라를 확장할 시기와 방법을 평가하여 증가한 워크로드를 성능 저하 없이 처리할 수 있습니다.
  5. 컴플라이언스 및 감사: 모니터링 툴은 자동화 활동 및 리소스 사용에 대한 명확한 감사 추적을 제공하여 내부 및 외부 규정에 대한 컴플라이언스를 유지하는 데 도움이 될 수 있습니다.
  6. 다른 툴과 통합: PCP는 다른 모니터링 및 경고 시스템과 통합하여 인프라에 대한 통합 보기를 제공하고 더 나은 인시던트 대응을 지원합니다.
  7. 사용자 경험: 자동화 태스크를 효율적으로 실행하면 배포 및 구성 관리를 위해 Ansible Automation Platform을 사용하는 팀의 전반적인 사용자 경험이 개선됩니다.
  8. 이력 데이터 분석: PCP는 과거 성능 데이터를 유지하므로 시간 경과에 따른 추세를 분석할 수 있습니다. 향후 인프라 변경 또는 최적화에 관해 정보에 근거한 의사 결정을 내리려면 필수적인 이점입니다.

요약하면, PCP를 사용하여 Ansible Automation Platform을 모니터링하면 성능, 신뢰성, 효율성이 향상되어 자동화를 위한 노력이 조직의 목표를 이루는 데 기여할 수 있습니다.

PCP를 사용하여 Ansible Automation Platform의 모니터링 설정

현재 Ansible Automation Platform의 모니터링 설정은 가상 머신(VM)의 기존 설치와 컨테이너화된 설치 모두에서 지원됩니다. 모니터링을 활성화하려면 설정 인벤토리 파일의 [all:vars] 섹션에서 setup_monitoring 부울을 True로 할당해야 합니다. 예를 들면 다음과 같습니다.

[all:vars]
setup_monitoring = True

설치 프로그램을 실행하면 모니터링 롤이 실행되어 Ansible Automation Platform 클러스터에서 PCP를 구성합니다. 이 롤은 pcp, pmcdpmproxy를 비롯한 필수 서비스를 설치하고 활성화합니다. 기존 RPM 기반 배포에서 PCP는 DNF를 통해 설치되고 systemd를 통해 실행됩니다. 컨테이너화된 설치에서는 다른 모든 Ansible Automation Platform 구성 요소와 함께 컨테이너에서 실행됩니다. 또한 설치 프로그램은 pmcd의 데몬으로 실행되는 플러그인인 PMDA(Performance Metric Domain Agents)를 설정하여 Ansible Automation Platform 호스트에서 nginx, redis, postgresopenmetrics 등의 주요 구성 요소를 모니터링합니다.

또한 기존 설치의 경우 설치 프로그램은 게이트웨이 노드를 Ansible Automation Platform 클러스터의 모든 노드에서 PCP 메트릭을 수집하는 중앙 허브로 지정하여 메트릭을 효과적으로 보관합니다.

PCP는 포트 44322를 사용하여 메트릭을 표시합니다. 해당하는 경우 보안 그룹에서 포트 44322가 열려 있는지 확인하시기 바랍니다. 그렇지 않은 경우에도 메트릭은 PCP 커맨드라인 툴을 활용한 로컬 분석을 위해 호스트에서 로컬로 사용할 수 있지만, 외부 툴을 통한 집계는 사용할 수 없습니다.

설정이 완료되면 ssh를 통해 게이트웨이 노드에 로그인하고 다음 명령을 실행하여 PCP가 수집하는 모든 메트릭을 확인할 수 있습니다.

보관된 메트릭 검색

PCP CLI 툴을 사용하여 아카이브 파일에서 메트릭을 검색할 수 있습니다. 기존 설치에서 아카이브는 /var/log/pcp/pmlogger/에서 찾을 수 있습니다.

예를 들면 다음과 같습니다.

/var/log/pcp/pmlogger/controller.example.com/20241004.00.10

컨테이너화된 설치에서 아카이브는 /home/ansible/aap/pcp_archives에서 찾을 수 있습니다.

예를 들면 다음과 같습니다.

/home/ansible/aap/pcp_archives/controller.example.com/20241004.00.10

예시

  • 아카이브 파일 생성 시 활성화된 메트릭을 모두 나열하려면 다음 명령을 입력합니다.

    # pminfo --archive <ARCHIVE_FILE_LOCATION>
  • 아카이브 파일이 포괄하는 호스트와 기간을 보려면 다음 명령을 입력합니다.

    # pmdumplog -l <ARCHIVE_FILE_LOCATION>
  • 아카이브 파일이 포괄하는 기간에 해당하는 파티션별 디스크 쓰기를 나열하려면 다음을 입력합니다.

    # pmval --archive <ARCHIVE_FILE_LOCATION> \
    -f 1 disk.partitions.write
  • 14:00에서 14:15 사이의 기간 동안 2초 간격으로 파티션별 디스크 쓰기 작업을 나열하려면 다음을 입력합니다.

    # pmval --archive <ARCHIVE_FILE_LOCATION> \
    -d -t 2sec \
    -f 3 disk.partitions.write \
    -S @14:00 -T @14:15
  • 14:00에서 14:30 사이의 기간 동안 최소/최대의 시간과 값을 포함한 모든 성능 메트릭의 평균값을 나열하고 값을 테이블 형식으로 지정하려면 다음을 입력합니다.

    # pmlogsummary <ARCHIVE_FILE_LOCATION> \
    -HlfiImM \
    -S @14:00 \
    -T @14:30 \
    disk.partitions.write \
    mem.freemem
  • top 툴과 유사한 대화형 방식으로 아카이브에 저장된 시스템 메트릭을 14:00부터 표시하려면 다음을 입력합니다.

    # pcp --archive <ARCHIVE_FILE_LOCATION> \
    -S @14:00 \
    atop

요점

Ansible Automation Platform에 대한 모니터링은 Ansible Automation Platform이 지원하는 서비스의 신뢰성, 성능, 보안을 위해 필수적입니다. 응답 시간 지체, 서버 오류, 보안 취약점과 같은 문제를 실시간으로 감지하고 해결하여 다운타임과 사용자에게 미칠 수 있는 디스럽션을 최소화합니다. 모니터링은 트래픽, 사용량, 리소스 소비와 같은 주요 메트릭을 지속적으로 추적함으로써 플랫폼을 최적의 효율성으로 운영할 수 있도록 지원합니다.

추가 자료

product trial

Red Hat Ansible Automation Platform | Product Trial

에이전트리스 자동화 플랫폼

저자 소개

Nikhil Jain is a Principal Software Engineer with Red Hat’s Performance and Scale Engineering team who focuses on the testing, analysis and improvement of Red Hat Ansible Automation Platform products and services.
Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Virtualization icon

가상화

온프레미스와 클라우드 환경에서 워크로드를 유연하게 운영하기 위한 엔터프라이즈 가상화의 미래