OpenVZ Überwachung · 6 min read · Oct 18, 2025

So überwachen Sie OpenVZ-Grenzen mit vzwatchd auf Debian und Ubuntu

Vzwatchd ist ein OpenVZ-Überwachungsdaemon, der den Serveradministrator per E-Mail informiert, wenn ein Limit des Containers erreicht wird. OpenVZ ist eine Linux-Kernel-Virtualisierungstechnologie, die häufig von Webhosting-Diensten verwendet wird. Es ist der kostenlose Kern der kommerziellen Virtuozzo-Virtualisierungsanwendung. OpenVZ ist eine leichte Virtualisierung, die weniger Overhead als KVM oder XEN hat. Es ist mehr wie ein Linux LXC-Gefängnis, jedoch mit erweiterten Begrenzungsoptionen, um zu definieren, wie viele Ressourcen eine virtuelle Maschine verwenden darf, und es unterstützt Dateisystemquoten.

Dieses Tutorial erklärt die Installation und Konfiguration des vzwatchd-Daemons auf Debian und Ubuntu.

1 Verwendet mein virtueller Server OpenVZ

Haben Sie einen virtuellen Server von einem Hosting-Unternehmen gemietet, ohne zu wissen, welche Virtualisierungstechnologie verwendet wird? Führen Sie den folgenden Befehl aus, um zu testen, ob es OpenVZ verwendet:

cat /proc/user_beancounters

Wenn die Ausgabe ähnlich der folgenden ist, dann verwendet Ihr Server OpenVZ oder eine kompatible Technologie, und Sie können vzwatchd verwenden, um den vServer zu überwachen.

root@www:/# cat /proc/user_beancounters  
Version: 2.5  
 uid resource held maxheld barrier limit failcnt  
 101: kmemsize 190939926 274194432 9223372036854775807 9223372036854775807 0  
 lockedpages 0 3211 1048576 1048576 0  
 privvmpages 749006 781311 9223372036854775807 9223372036854775807 0  
 shmpages 22506 30698 9223372036854775807 9223372036854775807 0  
 dummy 0 0 9223372036854775807 9223372036854775807 0  
 numproc 237 312 9223372036854775807 9223372036854775807 0  
 physpages 486543 804959 0 1048576 0  
 vmguarpages 0 0 3145728 9223372036854775807 0  
 oomguarpages 233498 242378 1048576 9223372036854775807 0  
 numtcpsock 111 298 9223372036854775807 9223372036854775807 0  
 numflock 253 294 9223372036854775807 9223372036854775807 0  
 numpty 1 12 9223372036854775807 9223372036854775807 0  
 numsiginfo 0 33 9223372036854775807 9223372036854775807 0  
 tcpsndbuf 7083944 11209000 9223372036854775807 9223372036854775807 0  
 tcprcvbuf 3300832 10792248 9223372036854775807 9223372036854775807 0  
 othersockbuf 261256 1008400 9223372036854775807 9223372036854775807 0  
 dgramrcvbuf 0 5152 9223372036854775807 9223372036854775807 0  
 numothersock 166 526 1024 1024 0  
 dcachesize 168291899 247843839 9223372036854775807 9223372036854775807 0  
 numfile 3098 5205 9223372036854775807 9223372036854775807 0  
 dummy 0 0 9223372036854775807 9223372036854775807 0  
 dummy 0 0 9223372036854775807 9223372036854775807 0  
 dummy 0 0 9223372036854775807 9223372036854775807 0  
 numiptent 28 35 9223372036854775807 9223372036854775807 0

Die Ausgabe zeigt die Limits der virtuellen Maschine. Jede Zeile beschreibt ein Limit, und die Spalte, die von vzwatchd überwacht wird, ist die letzte Spalte, die zählt, wie oft ein Limit erreicht wurde.

2 Installieren Sie vzwatchd

Vzwatchd ist in Perl geschrieben und wird aus dem Perl CPAN-Archiv mit dem CPAN-Befehl heruntergeladen und installiert.

Installieren der Voraussetzungen

Ich werde die folgenden Schritte als Root-Benutzer ausführen. Führen Sie sudo -s auf Ubuntu aus, um Root zu werden:

sudo -s

Zuerst werde ich das Make-Tool und den Nano-Editor installieren. Make wird von CPAN verwendet, um vzwatchd zu erstellen, und ich werde später Nano verwenden, um die Konfigurationsdatei zu bearbeiten:

