XenServer

SNMP를 사용하여 호스트 및 dom0 리소스 모니터링

메모:

SNMP 기능은 XenServer Premium 또는 평가판 고객이 사용할 수 있습니다. XenServer 라이센스에 대한 자세한 내용은 다음을 참조하십시오. 라이센스. XenServer 라이센스를 업그레이드하거나 얻으려면 XenServer 웹 사이트.

풀 관리자 역할을 사용하면 SNMP를 사용하여 XenServer 호스트 및 dom0(호스트의 제어 도메인)에서 사용하는 리소스를 원격으로 모니터링할 수 있습니다. NMS(네트워크 관리 시스템)라고도 하는 SNMP 관리자는 XenServer 호스트에서 실행 중인 SNMP 에이전트에 쿼리 요청을 보냅니다. SNMP 에이전트는 다양한 메트릭에서 수집된 데이터를 NMS로 다시 전송하여 이러한 쿼리 요청에 응답합니다. 수집할 수 있는 데이터는 MIB(Management Information Base)라는 텍스트 파일의 OID(개체 식별자)에 의해 정의됩니다. OID는 CPU 또는 메모리 사용량과 같은 네트워크 장치에 대한 측정 가능한 특정 정보를 나타냅니다.

XenServer에서 특정 이벤트가 발생했음을 NMS에 알리는 에이전트 시작 메시지인 트랩을 구성할 수도 있습니다. 쿼리 요청과 트랩 모두 XenServer 풀의 상태를 모니터링하는 데 사용할 수 있습니다. 이는 메트릭 및 트랩 객체로 정의되며 MIB 파일의 OID로 식별됩니다 XENSERVER-MIB.txt에서 다운로드할 수 있습니다. XenServer 다운로드 페이지. 다음 표에서는 이러한 메트릭 및 트랩 개체에 대한 정보를 제공합니다.

메트릭 개체

다음 표에 나열된 메트릭을 사용하여 XenServer 호스트에 대한 특정 정보를 요청할 수 있습니다. 이러한 메트릭은 SNMP 에이전트에 쿼리 요청을 보낼 때 SNMP 관리자가 사용하므로 NMS에서 이 데이터를 볼 수 있습니다.

NMS 또는 xe CLI에서 이러한 메트릭 개체에서 반환된 데이터를 볼 수 있습니다. xe CLI에서 메트릭 개체를 쿼리하려면 다음을 실행합니다 호스트 데이터 소스 쿼리 또는 vm-데이터 소스 쿼리 RRDD 데이터 소스를 에 대한 값으로 제공합니다. 데이터 원본 매개 변수. 예를 들어:

  xe host-data-source-query data-source=cpu_avg host=<host UUID>
<!--NeedCopy-->

메모:

기본적으로 NMS는 포트 161을 사용하여 SNMP 에이전트에 OID 쿼리 요청을 보냅니다.

개체 식별자(OID) RRDD 데이터 소스 반환된 데이터 유형
1.3.6.1.4.1.60953.1.1.1.1 memory Dom0 총 메모리(MB) 부호되지 않은32
1.3.6.1.4.1.60953.1.1.1.2 memory_internal_free Dom0 여유 메모리(MB) 부호되지 않은32
1.3.6.1.4.1.60953.1.1.1.3 cpu_usage Dom0 CPU 사용량(백분율) 뜨다
1.3.6.1.4.1.60953.1.1.1.4 memory_total_kib 호스트 총 메모리(MB) 부호되지 않은32
1.3.6.1.4.1.60953.1.1.1.5 memory_free_kib 호스트 사용 가능한 메모리(MB) 부호되지 않은32
1.3.6.1.4.1.60953.1.1.1.6 cpu_avg 호스트 CPU 사용량(백분율) 뜨다
1.3.6.1.4.1.60953.1.1.1.7 (참고 1 참조) pCPUs 번호 부호되지 않은32
1.3.6.1.4.1.60953.1.1.1.8 running_vcpus 실행 중인 vCPU 수 부호되지 않은32
1.3.6.1.4.1.60953.1.1.1.9 running_domains 실행 중인 VM 수 부호되지 않은32

노트:

  1. pCPU의 이름은 다음과 같은 형식입니다. 중앙 처리 유닛 그 뒤에 숫자가 옵니다. xe CLI에서 pCPU 수를 쿼리하려면 다음 명령을 실행합니다.

    xe host-data-source-list host=<host UUID> | grep -E 'cpu[0-9]+$'

    그러면 정규식과 일치하는 CPU 메트릭 목록이 반환됩니다 CPU[0-9]+.

