XenServer

Host- und Dom0-Ressourcen mit SNMP überwachen

Mit der Rolle des Pool-Administrators können Sie SNMP verwenden, um die von Ihrem XenServer®-Host und Dom0 – der Steuerdomäne Ihres Hosts – verbrauchten Ressourcen remote zu überwachen. Ein SNMP-Manager, auch bekannt als Netzwerkverwaltungssystem (NMS), sendet Abfrageanforderungen an einen auf einem XenServer-Host ausgeführten SNMP-Agenten. Der SNMP-Agent antwortet auf diese Abfrageanforderungen, indem er die zu verschiedenen Metriken gesammelten Daten an das NMS zurücksendet. Die sammelbaren Daten werden durch Objektbezeichner (OIDs) in einer Textdatei definiert, die als Management Information Base (MIB) bezeichnet wird. Eine OID stellt eine bestimmte messbare Information über ein Netzwerkgerät dar, z. B. CPU- oder Speichernutzung.

Sie können auch Traps konfigurieren, die vom Agenten initiierte Nachrichten sind, die das NMS darüber informieren, dass ein bestimmtes Ereignis in XenServer aufgetreten ist. Sowohl Abfrageanforderungen als auch Traps können verwendet werden, um den Status Ihrer XenServer-Pools zu überwachen. Diese sind als Metrik- und Trap-Objekte definiert und werden durch OIDs in einer MIB-Datei XENSERVER-MIB.txt identifiziert, die von der XenServer Downloads-Seite heruntergeladen werden kann. Die folgenden Tabellen enthalten Informationen zu diesen Metrik- und Trap-Objekten.

Metrikobjekte

Sie können eine bestimmte Information über Ihre XenServer-Hosts anfordern, indem Sie die in der folgenden Tabelle aufgeführten Metriken verwenden. Diese Metriken werden vom SNMP-Manager verwendet, wenn Abfrageanforderungen an einen SNMP-Agenten gesendet werden, sodass Sie diese Daten in Ihrem NMS anzeigen können.

Sie können die zurückgegebenen Daten dieser Metrikobjekte über Ihr NMS oder über die xe CLI anzeigen. Um die Metrikobjekte über die xe CLI abzufragen, führen Sie host-data-source-query oder vm-data-source-query aus und geben Sie die RRDD-Datenquelle als Wert für den Parameter data-source an. Zum Beispiel:

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

Hinweis:

Standardmäßig sendet das NMS OID-Abfrageanforderungen an SNMP-Agenten über Port 161.

Objektbezeichner (OID) RRDD-Datenquelle Zurückgegebene Daten Typ
1.3.6.1.4.1.60953.1.1.1.1 memory Gesamter Dom0-Speicher in MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.2 memory_internal_free Dom0 freier Speicher in MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.3 cpu_usage Dom0 CPU-Auslastung in Prozent Float
1.3.6.1.4.1.60953.1.1.1.4 memory_total_kib Gesamter Host-Speicher in MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.5 memory_free_kib Freier Host-Speicher in MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.6 cpu_avg Host-CPU-Auslastung in Prozent Float
1.3.6.1.4.1.60953.1.1.1.7 (siehe Anmerkung 1) Anzahl der pCPUs Unsigned32
1.3.6.1.4.1.60953.1.1.1.8 running_vcpus Anzahl der laufenden vCPUs Unsigned32
1.3.6.1.4.1.60953.1.1.1.9 running_domains Anzahl laufender VMs Unsigned32

Hinweise:

  1. Der Name einer pCPU hat das Format cpu gefolgt von einer Zahl. Um die Anzahl der pCPUs über die xe CLI abzufragen, führen Sie den folgenden Befehl aus:

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

    Dies gibt eine Liste der CPU-Metriken zurück, die dem regulären Ausdruck cpu[0-9]+ entsprechen.

Traps

