독립형 에이전트로 Cloud Monitoring 설정

Cloud Monitoring을 사용하면 애플리케이션과 인프라의 성능, 가용성, 상태를 파악할 수 있습니다. Cloud Monitoring 및 Google Cloud Observability의 다른 부분을 사용하여 VMware Engine 서비스를 대규모로 모니터링, 문제 해결, 운영할 수 있습니다.

독립형 에이전트를 사용하여 각 프라이빗 클라우드의 측정항목 전달 구성을 별도로 정의합니다. 각 프라이빗 클라우드에는 Compute Engine VM 또는 VMware VM에서 호스팅되는 별도의 에이전트가 필요합니다.

측정항목 전달을 성공적으로 사용 설정하면 Cloud Monitoring 측정항목 탐색기에서 측정항목을 확인할 수 있습니다. VMware Engine의 리소스 유형과 측정항목은 external.googleapis.com/vmware/vcenter로 시작하며 vCenter FQDN에는 네임스페이스의 일부로 태그가 지정됩니다.

시작하기 전에

이 문서의 단계에서는 먼저 사용자가 다음을 수행하는 것으로 가정합니다.

  1. Cloud Monitoring API를 사용 설정합니다.
  2. 독립형 에이전트에서 사용할 솔루션 사용자 계정을 식별하고 솔루션 사용자 계정에 안전한 비밀번호를 설정합니다.
  3. 독립형 에이전트의 호스트로 사용할 Compute Engine VM 또는 VMware VM을 만듭니다. Compute Engine VM은 모니터링할 리소스가 포함된 프라이빗 클라우드 VPC 네트워크에 피어링된 Virtual Private Cloud(VPC) 네트워크에 있어야 합니다.

    Compute Engine VM 만들기 예시는 빠른 시작: Linux VM 사용을 참조하세요. VMware VM 만들기 예시는 VMware VM 만들기를 참조하세요.

Compute Engine VM을 사용하여 독립형 에이전트를 호스팅하는 경우 Google은 사용자가 연결한 서비스 계정의 키 순환을 관리합니다. 하지만 프라이빗 클라우드에 사용되지 않은 용량이 있고 키 순환을 직접 관리하지 않으려면 VMware VM을 만드는 것이 경제적일 수 있습니다.

에이전트 호스트 VM을 만드는 위치에 관계없이 다음 요구사항을 충족해야 합니다.

요구사항

에이전트 호스트 VM은 다음 시스템 요구사항을 충족해야 합니다.

  • 지원되는 Linux 운영체제:
    • CentOS 6, 7 또는 8
    • Red Hat Enterprise Linux 6, 7 또는 8
    • SLES 12 또는 15
    • Ubuntu 14, 16, 18 또는 19
  • 4GB 이상의 RAM
  • 사용 가능한 설치 공간 300MB
  • 설치 디렉터리가 /opt/bpagent로 설정됨
  • curl CLI 유틸리티가 설치됨

또한 에이전트 호스트 VM에서 측정항목 및 로그를 수집하고 푸시하려면 다음 주소에 액세스해야 합니다.

  • vCenter Server에 HTTPS 연결을 위한 포트 443(TCP)(기본값)
  • monitoring.googleapis.com:443 (external access)
  • logging.googleapis.com:443 (external access)

측정항목 전달 사용 설정

에이전트 호스트 VM을 설정하고 측정항목 전달을 사용 설정하는 프로세스는 다음 단계로 구성됩니다.

  1. VM에 에이전트 설치
  2. 서비스 계정 지정
  3. 측정항목을 위해 프라이빗 클라우드에 액세스하도록 에이전트 구성
  4. 보고를 위해 서비스 계정에 액세스하도록 에이전트 구성
  5. 측정항목 및 로그 수집
  6. syslog 전달을 위한 프라이빗 클라우드 구성

독립형 에이전트 설치