트랩

트랩은 특정 이벤트가 발생할 때 SNMP 관리자에게 알리기 위해 SNMP 에이전트에서 보내는 경고로, XenServer 호스트를 모니터링하고 문제를 조기에 식별할 수 있습니다. 제한에 도달했을 때(예: 호스트 CPU 사용량이 너무 높은 경우) 트랩을 생성하도록 SNMP 설정을 구성할 수 있습니다. 트랩이 생성되면 NMS로 전송되고 다음 필드가 트랩 개체의 일부로 반환됩니다.

메모:

기본적으로 풀 코디네이터 호스트의 SNMP 에이전트는 UDP 포트 162를 사용하여 NMS로 트랩을 보냅니다.

개체 식별자(OID) 필드 이름 유형 설명
1.3.6.1.4.1.60953.1.10.1.1 operation 문자열 다음 값 중 하나일 수 있습니다. 더하다 또는 . 수술 다음과 같음 더하다 XenServer에서 트랩을 생성하여 NMS로 전송하는 경우(XenCenter에서도 경고가 생성됨) 경고가 제거된 경우(예: 경고를 해제한 경우)
1.3.6.1.4.1.60953.1.10.1.2 ref 문자열 trap 개체에 대한 참조입니다.
1.3.6.1.4.1.60953.1.10.1.3 uuid 문자열 트랩 개체의 UUID입니다.
1.3.6.1.4.1.60953.1.10.1.4 name 문자열 트랩 개체의 이름입니다.
1.3.6.1.4.1.60953.1.10.1.5 priority 정수 트랩의 심각도입니다. 다음 값 중 하나일 수 있습니다. 1:비판적인 2:전공 3:경고 4:사소한 5:정보 다른:알려지지 않은.
1.3.6.1.4.1.60953.1.10.1.6 class 문자열 생성된 트랩의 범주입니다. 다음 값 중 하나일 수 있습니다. 가상 머신, 호스트, 에스알(SR), , VMPP (영문), 증권 시세 표시기, PVS_proxy, VDI (VDI)또는 증명서.
1.3.6.1.4.1.60953.1.10.1.7 obj-uuid 문자열 필드의 다양한 클래스에 대한 xapi 개체 UUID 수업.
1.3.6.1.4.1.60953.1.10.1.8 timestamp 문자열 트랩이 생성되는 시간입니다.
1.3.6.1.4.1.60953.1.10.1.9 body 문자열 필드에 대한 자세한 정보 이름.

사전 요구 사항

  • 풀의 모든 호스트는 동일한 XenServer 버전을 실행해야 하며 이 버전에는 SNMP 플러그인이 포함되어야 합니다.

    메모:

    볼 수 없는 경우 SNMP (영문) 탭을 클릭하면 호스트 또는 풀의 구성원이 SNMP를 지원하는 XenServer 버전을 실행하고 있지 않기 때문일 수 있습니다. 호스트 또는 풀을 최신 버전의 XenServer로 업데이트합니다.

  • 사용 중인 NMS는 SNMPv2c 또는 SNMPv3를 지원해야 합니다.

  • NMS와 XenServer가 네트워크에 연결되어 있어야 합니다.

제약 조건

  • 전체 풀 또는 풀의 일부가 아닌 독립형 호스트에 대해 SNMP 설정을 구성할 수 있습니다. 현재는 풀의 개별 호스트에 대해 SNMP 설정을 구성할 수 없습니다.
  • 이미 SNMP를 사용하도록 설정하고 구성한 풀에 호스트를 추가하는 경우 XenCenter는 풀의 SNMP 설정을 새 호스트에 자동으로 적용하지 않습니다. 새 호스트를 추가한 후 풀에서 SNMP 설정을 재구성하거나 풀에 추가하기 전에 동일한 SNMP 설정으로 새 호스트를 구성해야 합니다.

    메모:

    새 호스트를 추가한 후 풀에서 SNMP 설정을 재구성할 때 호스트가 실행 중이고 유지 보수 모드가 아닌지 확인합니다.

  • Citrix Hypervisor 8.2 CU1에서 XenServer 8.4로 롤링 풀 업그레이드를 수행하거나 XenServer 호스트와 풀에 업데이트를 적용하기 전에 이전에 수동으로 수정했고 필요한 경우 다음 구성 파일을 백업하세요.

    • /etc/snmp/snmpd.xs.conf
    • /etc/sysconfig/snmp
    • /var/lib/net-snmp/snmpd.conf
  • SNMP 에이전트가 오프라인 상태이면 트랩을 생성할 수 없습니다. 예를 들어 SNMP 에이전트가 다시 시작되거나 풀 코디네이터가 다시 부팅되거나 다시 지정되는 경우입니다.