Traps sind Warnmeldungen, die vom SNMP-Agenten gesendet werden, um den SNMP-Manager über bestimmte Ereignisse zu informieren. Dies ermöglicht Ihnen, Ihre XenServer-Hosts zu überwachen und Probleme frühzeitig zu erkennen. Sie können Ihre SNMP-Einstellungen so konfigurieren, dass ein Trap generiert wird, wenn ein Grenzwert erreicht wird (z. B. wenn die CPU-Auslastung des Hosts zu hoch ist). Wenn ein Trap generiert wird, wird er an Ihr NMS gesendet, und die folgenden Felder werden als Teil des Trap-Objekts zurückgegeben.

Hinweis:

Standardmäßig sendet der SNMP-Agent auf dem Pool-Koordinator-Host Traps an das NMS über UDP-Port 162.

Objektbezeichner (OID) Feldname Typ Beschreibung
1.3.6.1.4.1.60953.1.10.1.1 operation String Kann einer der folgenden Werte sein: add oder del. operation ist add, wenn ein Trap von XenServer generiert und an Ihr NMS gesendet wird (eine Warnung wird auch in XenCenter erstellt), oder del, wenn eine Warnung zerstört wird (zum Beispiel, wenn Sie eine Warnung verwerfen).
1.3.6.1.4.1.60953.1.10.1.2 ref String Die Referenz für das Trap-Objekt.
1.3.6.1.4.1.60953.1.10.1.3 uuid String Die UUID des Trap-Objekts.
1.3.6.1.4.1.60953.1.10.1.4 name String Der Name des Trap-Objekts.
1.3.6.1.4.1.60953.1.10.1.5 priority Ganzzahl Der Schweregrad des Traps. Kann einer der folgenden Werte sein: 1: Kritisch, 2: Schwerwiegend, 3: Warnung, 4: Geringfügig, 5: Information, others: Unbekannt.
1.3.6.1.4.1.60953.1.10.1.6 class Zeichenfolge Die Kategorie des generierten Traps. Kann einer der folgenden Werte sein: VM, Host, SR, Pool, VMPP, VMSS, PVS_proxy, VDI oder Certificate.
1.3.6.1.4.1.60953.1.10.1.7 obj-uuid Zeichenfolge Die xapi-Objekt-UUID der verschiedenen Klassen des Feldes class.
1.3.6.1.4.1.60953.1.10.1.8 timestamp String Die Zeit, zu der die Trap generiert wird.
1.3.6.1.4.1.60953.1.10.1.9 body String Detaillierte Informationen zum Feld name.

Voraussetzungen

  • Alle Hosts in einem Pool müssen dieselbe XenServer-Version ausführen, und diese Version muss das SNMP-Plugin enthalten.

    Hinweis:

    Wenn Sie die Registerkarte SNMP in XenCenter® nicht sehen können, liegt dies möglicherweise daran, dass der Host oder ein Mitglied des Pools keine XenServer-Version ausführt, die SNMP unterstützt. Aktualisieren Sie den Host oder Pool auf die neueste Version von XenServer.

  • Das von Ihnen verwendete NMS muss SNMPv2c oder SNMPv3 unterstützen.

  • Ihr NMS und XenServer müssen netzwerkverbunden sein.

Einschränkungen

  • Sie können SNMP-Einstellungen für einen gesamten Pool oder für einen eigenständigen Host konfigurieren, der nicht Teil eines Pools ist. Derzeit können Sie SNMP-Einstellungen nicht für einen einzelnen Host in einem Pool konfigurieren.
  • Wenn Sie einen Host zu einem Pool hinzufügen, in dem SNMP bereits aktiviert und konfiguriert ist, wendet XenCenter die SNMP-Einstellungen des Pools nicht automatisch auf den neuen Host an. Sie müssen die SNMP-Einstellungen im Pool nach dem Hinzufügen des neuen Hosts neu konfigurieren oder den neuen Host vor dem Hinzufügen zum Pool mit denselben SNMP-Einstellungen konfigurieren.

    Hinweis:

    Wenn Sie die SNMP-Einstellungen in einem Pool nach dem Hinzufügen eines neuen Hosts neu konfigurieren, stellen Sie sicher, dass der Host betriebsbereit ist und sich nicht im Wartungsmodus befindet.

  • Wenn der SNMP-Agent offline ist, können keine Traps generiert werden. Zum Beispiel, wenn der SNMP-Agent neu gestartet wird oder der Pool-Koordinator neu gestartet oder neu zugewiesen wird.