호스트 VM에 에이전트를 설치하려면 다음을 수행합니다.

  1. 에이전트 호스트 VM에 연결합니다.
  2. 원격으로 설치 스크립트 실행

    sudo sh -c "$(curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh)"
    

에이전트 호스트 VM에 외부 네트워크 액세스 권한이 없는 시스템의 경우 다음 명령어를 사용하여 에이전트와 설치 스크립트를 다운로드할 수 있습니다.

  • 독립형 에이전트를 가져오려면 다음을 실행합니다.

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/artifacts/bpagent-headless-vmware.tar.gz > agent.tar.gz
    
  • 설치 스크립트를 가져오려면 다음을 실행합니다.

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh > install.sh
    
  • 에이전트를 설치하려면 에이전트 호스트 VM에서 다음을 실행합니다.

    sudo sh install.sh agent.tar.gz
    

서비스 계정 지정

에이전트에서 Cloud Monitoring으로 데이터를 전달하려면 Google Cloud 프로젝트의 서비스 계정이 필요합니다. 이 서비스 계정에는 측정항목에 대한 모니터링 관리자 역할과 로그에 대한 로그 작성자 역할이 있어야 합니다.

모니터링 및 로깅 애플리케이션을 위한 서비스 계정이 없는 경우, 하나 만들기

  1. Google Cloud Console에서 IAM 및 관리자 > 서비스 계정으로 이동합니다.

    서비스 계정으로 이동

  2. 서비스 계정 만들기를 클릭합니다.

  3. 서비스 계정의 이름, ID, 설명을 입력합니다. 이 계정은 에이전트 통합에 사용되는 것이 좋습니다.

  4. 만들고 계속하기를 클릭합니다.

  5. 역할에서 모니터링 관리자를 선택합니다.

  6. 역할에서 로그 작성자를 선택합니다.

  7. 계속을 클릭합니다.

  8. 완료를 클릭합니다.

에이전트 호스트 VM으로서 VMware VM을 만든 경우 서비스 계정 비공개 키를 검색하여 이를 에이전트를 설정하는 데 사용할 수 있습니다.

  1. Google Cloud Console에서 IAM 및 관리자 > 서비스 계정으로 이동합니다.

    서비스 계정으로 이동

  2. 서비스 계정 목록에서 서비스 계정을 찾습니다.

  3. 작업 열에서 서비스 계정 작업 메뉴를 클릭하고 키 관리를 선택합니다.

  4. 키 추가를 클릭한 후 새 키 만들기를 선택합니다.

  5. JSON 키 유형을 선택하고 만들기를 클릭합니다.

  6. 생성된 JSON 파일을 열고 전체 파일 내용을 복사합니다. 측정항목 및 로깅 컬렉션은 모두 동일한 JSON 키 파일을 사용합니다.

  7. 에이전트 호스트 VM에서 JSON 키 파일을 /opt/bpagent/config/destinations/google_cloud 디렉터리에 복사합니다.

측정항목을 위해 프라이빗 클라우드에 액세스하도록 에이전트 구성

측정항목을 수집하려면 독립형 에이전트가 프라이빗 클라우드에 액세스해야 합니다. 에이전트 호스트 VM에서 vmware_vcenter.yaml 파일을 복사하고 구성하여 액세스를 설정합니다.

  1. vmware_vcenter.yamlconfig/metrics/sources 디렉터리에 복사합니다.

    cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
    
  2. VMware Engine 환경의 정보와 일치하도록 vmware_vcenter.yaml을 수정합니다.

    collection_interval: 1m0s
    connection_info:
    connection_timeout: "30"
    enable_performance_counters: "true"
    host: VCSA_FQDN
    password: SOLUTION_USER_PASSWORD
    performance_counter_end_time: ""
    performance_counter_query_timeout: "15"
    performance_counter_start_time: ""
    port: "443"
    sdk_path: ""
    ssl_config: "No Verify"
    username: SOLUTION_USER_ACCOUNT

    다음을 바꿉니다.

    • VCSA_FQDN: 프라이빗 클라우드에 있는 vCenter Server Appliance의 정규화된 도메인 이름(FQDN)
    • SOLUTION_USER_PASSWORD: 사용 중인 솔루션 사용자 계정에 해당하는 비밀번호
    • SOLUTION_USER_ACCOUNT: 에이전트가 정보를 보고하기 위해 사용하는 솔루션 사용자 계정