xe CLI를 사용하여 SNMP 구성

xe CLI 또는 XenCenter를 사용하여 SNMP를 구성할 수 있습니다. XenCenter를 사용하여 SNMP를 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오. SNMP를 사용하여 host 및 dom0 리소스 모니터링.

결과 개체

SNMP를 구성할 때 모든 응답은 JSON 형식으로 반환됩니다. 명령이 성공적으로 실행되면 키 값 쌍을 반환합니다 "코드": 0. 일부 명령(예: 가져오기 구성 command)라는 중첩된 JSON 객체를 반환합니다. 결과. 이 결과 JSON 객체는 다음과 같은 경우에도 필요합니다. 세트 구성 SNMP 컨피그레이션을 업데이트하는 데 사용되는 명령입니다.

결과 JSON 객체는 다음 객체로 구성됩니다 보통의, 대리인그리고 증권 시세 표시기:

common

필드 허용되는 값 기본값
enabled 아니요 (SNMP 서비스 비활성화) 또는 (SNMP 서비스 활성화) no
debug_log 아니요 (디버그 로깅 비활성화) 또는 (디버그 로깅 사용) no
max_nmss N/A(이 필드는 읽기 전용이며 지원되는 NMS의 최대 수를 지정함) 1

agent

필드 허용되는 값 기본값
v2c 아니요 (SNMPv2c 비활성화) 또는 (SNMPv2c 활성화) yes
community COMMON_STRING_TYPE(참고 1 참조) public
v3 아니요 (v3 비활성화) 또는 (V3 사용) no
user_name COMMON_STRING_TYPE(참고 1 참조)  
authentication_password COMMON_STRING_TYPE 여기서 길이 >= 8(참고 1 참조)  
authentication_protocol MD5 (영어) 또는  
privacy_password COMMON_STRING_TYPE 여기서 길이 >= 8(참고 1 참조)  
privacy_protocol 데스 또는 AES (에이에스)  
engine_id N/A(이 필드는 읽기 전용이며 SNMP 에이전트가 처음 시작될 때 생성됨)  

nmss

필드 허용되는 값 기본값
uuid NMS UUID(NMS 트랩 수신기를 구성할 때 설정하며 이 값은 풀의 모든 호스트에서 일관되어야 함)  
address NMS IPv4 주소 또는 호스트 이름(FQDN)  
port 1 받는 사람 65535 162
v2c 아니요 (SNMPv2c 비활성화), (SNMPv2c 활성화) 또는 SNMPv2c 또는 v3을 지원합니다. yes
community COMMON_STRING_TYPE(참고 1 참조) public
v3 아니요 (v3 비활성화), (v3 활성화) 또는 SNMPv2c 또는 SNMPv3를 지원합니다. no
user_name COMMON_STRING_TYPE(참고 1 참조)  
authentication_password COMMON_STRING_TYPE 여기서 길이 >= 8(참고 1 참조)  
authentication_protocol MD5 (영어) 또는  
privacy_password COMMON_STRING_TYPE 여기서 길이 >= 8(참고 1 참조)  
privacy_protocol 데스 또는 AES (에이에스)  