SNMP mit der xe CLI konfigurieren

Sie können SNMP mit der xe CLI oder XenCenter konfigurieren. Weitere Informationen zur Konfiguration von SNMP mit XenCenter finden Sie unter Überwachung von Host- und dom0-Ressourcen mit SNMP.

result Objekte

Bei der Konfiguration von SNMP werden alle Antworten im JSON-Format zurückgegeben. Wenn ein Befehl erfolgreich ausgeführt wird, gibt er das Schlüssel-Wert-Paar "code": 0 zurück. Einige Befehle (wie der Befehl get-config) geben ein verschachteltes JSON-Objekt namens result zurück. Das JSON-Objekt result ist auch für den Befehl set-config erforderlich, der zum Aktualisieren der SNMP-Konfiguration verwendet wird.

Das JSON-Objekt result besteht aus den folgenden Objekten common, agent und nmss:

common

Feld Zulässige Werte Standardwert
enabled no (SNMP-Dienst deaktivieren) oder yes (SNMP-Dienst aktivieren) no
debug_log no (Debug-Protokollierung deaktivieren) oder yes (Debug-Protokollierung aktivieren) no
max_nmss N/A (Dieses Feld ist schreibgeschützt und gibt die maximale Anzahl unterstützter NMSs an) 1

agent

Feld Zulässige Werte Standardwert
v2c no (SNMPv2c deaktivieren) oder yes (SNMPv2c aktivieren) yes
community COMMON_STRING_TYPE (siehe Hinweis 1) public
v3 no (v3 deaktivieren) oder yes (v3 aktivieren) no
user_name COMMON_STRING_TYPE (siehe Anmerkung 1)  
authentication_password COMMON_STRING_TYPE, wobei Länge >= 8 (siehe Anmerkung 1)  
authentication_protocol MD5 oder SHA  
privacy_password COMMON_STRING_TYPE, wobei Länge >= 8 (siehe Anmerkung 1)  
privacy_protocol DES oder AES  
engine_id N/A (Dieses Feld ist schreibgeschützt und wird generiert, wenn der SNMP-Agent zum ersten Mal startet)  

nmss

Feld Zulässige Werte Standardwert
uuid NMS UUID (Sie legen dies fest, wenn Sie den NMS-Trap-Empfänger konfigurieren, und dieser Wert sollte über alle Hosts in einem Pool hinweg konsistent sein)  
address NMS IPv4-Adresse oder Hostname (FQDN)  
port 1 bis 65535 162
v2c no (SNMPv2c deaktivieren), yes (SNMPv2c aktivieren) oder Unterstützung für SNMPv2c oder v3. yes
community COMMON_STRING_TYPE (siehe Anmerkung 1) public
v3 no (v3 deaktivieren), yes (v3 aktivieren) oder Unterstützung für SNMPv2c oder SNMPv3. no
user_name COMMON_STRING_TYPE (siehe Anmerkung 1)  
authentication_password COMMON_STRING_TYPE, wobei die Länge >= 8 ist (siehe Anmerkung 1)  
authentication_protocol MD5 oder SHA  
privacy_password COMMON_STRING_TYPE, wobei die Länge >= 8 ist (siehe Anmerkung 1)  
privacy_protocol DES oder AES  