보고를 위해 서비스 계정에 액세스하도록 에이전트 구성

독립형 에이전트에서 측정항목과 로그를 전송하려면 Google Cloud Observability에 액세스해야 합니다. 에이전트가 모니터링 권한과 로깅 권한이 있는 서비스 계정을 통해 보고에 사용되는 프로젝트에 액세스하도록 구성합니다.

에이전트 호스트 VM에서 log_agent.yaml 파일을 복사하고 구성합니다.

  1. 수정하기 전에 log_agent.example.yamllog_agent.yaml에 복사합니다.

    cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
    
  2. log_agent.yaml 하단에서 프로젝트 이름과 JSON 키 파일의 전체 경로를 입력합니다. Compute Engine에서 생성된 에이전트 호스트 VM의 경우 credentials_file 줄을 삭제하거나 주석 처리합니다.

    ...
    - id: my_project_destination
      project_id: PROJECT_ID
      type: google_cloud_output
      credentials_file: /opt/bpagent/config/destinations/google_cloud/JSON_KEY_FILE

    다음을 바꿉니다.

    • PROJECT_ID: 로그를 출력할 프로젝트의 ID입니다.
    • JSON_KEY_FILE: 서비스 계정 비공개 키 파일의 이름입니다. Compute Engine에서 생성된 에이전트 호스트 VM의 경우 이 줄을 삭제하거나 주석 처리합니다.

    독립형 로그 에이전트에서 ESXi의 syslog를 전달해야 하는 경우 다음을 수행하여 기본 포트를 5142에서 514로 변경합니다.

    1. /opt/bpagent/config로 이동합니다.
    2. 다음과 같이 포트 번호를 514로 업데이트합니다.
    - id: vmware-vcenter-logs
        # A syslog address of the form `:`
        listen_address: 0.0.0.0:514
        # Enable TLS for the TCP listener
        enable_tls: false
    

측정항목 및 로그 수집

측정항목 또는 로그를 수집하려면 독립형 에이전트가 에이전트 호스트 VM에서 실행 중이어야 합니다. 에이전트 호스트 VM에 연결하고 다음 명령어를 사용하여 에이전트를 시작하거나 중지합니다.

  • 호스트 VM에서 에이전트를 시작하려면 다음을 실행합니다.

    systemctl start bpagent
    
  • 호스트 VM에서 에이전트를 중지하려면 다음을 실행합니다.

    systemctl stop bpagent
    

syslog 전달을 위한 프라이빗 클라우드 구성

VMware Engine은 syslog 메시지를 vCenter 및 NSX-T에서 독립형 에이전트로 전달하여 Cloud Logging과 통합됩니다. 독립형 에이전트는 Cloud Logging이 읽을 수 있도록 vCenter 및 NSX-T 로그를 모두 파싱하도록 구성됩니다.

VMware Engine에서 syslog 메시지를 전달하려면 다음 안내를 따르세요.

  • vCenter syslog 전달의 경우 vCenter syslog 메시지 전달의 단계를 따릅니다. 서버 필드에 에이전트 호스트 VM의 IP 주소 또는 호스트의 이름을 입력합니다. 독립형 에이전트는 TCP 통신 프로토콜을 사용하고 포트 5142에서 리슨합니다. 성공적으로 연결하려면 syslog 구성에서 독립형 에이전트가 실행 중이어야 합니다.
  • NSX-T syslog 전달의 경우 NSX-T syslog 메시지 전달의 단계를 따르세요. FQDN 또는 IP 주소 필드에 에이전트 호스트 VM의 IP 주소 또는 호스트 이름을 입력합니다. 독립형 에이전트는 TCP 통신 프로토콜을 사용하고 포트 5142에서 리슨합니다.