노트:

  1. COMMON_STRING_TYPE는 다음 요구 사항을 충족하는 문자열을 참조합니다.

    • 문자, 숫자, 하이픈(-), 마침표(.), 파운드(#), 앳 기호(@), 등호(=), 콜론(:) 또는 밑줄(_)의 조합입니다.
    • 6에서 32 사이의 길이입니다.
  2. 암호는 XenServer의 구성 파일에 일반 텍스트로 저장되지 않습니다. 지역화된 키로 변환되어 저장됩니다. 이 가져오기 구성 명령은 암호를 별표(*)로 구성된 숨겨진 상수로 표시합니다.

SNMP 서비스 구성

SNMP 서비스의 상태를 가져옵니다.

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=status
<!--NeedCopy-->

SNMP 서비스를 시작, 중지 또는 다시 시작합니다.

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=<operation>
<!--NeedCopy-->

어디 수술 다음과 같음 시작하다, 멈추다또는 다시 시작할.

SNMP 컨피그레이션 세부 정보를 가져옵니다.

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=get-config
<!--NeedCopy-->

제대로 된 경우 이 명령은 키 값 쌍을 반환합니다 "코드": 0 그리고 결과 SNMP 서비스의 구성 세부 정보를 포함하는 JSON 개체입니다. 예를 들어:

  "code": 0,
    "result": {
      "common": {
        "enabled": "no",
        "debug_log": "no",
        "max_nmss": 1
      },
      "agent": {
        "v2c": "yes",
        "v3": "no",
        "community": "public",
        "user_name": "",
        "authentication_password": "",
        "authentication_protocol": "",
        "privacy_password": "",
        "privacy_protocol": "",
        "engine_id": "<engine_id>"
      },
      "nmss": []
    }
<!--NeedCopy-->

를 복사합니다. 결과 JSON 객체를 원하는 텍스트 편집기에 추가하고 모든 줄 바꿈(\n) 문자를 파일에서 가져옵니다. SNMP 구성 세부 정보로 필드를 업데이트합니다. NMS 설명서를 참조하고 에 필요한 필드의 값을 지정하여 NMS를 구성합니다. 증권 시세 표시기 객체. 자세한 내용은 다음을 참조하십시오. 개체 위에 나열되어 있습니다.

SNMP 서비스를 구성하려면 를 실행합니다. 세트 구성 명령을 실행하고 편집된 정보를 제공합니다. 결과 JSON 객체를 매개 변수 값으로 인수 : 구성 매개 변수.

SNMP 구성을 설정합니다.

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=set-config args:config='<result>'
<!--NeedCopy-->

어디 결과결과 에서 반환된 JSON 객체 가져오기 구성 복사하고 편집한 명령입니다.

메모:

전체 풀에 대해 SNMP를 구성하려면 다음을 실행해야 합니다. 세트 구성 풀의 각 호스트에 대한 명령입니다.

구성 변경에 성공하면 명령은 키 값 쌍을 반환합니다 "코드": 0. 구성 변경에 실패하면 세트 구성 command는 오류가 발생했음을 나타내는 다음 키 값 쌍 중 하나를 반환합니다.

  • "코드": 1: 일반적인 오류 문자열입니다. 예를 들어 알 수 없는 예외가 있습니다.
  • "코드": 2: 오류 문자열(매개 변수가 누락됨).
  • "코드": 3: a를 반환합니다. 메시지 객체를 목록으로, 각 요소는 다음과 같은 형식입니다. [field_path, 키, 값, 오류 문자열].

또한 테스트 SNMP 트랩을 NMS로 전송하여 지정된 트랩 수신기 정보가 올바른지 확인할 수 있습니다.

테스트 SNMP 트랩을 보냅니다.

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=send-test-trap args:config='{"nmss":[{"uuid":"<uuid>","address":"<address>","port":162,"v2c":"yes","v3":"no","community":"public","user_name":"<user_name>","authentication_password":"<authentication_password>","authentication_protocol":"<authentication_protocol>","privacy_password":"<privacy_password>","privacy_protocol":"<privacy_protocol>"}]}'
<!--NeedCopy-->

이 명령은 다음을 사용하여 NMS에 테스트 트랩을 보냅니다. msg_nameTEST_TRAP 그리고 msg_body이것은 XenServer 풀의 테스트 트랩입니다.&lt;pool name&gt;"를 클릭하여 NMS 트랩 수신기 컨피그레이션을 확인합니다.

테스트 트랩을 받지 못한 경우 SNMP 구성을 다시 확인하십시오. 실패하면 테스트 트랩 보내기 또한 command는 오류가 발생했음을 나타내는 다음 키 값 쌍 중 하나를 반환합니다.

  • "코드": 1: 일반적인 오류 문자열입니다. 예를 들어 알 수 없는 예외가 있습니다.
  • "코드": 2: 오류 문자열(매개 변수가 누락됨).
  • "코드": 3: a를 반환합니다. 메시지 객체를 목록으로, 각 요소는 다음과 같은 형식입니다. [field_path, 키, 값, 오류 문자열].
  • "코드": 4: a를 반환합니다. 메시지 객체를 목록으로, 각 요소는 다음과 같은 형식입니다. [nms 주소, nms 포트, 오류 문자열].
SNMP를 사용하여 호스트 및 dom0 리소스 모니터링