apt-get install make nano

Als nächstes werde ich vzwatchd von CPAN mit diesem Befehl installieren:

cpan -i App::OpenVZ::BCWatch

Wenn dies das erste Mal ist, dass Sie CPAN auf einem Server verwenden, wird das Skript Ihnen einige Fragen zur grundlegenden CPAN-Konfiguration stellen:

Would you like to configure as much as possible automatically? [yes]
Would you like me to automatically choose some CPAN mirror sites for you? (This means connecting to the Internet) [yes]

Beantworten Sie beide Fragen mit “ja”.

Der Installer wird nun viele Perl-Module herunterladen, kompilieren und installieren:

root@rz3:~# cpan -i App::OpenVZ::BCWatch  
  
CPAN.pm requires configuration, but most of it can be done automatically.  
If you answer 'no' below, you will enter an interactive dialog for each  
configuration option instead.  
  
Would you like to configure as much as possible automatically? [yes] yes  
  
Autoconfigured everything but 'urllist'.  
  
Now you need to choose your CPAN mirror sites. You can let me  
pick mirrors for you, you can select them from a list or you  
can enter them by hand.  
  
Would you like me to automatically choose some CPAN mirror  
sites for you? (This means connecting to the Internet) [yes] yes  
Trying to fetch a mirror list from the Internet  
Fetching with LWP:  
http://www.perl.org/CPAN/MIRRORED.BY  
  
Looking for CPAN mirrors near you (please be patient)  
.............................. done!  
  
New urllist  
 http://www.planet-elektronik.de/CPAN/  
 http://cpan.noris.de/  
 http://cpan.lnx.sk/  
  
Autoconfiguration complete.  
  
commit: wrote '/root/.cpan/CPAN/MyConfig.pm'  
  
You can re-run configuration any time with 'o conf init' in the CPAN shell  
Fetching with LWP:  
http://www.planet-elektronik.de/CPAN/authors/01mailrc.txt.gz  
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'  
............................................................................DONE  
Fetching with LWP:  
http://www.planet-elektronik.de/CPAN/modules/02packages.details.txt.gz  
Going to read '/root/.cpan/sources/modules/02packages.details.txt.gz'  
 Database was generated on Mon, 13 Apr 2015 23:29:02 GMT  
..............  
 New CPAN.pm version (v2.10) available.  
 [Currently running version is v1.960001]  
 You might want to try  
 install CPAN  
 reload cpan  
 to both upgrade CPAN.pm and run the new version without leaving  
the current session.  
   
 [... snip ...]  
   
 CPAN.pm: Going to build G/GW/GWOLF/Config-File-1.50.tar.gz  
  
Building Config-File  
 GWOLF/Config-File-1.50.tar.gz  
 ./Build -- OK  
Running Build test  
t/pod.t ........... Subroutine main::all_pod_files_ok redefined at /usr/local/share/perl/5.14.2/Test/Pod.pm line 90.  
t/pod.t ........... ok  
t/pod_coverage.t .. ok  
t/test.t .......... 1/11 Invalid characters in key to'be^ignored at line 10 - Ignoring at /root/.cpan/build/Config-File-1.50-NjLxod/blib/lib/Config/File.pm line 41,  line 10.  
Line format invalid at line 11: 'malformed line that should be also dropped (no equal sign)' at /root/.cpan/build/Config-File-1.50-NjLxod/blib/lib/Config/File.pm line 35,  line 11.  
t/test.t .......... ok  
All tests successful.  
Files=3, Tests=13, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.13 cusr 0.02 csys = 0.18 CPU)  
Result: PASS  
 GWOLF/Config-File-1.50.tar.gz  
 ./Build test -- OK  
Running Build install  
Building Config-File  
Installing /usr/local/share/perl/5.14.2/Config/File.pm  
Installing /usr/local/man/man3/Config::File.3pm  
 GWOLF/Config-File-1.50.tar.gz  
 ./Build install -- OK  
Running Build for S/SC/SCHUBIGER/App-OpenVZ-BCWatch-0.04.tar.gz  
 Has already been unwrapped into directory /root/.cpan/build/App-OpenVZ-BCWatch-0.04-4Al97O  
  
 CPAN.pm: Going to build S/SC/SCHUBIGER/App-OpenVZ-BCWatch-0.04.tar.gz  
  