ESXi 호스트에서 syslog를 전달하려면 로그 에이전트에서 리슨하는 기본 포트를 5142에서 514로 변경합니다. 이 경우 NSX-T뿐만 아니라 vCenter에서 syslog 전달에 같은 포트(514)를 사용합니다.

에이전트 제거

VM에서 에이전트를 삭제하려면 에이전트 VM에 연결하고 명령줄에서 다음 명령어를 실행합니다.

  1. 독립형 에이전트를 중지하고 사용 중지합니다.

    systemctl stop bpagent
    
    systemctl disable bpagent
    
  2. 다음 명령어를 실행하여 독립형 에이전트 서비스를 삭제합니다.

    rm /etc/systemd/system/bpagent.service
    
    rm -rf /opt/bpagent
    
  3. 서비스 변경사항을 기반으로 시스템 구성을 업데이트하고 실패한 단위를 삭제합니다.

    systemctl daemon-reload
    
    systemctl reset-failed
    

Cloud Monitoring 대시보드

측정항목 전달을 사용 설정한 후에는 사전 정의된 대시보드를 VMware Engine에 설치할 수 있습니다. 다음 대시보드는 지정한 모든 소스에 집계된 정보를 제공합니다.

  • 개요 대시보드: 데이터 센터, 클러스터, VM과 같은 주요 리소스를 나열하는 개략적인 보기입니다.
  • 경합 대시보드: 리소스 수요에 따라 상위 VM과 호스트를 찾는 데 도움이 되는 스토리지, CPU, 메모리, 네트워킹의 리소스 사용률입니다.
  • 가상 머신 성능 대시보드: 인스턴스 이름으로 필터링하고 여러 VM의 성능을 서로 비교하는 데 사용할 수 있는 가상 머신(VM) 인스턴스 성능 표시기입니다.

VMware Engine 대시보드에 액세스하려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 Monitoring > 대시보드로 이동합니다.

    대시보드로 이동

  2. 샘플 라이브러리 탭에서 VMware 카테고리를 선택합니다.

  3. 원하는 대시보드를 선택하고 가져오기를 클릭합니다.

이러한 대시보드의 정의는 GitHub에 저장됩니다. 정의를 커스텀 대시보드로 설치하거나 보는 단계는 샘플 대시보드 설치를 참조하세요.

Cloud Monitoring 알림

통합의 측정항목을 사용하여 커스텀 임계값 및 이슈를 기반으로 알림과 알림을 트리거할 수 있습니다. 예를 들어 누군가 비공개 클라우드에 새 VM을 만들 때 Cloud Monitoring에서 SMS 알림을 보내도록 설정할 수 있습니다.

자세한 내용은 알림 소개를 참조하세요.

수집된 측정항목 목록

측정항목 전달을 성공적으로 사용 설정하면 Cloud Monitoring 측정항목 탐색기에서 측정항목을 확인할 수 있습니다. 측정항목 탐색기에서는 VMware Engine의 리소스 유형과 측정항목 유형이 external.googleapis.com/vmware/vcenter. 프리픽스로 시작합니다.

다음은 VMware Engine에 수집되는 측정항목의 전체 목록이며 프리픽스는 생략되었습니다.