Hinweise:

  1. COMMON_STRING_TYPE bezieht sich auf eine Zeichenfolge, die die folgenden Anforderungen erfüllt:
    • Eine beliebige Kombination aus Buchstaben, Zahlen, Bindestrichen (-), Punkten (.), Rauten (#), At-Zeichen (@), Gleichheitszeichen (=), Doppelpunkten (:) oder Unterstrichen (_).
    • Länge zwischen 6 und 32 (einschließlich).
  2. Passwörter werden in keiner Konfigurationsdatei in XenServer im Klartext gespeichert. Sie werden in einen lokalisierten Schlüssel umgewandelt und gespeichert. Der Befehl get-config zeigt das Passwort als ausgeblendete Konstante an, die aus Sternchen (*) besteht.

SNMP-Dienst konfigurieren

Status des SNMP-Dienstes abrufen:

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

Starten, stoppen oder neu starten des SNMP-Dienstes:

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

wobei operation start, stop oder restart ist.

SNMP-Konfigurationsdetails abrufen:

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

Bei Erfolg gibt dieser Befehl das Schlüssel-Wert-Paar "code": 0 und das JSON-Objekt result zurück, das die Konfigurationsdetails des SNMP-Dienstes enthält. Zum Beispiel:

"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-->

Kopieren Sie das JSON-Objekt result in Ihren bevorzugten Texteditor und entfernen Sie alle Zeilenumbruchzeichen (\n) aus der Datei. Aktualisieren Sie die Felder mit Ihren SNMP-Konfigurationsdetails. Konfigurieren Sie Ihr NMS, indem Sie Ihre NMS-Dokumentation konsultieren und Werte für die für das Objekt nmss erforderlichen Felder angeben. Weitere Informationen finden Sie in den oben aufgeführten Objekten.

Um den SNMP-Dienst zu konfigurieren, führen Sie den Befehl set-config aus und geben Sie das bearbeitete JSON-Objekt result als Parameterwert für den Parameter args:config an.

SNMP-Konfiguration festlegen:

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

wobei result das result JSON-Objekt ist, das vom get-config Befehl zurückgegeben wurde, den Sie kopiert und bearbeitet haben.

Hinweis:

Um SNMP für einen gesamten Pool zu konfigurieren, müssen Sie den set-config Befehl für jeden Host im Pool ausführen.

Wenn die Konfigurationsänderungen erfolgreich sind, gibt der Befehl das Schlüssel-Wert-Paar "code": 0 zurück. Wenn die Konfigurationsänderungen nicht erfolgreich sind, gibt der set-config Befehl eines der folgenden Schlüssel-Wert-Paare zurück, die auf einen Fehler hinweisen:

  • "code": 1: Allgemeine Fehlerzeichenfolge. Zum Beispiel eine unbekannte Ausnahme.
  • "code": 2: Fehlerzeichenfolge (Parameter fehlt).
  • "code": 3: Gibt ein message Objekt als Liste zurück, wobei jedes Element im Format [field_path, key, value, error string] vorliegt.

Sie können auch eine Test-SNMP-Trap an Ihr NMS senden, um zu überprüfen, ob die angegebenen Trap-Empfängerinformationen korrekt sind.

Test-SNMP-Trap senden:

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-->

Dieser Befehl sendet eine Test-Trap an Ihr NMS mit dem msg_name von TEST_TRAP und dem msg_body von This is a test trap from XenServer pool "<pool name>" to verify the NMS Trap Receiver configuration.

Wenn Sie die Test-Trap nicht erhalten, überprüfen Sie Ihre SNMP-Konfiguration erneut. Falls nicht erfolgreich, gibt der send-test-trap Befehl auch eines der folgenden Schlüssel-Wert-Paare zurück, die auf einen Fehler hinweisen:

  • "code": 1: Allgemeine Fehlerzeichenfolge. Zum Beispiel eine unbekannte Ausnahme.
  • "code": 2: Fehlerzeichenfolge (Parameter fehlt).
  • "code": 3: Gibt ein message Objekt als Liste zurück, wobei jedes Element im Format [field_path, key, value, error string] vorliegt.
  • "code": 4: Gibt ein message Objekt als Liste zurück, wobei jedes Element im Format [nms address, nms port, error string] vorliegt.
Host- und Dom0-Ressourcen mit SNMP überwachen