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:
Der Name einer pCPU hat das Format
cpugefolgt 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:
- 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).
- Passwörter werden in keiner Konfigurationsdatei in XenServer im Klartext gespeichert. Sie werden in einen lokalisierten Schlüssel umgewandelt und gespeichert. Der Befehl
get-configzeigt 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-configBefehl 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 einmessageObjekt 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 einmessageObjekt als Liste zurück, wobei jedes Element im Format[field_path, key, value, error string]vorliegt. -
"code": 4: Gibt einmessageObjekt als Liste zurück, wobei jedes Element im Format[nms address, nms port, error string]vorliegt.