ESXi 4.1: „Leistungsdaten sind für diese Instanz derzeit nicht verfügbar“

Nachtrag vom 20.06.2012: aktuell wird dieser Blogartikel ungewöhnlich oft besucht, allerdings mit Verweis auf den aktuellen VMWare vShpere Hypervisor (ESXi). Kann jemand bestätigen dass der Fix immernoch funktioniert?

Seitdem ich den VMWare vSphere Hypervisor (ESXi) auf Version 4.1 geupdated habe, erscheint im Leistungsmonitor stets der Hinweis:

Leistungsdaten sind für diese Instanz derzeit nicht verfügbar

bzw.

Performance data is currently not available for this entity

Mögliche Lösungsvorschläge finden sich zwar in der Knowledge base von VMWare, diese betreffen allerdings den vServer und stehen oft im Zusammenhang mit der verwendeten Datenbank des vServers.

Folgende Schritte brachten auf meinen Systemen Abhilfe:

1. SSH auf der ESXi Console aktivieren
2. Einloggen und den Befehl ausführen: vmkperf resetall
3. Über den vSphere Client die Startrichtlinien des NTP-Daemons auf „Automatisch starten“ setzen und diesen anschließend durchstarten. (Dieser Schritt ist nur notwendig, wenn NTP verwendet wird!)

Nun sollten die Diagramme wieder sichtbar sein:

Es steht nun noch die Überlegung im Raum, ob man diesen Befehl ggf. als cron einmal am Tag laufen lässt, falls das Problem kontinuierlich auftritt. Quasi als eine „Behandlung der Symptome“. Hierfür verweise ich auf folgendes Tutorial, das analog verwendet werden kann: ESXi Cronjob Backup.

Shell-Script für tägliche Backups

Wer keine großen Anforderungen an eine komplexe Backuplösung unter Linux stellt, dem könnte mit dem folgenden Script geholfen werden.
Die grundsätzliche Idee ist ein einfaches Crontab, welches ein Snapshot diverser Dateien und Pfade erstellt. Diese sollen anschließend komprimiert und auf einem FTP Server abgelegt werden. Für die Durchführung wird daher rsnapshot und ftp benötigt. Sofern noch nicht vorhanden:

aptitude install rsnapshot ftp
(apt-get analog; bzw. abh. d. jew. Distrib.)

In der /etc/rsnapshot.conf können nun die zu sichernden Objekte festgelegt werden:

###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
#backup /home/ localhost/

backup /var/lib/mailman/ localhost/
backup /var/www/ localhost/
backup /etc/mailman/ localhost/
backup /etc/exim4/ localhost/
backup /etc/rsnapshot.conf localhost/

Die Änderungen speichern und (z.B.) im root-Verzeichnis eine backup.sh anlegen und ausführbar machen:

touch backup.sh
chmod +x backup.sh

Mit vi oder nano die backup.sh öffnen und folgenden Inhalt einfügen:

#!/bin/sh
#Snapshot erstellen:
echo Erstelle Snapshot…
rsnapshot daily

#Vorlage des Dateinamens:
FILE=`hostname`_`date +%s`.tar.bz2

#Archiv anlegen und Originaldaten löschen:
echo Erstelle Archiv…
tar -vczf $FILE /.snapshots/daily.0/
echo Lösche Backup…
rm -rf /.snapshots/daily.0/

#FTP Credentials eintragen:
HOST=‘HOSTNAME‚ # beliebigerhost.de
USER=‘BENUTZERNAME
PASSWD=‘PASSWORT

#Verbindung zum FTP Server aufbauen:
echo Öffne Verbindung…
ftp -n $HOST <

Erklärung:
1. rsnapshot wird mit dem Befehl „daily“ ausgeführt.
2. Der Dateiname wird festgelegt und setzt sich zusammen aus dem Hostname und dem Datum, z.B.: beliebigerhost.de_1296207907.tar.bz2
3. Der zuvor erstellte Snapshot „daily“ wird als tar und gzip gepackt.
4. Das Snapshot „daily“ wird dann gelöscht.
5. Die FTP-Credentials werden angegeben.
6. Eine FTP Verbindung wird aufgbaut und die Datei wird mit „put“ auf den Server gepusht.
7. Ist der Upload erfolgreich, wird geprüft ob die Datei auch auf dem FTP Server liegt.
8. Ist der Test aus 7. erfolgreich erscheint eine Meldung dass der Upload erfolgreich/nicht erfolgreich war.
9. Anschließend wird das tar.bz2-Archiv gelöscht.

Um das Script jede Nacht um 0 Uhr ausführen zu lassen, mit vi oder nano die /etc/crontab öffnen und um folgenden Eintrag ergänzen:

0 0 * * * root /root/backup.sh

Und noch gegebenenfalls den cron daemon neustarten:

/etc/init.d/cron restart

Sollte wie in meinem Fall der cron Dienst den root User per Mail über die crons informieren, stehen dann in der Mail z.B.:

Erstelle Snapshot…
Erstelle Archiv…
tar: Removing leading `/‘ from member names
/.snapshots/daily.0/
[…]
/.snapshots/daily.0/localhost/etc/mailman/leftover
Lösche Backup…
Öffne Verbindung…
FTP of beliebigerhost.de_1296217982.tar.bz2 to beliebigerZielhost.de worked

Fertig.

exim4: Relay not permitted

Eine Fehlermeldung im exim4 Mailserver, auf die ich jedesmal wieder erneut hereinfalle ist:

2011-01-28 09:08:25 H=[hostname] [statische IP] F= rejected RCPT : relay not permitted
2011-01-28 09:08:25 H=[hostname] [statische IP] F= rejected RCPT : relay not permitted

„relay not permitted“ meint in dem Kontext nicht das Weiterleiten von Mails fremder Mailservers, sondern des eigenen Mailservers. Wenn man aber, so wie ich, seine exim4 Konfiguration mit dpkg-reconfigure exim4-config vornimmt, wird der eigene Server als Relay nicht gesetzt. Dies ist aber zwingende Voraussetzung für den Betrieb einer mailman Mailingliste.

Folgende Änderung schafft Abhilfe: mit vi oder nano die /etc/exim4/exim4.conf(.template) öffnen und nach:
„hostlist relay_from_hosts =“
suchen. Hinter dem Gleichheitszeichen kann die eigene IP/der Hostname angegeben werden. Ich empfehle den Einsatz der statischen IP und nicht der 127.0.0.1, da es ansonsten möglich ist, dass ost-asiatische Spammer den Mailserver mit einem DNS-Hack als Spam-Relay missbrauchen.

Anschließend mit: /etc/init.d/exim4 restart den Mailserver neustarten.