Building App-OpenVZ-BCWatch  
 SCHUBIGER/App-OpenVZ-BCWatch-0.04.tar.gz  
 ./Build -- OK  
Running Build test  
t/00-load.t ....... ok  
t/basic.t ......... ok  
t/pod-coverage.t .. ok  
t/pod.t ........... ok  
All tests successful.  
Files=4, Tests=6, 0 wallclock secs ( 0.04 usr 0.01 sys + 0.27 cusr 0.04 csys = 0.36 CPU)  
Result: PASS  
 SCHUBIGER/App-OpenVZ-BCWatch-0.04.tar.gz  
 ./Build test -- OK  
Running Build install  
Building App-OpenVZ-BCWatch  
Installing /usr/local/man/man1/vzwatchd.1p  
Installing /usr/local/share/perl/5.14.2/App/OpenVZ/BCWatch.pm  
Installing /usr/local/man/man3/App::OpenVZ::BCWatch.3pm  
Installing /usr/local/bin/vzwatchd  
 SCHUBIGER/App-OpenVZ-BCWatch-0.04.tar.gz  
 ./Build install -- OK

Es ist wichtig, dass Sie die Zeile

./Build install -- OK

am Ende der Kompilierungsausgabe sehen. Wenn Sie stattdessen einen Fehler erhalten, führen Sie den Befehl erneut aus. Ich musste den Befehl zweimal ausführen, um alle Module erfolgreich zu kompilieren.

Um zu überprüfen, ob die Installation erfolgreich war, führen Sie den Befehl aus:

vzwatchd check

Dies überprüft die Installation und erstellt eine Beispielkonfigurationsdatei.

root@server:~# vzwatchd check  
/etc/vzwatchd.conf does not exist, creating one with defaults.  
Edit /etc/vzwatchd.conf to suit your needs and then start /usr/local/bin/vzwatchd again.

3 Konfigurieren und aktivieren Sie vzwatchd

Jetzt werde ich die vzwatchd.conf-Datei bearbeiten und die E-Mail-Adresse für die Benachrichtigungsnachrichten festlegen.

nano /etc/vzwatchd.conf

Die Konfigurationsdatei sollte nach der Bearbeitung so aussehen, natürlich mit Ihrer eigenen E-Mail-Adresse.

mail[from] = [email protected]  
mail[to] = [email protected]  
mail[subject] = vzwatchd on server.example.com: NOTICE  
sleep = 60  
verbose = 0  
monitor_fields = failcnt  
_active = 1

Die Änderungen sind:

  • Die Zeile “mail[from]” enthält die Absenderadresse der Benachrichtigungs-E-Mails.
  • Die Zeile “mail[to]” enthält die E-Mail-Adresse, die die Benachrichtigungen erhalten soll.
  • Der Wert in der Zeile “_active” muss auf 1 geändert werden, um vzwatchd zu aktivieren.
  • Wenn Sie mehrere OpenVZ-Server betreiben, kann es praktisch sein, “mail[subject]” zu ändern, um den Servernamen zu enthalten.

Konfigurieren Sie vzwatchd so, dass es beim Booten des Servers automatisch gestartet wird:

vzwatchd install
root@server:~# vzwatchd install  
+ /usr/sbin/update-rc.d vzwatchd defaults  
update-rc.d: warning: /etc/init.d/vzwatchd missing LSB information  
update-rc.d: see   
Adding system startup for /etc/init.d/vzwatchd ...  
/etc/rc0.d/K20vzwatchd -> ../init.d/vzwatchd  
/etc/rc1.d/K20vzwatchd -> ../init.d/vzwatchd  
/etc/rc6.d/K20vzwatchd -> ../init.d/vzwatchd  
/etc/rc2.d/S20vzwatchd -> ../init.d/vzwatchd  
/etc/rc3.d/S20vzwatchd -> ../init.d/vzwatchd  
/etc/rc4.d/S20vzwatchd -> ../init.d/vzwatchd  
/etc/rc5.d/S20vzwatchd -> ../init.d/vzwatchd

Und starten Sie den vzwatchd-Überwachungsdaemon:

vzwatchd start
root@server:~# vzwatchd start  
Starting /usr/local/bin/vzwatchd server

Jetzt werden Sie per E-Mail benachrichtigt, wenn Ihr OpenVZ-virtueller Server eines der Limits des OpenVZ-Containers erreicht.

Links

  • OpenVZ
  • Vzwatchd
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.