리소스 및 측정항목 유형 설명
cluster.cpu.available 클러스터에서 사용 가능한 CPU(메가헤르츠)
cluster.memory.available 클러스터에서 사용할 수 있는 메모리(바이트)
cluster.cpu.threads 클러스터의 CPU 스레드 수
cluster.cpu.effective 실행 중인 모든 호스트의 클러스터에 있는 유효 CPU입니다. 응답하지 않거나 유지보수 모드인 호스트는 계산에 포함되지 않습니다.
cluster.effective_hosts 클러스터의 유효 호스트 수입니다. 응답하지 않거나 유지보수 모드인 호스트는 계산포함되지 않습니다.
cluster.memory.effective 실행 중인 모든 호스트의 클러스터에 있는 유효 메모리입니다. 응답하지 않거나 유지보수 모드인 호스트는 계산에 포함되지 않습니다.
cluster.hosts 클러스터의 호스트 수
cluster.vsan.latency 클러스터의 vSAN 지연 시간(마이크로초)
cluster.vsan.throughput 클러스터의 vSAN 읽기-쓰기 처리량(바이트)
cluster.vsan.iops 클러스터의 vSAN IOPS
cluster.vsan.congestions 클러스터의 vSAN 정체 값
cluster.vsan.oio 클러스터의 vSAN 미해결 I/O(oio)
datacenter.cpu.average_host_utilization 데이터 센터의 평균 호스트 사용률(백분율)
datacenter.clusters 데이터 센터의 클러스터 수
datacenter.datastores 데이터 센터의 데이터 저장소 수
datacenter.hosts 데이터 센터의 호스트 수
datacenter.host_systems 데이터 센터의 호스트 시스템 수
datacenter.hosts/powered_on 데이터 센터에서 전원이 켜진 호스트 수
datacenter.hosts/powered_off 데이터 센터에서 전원이 꺼진 호스트 수
datacenter.disk/space 데이터 센터의 총 디스크 공간(TB)
datastore.capacity_bytes Datastore 용량(바이트)
datastore.capacity_utilization Datastore의 용량 사용률(백분율)
host_system.network.transmitted_packets 호스트 시스템에서 전송한 네트워크 패킷 수
host_system.network.received_packets 호스트 시스템에서 수신한 네트워크 패킷 수
host_system.dropped_packets 호스트 시스템에서 삭제한 네트워크 패킷 수
host_system.network.adapters 호스트 시스템 네트워크 어댑터 수
host_system.memory.utilization 호스트 시스템의 메모리 사용률(백분율)
host_system.memory.utilization_ratio 호스트 시스템의 메모리 사용 비율
host_system.memory.used 호스트 시스템에서 사용하는 메모리(메가바이트)
host_system.disk.read 호스트 시스템의 디스크 읽기(초당 KB)
host_system.disk_latency 호스트 시스템의 디스크 지연 시간(밀리초)
host_system.cpu.usage 호스트 시스템의 CPU 사용률(백분율)
host_system.cpu.utilization_ratio 호스트 시스템의 CPU 사용 비율
host_system.cpu.capacity 호스트 시스템의 CPU 용량(메가헤르츠)
host_system.cpu.reserved_capacity 호스트 시스템의 예약된 CPU 용량(메가헤르츠)
host_system.cpu.average_speed 호스트 시스템의 평균 CPU 속도(메가헤르츠)
host_system.cpu.used 호스트 시스템에서 사용하는 CPU(메가헤르츠)
host_system.vsan.throughput 호스트 시스템의 vSAN 읽기-쓰기 처리량(바이트)
host_system.vsan.iops 호스트 시스템의 vSAN IOPS
host_system.vsan.latency 호스트 시스템의 vSAN 지연 시간(마이크로초)
host_system.vsan.client_cache_hits 호스트 시스템의 vSAN 클라이언트 캐시 적중
host_system.vsan.client_cache_hit_rate 호스트 시스템의 vSAN 클라이언트 캐시 적중 비율(백분율)
host_system.vsan.congestions 호스트 시스템의 vSAN 정체 값
resource_pool.memory.swapped_bytes vCenter에서 교체된 메모리(메가바이트)
resource_pool.memory.shared_bytes vCenter 공유 메모리(메가바이트)
resource_pool.memory.private_bytes vCenter 비공개 메모리(메가바이트)
resource_pool.memory.shares vCenter 메모리 공유 수
resource_pool.memory.overhead_usage_bytes vCenter 메모리 오버헤드 사용량(메가바이트)
resource_pool.memory.host_usage_bytes vCenter 메모리 호스트 사용량(메가바이트)
resource_pool.memory.active_guest_usage_bytes vCenter 메모리 활성 게스트 사용량(메가바이트)
resource_pool.memory.balloon_size vCenter 벌룬 메모리의 크기(MB)
resource_pool.cpu.usage vCenter에서 사용하는 CPU(MHz)
resource_pool.cpu.shares 리소스 풀의 CPU 공유 수(MB)
vm.memory.ballooned vCenter 벌룬 메모리의 크기(메가바이트)
vm.network.throughput_bytes VM의 네트워크 처리량(초당 킬로바이트)
vm.memory.used_percent VM에서 사용하는 메모리(사용 가능한 메모리의 백분율)
vm.memory.usage_bytes VM에서 사용하는 메모리(메가바이트)
vm.disk.throughput_bytes VM의 디스크 읽기-쓰기 처리량(초당 KB)
vm.disk.used_percent VM의 디스크 사용량(사용 가능한 스토리지의 백분율)
vm.disk.usage_bytes VM의 디스크 사용량(바이트)
vm.disk.free_bytes VM의 사용 가능한 디스크 공간(바이트)
vm.cpu.used_percent VM의 CPU 사용량(사용 가능한 CPU의 백분율)
vm.cpu.usage VM의 CPU 사용량(메가바이트)
vm.cpu.ready_percent 준비되었지만 실행할 수 없는 VM의 CPU(백분율)
vm.vsan.throughput VM의 vSAN 읽기-쓰기 처리량(바이트)
vm.vsan.iops VM의 vSAN IOPS
vm.vsan.latency VM의 vSAN 지연 시간(마이크로초)
vm.vsan.readCount VM의 vSAN 읽기 수
vm.vsan.writeCount VM의 vSAN 쓰기 수
vsphere.cpu.available vSphere에서 관리하는 클러스터 간에 사용 가능한 CPU(기가헤르츠)
vsphere.memory.available vSphere에서 관리하는 클러스터 간에 사용 가능한 메모리(기가바이트)
vsphere.clusters.total vSphere에서 관리하는 클러스터 수
vsphere.clusters 클러스터 상태 색상 코드(예: 녹색, 회색, 빨간색 또는 노란색)를 사용하여 vSphere에서 관리하는 클러스터 수
vsphere.cpu.cpus vSphere에서 관리하는 총 호스트 시스템 CPU 코어 수
vsphere.datacenters vSphere에서 관리하는 데이터 센터 수
vsphere.datastores.total vSphere의 Datastore 수
vsphere.datastores Datastore 상태 색상 코드(예: 녹색, 회색, 빨간색 또는 노란색)를 사용하여 vSphere에서 관리하는 Datastore 수
vsphere.disk.space vSphere에 연결된 총 디스크 공간(테라바이트)
vsphere.host_systems vSphere의 호스트 시스템 수
vsphere.hosts 호스트 시스템 상태 색상 코드(예: 녹색, 회색, 빨간색 또는 노란색)를 사용하여 vSphere에서 관리하는 호스트 시스템 수
vsphere.network.adapters vSphere의 네트워크 어댑터 수
vsphere.hosts.powered_off vSphere의 전원이 꺼진 호스트 수
vsphere.hosts.powered_on vSphere의 전원이 켜진 호스트 수
vsphere.virtual_machines.total 모든 vSphere 클러스터의 VM 수
vsphere.virtual_machines VM 상태 색상 코드(예: 녹색, 회색, 빨간색 또는 노란색)를 사용하여 vSphere에서 관리하는 VM 수