SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

TELEKOM

Monitoring

Monitoring, die ständige Überwachung der Server, ist für viele Dienstanbieter (z.B. ISPs, E-Commerce) "mission critical". Monitorimg umfaßt:
  • Voraussetzung bieten für zuverlässigen Dienst
  • Gewährleistung der Service Levels
  • zügige Entdeckung von Problemen und deren Lösung
  • Ursache von Problemen bestimmen
  • Früherkennung zukünftiger Probleme und deren Vermeidung
  • beinhaltet oft auch Leistungsmessungen
Die Bedeutung des Monitoring wächst mit dem Ausbau eines Dienstes. Daher sollte mandas Monitoring schon bei Planung der Dienste berücksichtigen. Das Monitoring verbraucht selbst auch Ressourcen (Bandbreite<= 1% ist akzeptabel).

Verfahren

  • Historisches Monitoring
    Automatische Erzeugung von (Langzeit-)Statistiken zur Verfügbarkeit und Auslastung von Diensten.
  • Real-Time Monitoring
    • laufende Überwachung der Funktionalität von Diensten
    • Registrierung von Diensteausfällen
    • sofortige Benachrichtigung des/der Verantwortlichen

Welche Aspekte können/sollten überwacht werden?

  • Ausnutzung von Plattenspeicher, CPU, Speicher, Bandbreite, etc.
  • System-Aktivitäten, z. B. Betriebszeit (uptime), Last, Prozesse, E/A-Aktivitäten, Systemfehler, etc.
  • Verfügbarkeit von Diensten, Rechnern, Geräten, etc.
  • Netzwerk-Konnektivität, Netzwerk-Verbindungen, Warteschlangen (Drucker, Mail, ...)
  • Accounts (Session-, Prozess-Accounting)
  • Log-Files
  • Anwendungssoftware und SW-Lizenzen
  • spezielle HW-Komponenten (Lüfter, USV, Prozessor, Board (Temperatur), etc.
  • Environment (Serverraum-Überwachung, Klimawerte, etc.)
  • Dienste, Ressourcen, Protokolle
Das Monitoring steht in enger Beziehung zur REchner-Konfiguration (statisch), Netzwerkadministration, Nutzerverwaltung und Accounting.

Wo findet Monitoring statt?

  • Lokales Monitoring
    Der zu überwachende Rechner führt selbst Monitoring durch. Typische Verfahren sind dabei Shell-Skripte, crontab-Einträge, das Aufzeichnen gewöhnlicher Ergebnisse in Log-Files oder Versenden von Alarm-Mails. Möglicherweise kann Monitoring-Skript ein erkanntes Problem sofort beseitigen.
  • Remote Monitoring
    Die zu überwachenden Rechner/Geräte werden zentral durch einen Rechner (Network Management Station) überwacht. Eine Probe wird an die Rechner/Geräte gesendet, die Ergebnisse zurückliefern. Ein einfacher "Anwesenheitstest" kann beispielsweise mit "ping" realisiert werden. Rechner oder Geräte können auch Alarmsignale (alerts) senden. Die Management Station zeichnet die Daten auf und/oder zeigt sie an.

Kommunikations-Mechanismen

  • Simple Network Management Protocol (SNMP), eine Methode, um Netzwerk-Geräte abzufragen und zu steuern. Ein sogennanter "Manager" (auf dem Management-REchner) fragt die "Agenten" (auf den Netzwerk-Geräten) nach Informationen ab, die auf Einträgen in der "Management Information Base" (MIB) basieren.
  • ICMP-Ping, ein einfacher Test der Netzwerk-Konnektivität, der jedoch keine gesicherten Aussagen liefern kann.
  • Port-Tests, also eine Untersuchung, ob Netzwerk-Dienst verfügbar ist und arbeitet.
  • remote Execution, bei der ein Kommando auf entferntem System ausgeführt wird und dennen Ergebnisse auf der Managemen Station ausgewertet werden.
  • remote Alerts, die bei anormalen Ereignissen auf lokalen Geräten oder System generiert und an die Managment Station gesendet werden.

Monitoring mit MRTG

Die Auslastung eines Netzwerks messen und die Ergebnisse grafisch aufbereiten ist das Spezialgebiet vom Multi Router Traffic Grapher (MRTG) von Tobias Oetiker (http://www.mrtg.org/). Er überwacht die Auslastung des Netzwerks, fragt Router und Switches ab und erzeugt aus den gewonnenen Daten übersichtliche Grafiken, die sich in eine Webseite einbinden lassen. MRTG kann aber noch mehr, etwa Fehlermeldungen von Netzwerkschnittstellen abfragen oder die Auslastung einer Festplatte überwachen. Ein Beispiel findet sich unter: http://www.stat.ee.ethz.ch/mrtg/.

Viele Linux-Distributionen enthalten MRTG und die zusätzlich benötigten Programme und Bibliotheken bereits. Ist das ausnahmsweise nicht der Fall, ist auch das manuelle Installieren kein Problem. Voraussetzungen sind Perl, ein C-Compiler sowie die GD-Bibliothek von Thomas Boutell. Letztere verlangt ihrerseits die Bibliotheken libpng und zlib. Alle Komponenten laufen unter Linux, Unix und sogar Windows.

Konfiguration

Für jedes überwachte Gerät erhält MRTG je eine Konfigurationsdatei (braucht man nur eine, nimmt man /etc/mrtg.cf. Sind mehrere Dateien geplant, legt man am Besten ein Verzeichnis an und erzeugt darin weitere Dateien, wenn man sie braucht). Die Konfigurationsdatei läßt sich auch automatisch generieren: Das Programm cfgmaker aus dem MRTG-Paket schreibt eine Konfigurationsdatei, mit der MRTG die Netzwerklast beobachtet. Das Programm indexmaker erzeugt eine HTML-Startseite, in der alle überwachten Geräte verzeichnet sind.
Mit der standardisierten Konfigurationsdatei überwacht MRTG die Netzwerkschnittstellen eines Geräts über SNMP. Ob es sich dabei um einen Server mit einem einzelnen Netz-Interface handelt oder um einen Router oder Switch mit vielen Schnittstellen, ist nicht wichtig. Das zu überwachende Gerät muß seine Daten über SNMP zur Verfügung stellen und MRTG muß das Leserecht für SNMP auf dem Gerät haben. In den Kommandozeilen-Parametern von cfgmaker sind folgende Informationen anzugeben:

  • IP-Adresse oder DNS-Name des zu überwachenden Geräts, im folgenden Beispiel 10.1.3.1,
  • Community-String: Geheim,
  • Name der zu erstellenden Konfig- Datei: /etc/mrtg/eins.cfg,
  • Speicherort für die HTML-Seiten: /opt/www/htdocs/mrtg
  • die zusätzlichen Optionen: growright.

Im Verzeichnis für die HTML-Seiten legt MRTG auch die Grafiken sowie alle gesammelten Daten ab. In der Grundeinstellung sind die neuesten Werte in der grafischen Darstellung auf der linken Seite enthalten, die Option growright legt die neuesten Daten nach rechts. Als beschreibender Text dient der Name der Schnittstelle, etwa eth0, nicht die laufende Nummer, wie es die Default-Einstellung ist:

                                       cfgmaker \
                                       --output=/etc/mrtg/mrtgtest.cfg \
                                       --global "workdir:/opt/www/htdocs/mrtg/" \
                                       --global "Language:german" \
                                       --global "options[_]: growright" \
                                       --ifdesc=descr geheim@10.1.3.1
                                       
Das Ergebnis des Aufrufs ist in der Datei /etc/mrtg/mrtgtest.cfg zu finden. Der Name dieser Datei wird als erster Parameter an MRTG übergeben: mrtg /etc/mrtg/mrtgtest.cfg. Im Verzeichnis /opt/www/htdocs/mrtg/ entstehen mit diesem Aufruf eine HTML-Seite für jedes Interface, die Logfiles mit den Werten, außerdem die Grafiken. Das Verzeichnis muß allerdings vorher schon existieren. Alte Dateien löscht MRTG automatisch - beim ersten Aufruf führt das zwar zu Fehlermeldungen, die man ignoriert. Der Aufruf muß nun alle fünf Minuten wiederholt werden. Das das nicht von Hand geht, muß ein Cron-Job das erledigen. Der Zeitabstand ist entscheidend, damit MRTG die Durchschnittswerte korrekt berechnet. Wie groß das Intervall ist, läßt sich in der Konfiguration ändern.

Manuelle Konfiguration

Sind andere SNMP-Variablen als das übertragene Datenvolumen gewünscht, muß man eine Konfigurationsdatei von Hand erstellen. Das folgende Beispiel fragt die Fehler ab, die auf einem Netzwerk-Interface auftreten. Die globalen Optionen entsprechen denen für den Datentransfer, die weiteren Felder erklärt die Tabelle weiter unten. Der Aufruf per crontab sollte alle fünf Minuten erfolgen.
                                       WorkDir: /opt/www/htdocs/mrtg/
                                       Language: german
                                        
                                       Target[interfaceerrors_2]:1.3.6.1.2.1.2.2.1.14.2& 1.3.6.1.2.1.2.2.1.20.2:geheim@10.1.3.1
                                       Options[interfaceerrors_2]: growright,nopercent
                                       Title[interfaceerrors_2]: Fehler auf Interface eth0
                                       MaxBytes[interfaceerrors_2]: 10000
                                       Ylegend[interfaceerrors_2]: Fehler
                                       ShortLegend[interfaceerrors_2]:  
                                       Legend1[interfaceerrors_2]: Input Fehler
                                       Legend2[interfaceerrors_2]: Output Fehler
                                       LegendI[interfaceerrors_2]:  INPUT 
                                       LegendO[interfaceerrors_2]:  OUTPUT 
                                       PageTop[interfaceerrors_2]: <H1>Input / Output Errors</H1>
                                        Fehler auf Interface eth0
                                       
                                       Target[interfaceerrors_3]:1.3.6.1.2.1.2.2.1.14.3& 1.3.6.1.2.1.2.2.1.20.3:geheim@10.1.3.1
                                       Options[interfaceerrors_3]: growright,nopercent
                                       

Konfigurations-Optionen
OptionBedeutung
TargetDie vollständigen Object-IDs der darzustellenden SNMP-Variablen getrennt durch "&".
OptionsOptionen, "growright": (s.o.), "nopercent": keine Prozentangaben, die nur sinnvoll wären, wenn ein Maximum bekannt ist.
TitleTitel der erzeugten Webseite
MaxBytesObergrenze der Werte (nötig für Achsenskalierung)
YlegendLegende der Y-Achse
ShortLegendAngabe der Maßzahl
LegendIBeschriftung der X-Achse für Incoming-Daten.
LegendOBeschriftung der X-Achse für Outgoing-Daten.
Legend1,Legend2Legenden für die beiden Kurven am Seitenfuß.
PageTopHTML-Kopf der Seite, welche die MRTG-Grafiken einbindet. Folgezeilen müseen mit einem Leerzeichen beginnen.

MRTG händisch zu starten, ist weder besonders elegant, noch sinnvoll, da so ein regelmäßiges Abfragen der Daten des Netzknotens nicht gewährleistet ist. MRTG sollte alle fünf Minuten mittels crontab aufgerufen werden:

                                       0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/mrtg /etc/mrtg/mrtgtest.cfg
                                       
Unter Linux geht es noch kürzer:
                                       */5 * * * *  /usr/bin/mrtg /etc/mrtg/mrtgtest.cfg
                                       
Es geht auch als ein Eintrag in die System-Crontab /etc/crontab:
                                       */5 * * * *  mrtg-user  /usr/bin/mrtg /etc/mrtg/mrtgtest.cfg
                                       

Sofern eine ganze Reihe von Netzkonten mit MRTG überwachen möchte, sollte man nicht nur eine einzige Konfigurationsdatei benutzen. Für jeden Netzknoten, den man überwachen möchte, wird eine eigene Konfigrationsdatei erstellt. Diese Konfigurationsdateien werden beispielsweise unter /etc/mrtg/ abgelegt. Als Beispiel wird hier die Überwachung von fünf Servern wiedergegeben. Mit den Dateien serverXX-if.cfg wird der Traffic auf den Netzwerkkarten überwacht und mit serverXX.cfg erhält man Server-Parameter wie CPU-Auslastung, Arbeitsspeicher, usw.

                                       $ ls /etc/mrtg/server*.cfg
                                       server01-if.cfg
                                       server01.cfg
                                       server02-if.cfg
                                       server02.cfg
                                       server03-if.cfg
                                       server03.cfg
                                       server04-if.cfg
                                       server04.cfg
                                       server05-if.cfg
                                       server05.cfg
                                       
Um nicht alle MRTG-Aufrufe mit den verschiedenen Konfigurationsdateien in eine Crontab eintragen zu müssen, erstellen wir uns ein Shell-Skript, das die MRTG-Aufrufe zusammenfaßt:
                                       #!/bin/sh
                                       
                                       MRTG_BIN="/usr/bin/mrtg"
                                       MRTG_CFG="/etc/mrtg"
                                       
                                       $MRTG_BIN $MRTG_CFGrouter01.cfg
                                       $MRTG_BIN $MRTG_CFGrouter02.cfg
                                       $MRTG_BIN $MRTG_CFGrouter03.cfg
                                       
                                       $MRTG_BIN $MRTG_CFG/server01.cfg
                                       $MRTG_BIN $MRTG_CFG/server01-if.cfg
                                       $MRTG_BIN $MRTG_CFG/server02.cfg
                                       $MRTG_BIN $MRTG_CFG/server02-if.cfg
                                       $MRTG_BIN $MRTG_CFG/server03.cfg
                                       $MRTG_BIN $MRTG_CFG/server03-if.cfg
                                       $MRTG_BIN $MRTG_CFG/server04.cfg
                                       $MRTG_BIN $MRTG_CFG/server04-if.cfg
                                       $MRTG_BIN $MRTG_CFG/server05.cfg
                                       $MRTG_BIN $MRTG_CFG/server05-if.cfg
                                       
                                       ...
                                       
Das Skript wird nun alle fünf Minuten ausgeführt:
                                       0-55/5 * * * *	root /usr/local/bin/gomrtg
                                       

Um die CPU-Auslastung mitsammeln zu lassen, erweitern Sie Ihre Konfigurationsdatei um die folgenden Zeilen (oder Sie erstellen eine eigene Datei).

                                       Target[server01]: 
                                       1.3.6.1.2.1.25.3.3.1.2.1&1.3.6.1.2.1.25.3.3.1.2.1:geheim@10.1.3.2
                                       MaxBytes[server01]: 100
                                       ShortLegend[server01]: %
                                       Unscaled[server01]: dwmy
                                       YLegend[server01]: Utilisation in percent
                                       Options[server01]: growright, gauge
                                       Title[server01]: CPU Load
                                       PageTop[server01]: CPU Load
                                       System: Server01 in
                                       
Voraussetzung hierfür ist, daß auf der Maschine ein erweiterter SNMP-Agent läuft, der die entsprechende Variablen auch bereithält. Häufig werden auch von Herstellern spezieller Software oder Hardware erweiterte MIB-Dateien und SNMP-Agenten mitgeliefert, die es erlauben Systemzustände dieser Komponenten abzufragen. Im Listing sehen Sie eine Reihe von neuen Parametern zur Target-Definition. Der Parameter Unscaled verhindert eine automatische y-Achsen-Skalierung durch MRTG, was bei bestimmten Werten der Übersicht dient (regulär passt RTG die y-Achse dynamisch an die bisherigen maximalen Werte an). Da der SNMP-Wert für die CPU-Belastung kein differentieller Wert ist, sondern nur einen momentanen Zustand liefert, ist der Options-Parameter gauge notwendig. MRTG benötigt übrigens immer zwei Eingabewerte, deswegen ist die gleiche MIB-Variable zweimal eingetragen. Haben Sie eine Mehrprozessormaschine, so können Sie natürlich eine MRTG-Graphik für zwei CPUs nutzen.

Externe Datenquellen

Zum Abschluß möchte ich noch zeigen, wie externe Daten eingebunden werden können. Extern meint in diesem Fall alle Arten von Daten, die nicht direkt über MRTG oder eines seiner Module abgefragt werden können. Im contrib-Verzeichnis der MRTG-Distribution finden Sie viele fertige Module, die zum einen die Leistungsfähigkeit von MRTG in seinen Erweiterungen unter Beweis stellen und zum anderen vielleicht auch direkt von Ihnen einsetzbar sind. Statt SNMP direkt zu benutzen, lassen sich auch eigene Skripte und Programme in MRTG einbinden, sie sammeln extern Daten und übergeben sie an MRTG. So kann man Messdaten grafisch anzeigen, ohne einen SNMP-Agenten einsetzen zu müssen. Oft ist es einfacher, einen vorhandenen SSH-Zugang zu einer Maschine zu nutzen, als dort einen SNMP-Agenten einzurichten.

Ein Skript kann auch Meßwerte aus mehreren Quellen verknüpfen oder die Meßdaten anderweitig aufbereiten. Im folgenden Beispiel soll ein Perl-Skript ermitteln, wie viel Platz auf der ersten Partition der Festplatte belegt ist. Um das Perl-Skript aufzurufen, muß der Target-Eintrag in der MRTG-Konfiguration den Namen des Skripts und seine Parameter in Backticks ` einschließen. Es werden genau vier Daten in vier Zeilen an MRTG geliefert:

  • Erster Wert (belegter Plattenplatz in KByte)
  • Zweiter Wert (wird nicht angezeigt)
  • uptime des Rechners
  • Name des Rechners
Die Konfigurationsdatei sieht dan etwa so aus:
                                       WorkDir: /opt/www/htdocs/mrtg/
                                       Language: german
                                       
                                       Target[Festplatte]: `/usr/local(bin/platte.pl`
                                       Options[Festplatte]: growright,noo,gauge
                                       Title[Festplatte]: Auslastung Festplatte
                                       MaxBytes[Festplatte]: 3138
                                       Ylegend[Festplatte]: MB
                                       ShortLegend[Festplatte]:  
                                       Legend1[Festplatte]: Belegung Festplatte in MB
                                       Legend2[Festplatte]: nicht gebraucht
                                       LegendI[Festplatte]:  MB 
                                       LegendO[Festplatte]:  nicht gebraucht 
                                       PageTop[Festplatte]: <H1>Belegung Festplatte</H1>
                                        Festplatte "/"
                                       

"noo" (no Output) unterdrückt die Ausgabe des zweiten Wertes; "noi" (no Input) würde das beim ersten Wert machen.

MRTG ist ein mächtiges Werkzeug um langsfristig Entwicklungen in Ihrem Netzwerk erkennen zu können. Viele Feinheiten konnten hier nicht geschildert werden. Um das Lesen der Dokumentation kommt also keiner herum.

NTop

NTop bekommen Sie unter http://www.NTop.org/NTop.html. Es benötigt die ncurses-Bibliothek (inklusive Header-Files) und die libpcap. Das Kompilieren und Installieren erfolgt mit:
                                       tar xzf libpcap-0.6.2.tar.gz
                                       cd libpcap-0.6.2
                                       ./configure --prefix=libpcap
                                       make
                                       make install
                                       cd ..
                                       tar xzf NTop-1.1-src.tgz
                                       cd NTop-1.1
                                       ./configure
                                       make
                                       
Als root-User wird das Programm dann noch installiert:
                                       cp NTop /usr/local/bin
                                       cp NTop.8 /usr/local/man/man8
                                       

Damit NTop direkten Zugriff auf Netzwerkpakete bekommt, muss es mit root-Rechten laufen (chmod 4700 ntop oder chmod 4711 ntop, falls auch andere User als root das Programm verwenden sollen.

Wird NTop in einem Text-Terminal gestartet, so verhält es sich ähnlich wie der Unix-Klassiker top. Nur zeigt NTop nicht die Prozessorauslastung durch diverse Prozesse an, sondern den durch verschiedene Rechner verursachten Netzwerkverkehr. In der folgenden Abbildung findet gerade ein größerer Datentransfer von thorin nach balin statt. Der aktuelle Durchsatz ("Throughput") ist oben rechts ablesbar. Das Programm wurde mit NTop -i eth0 gestartet, also angewiesen, Pakete auf der ersten Ethernet-Karte abzugreifen.

Im Text-Interface reagiert NTop auf verschiedene Tasten. Am interessantesten ist die Leertaste, die weitere Informationen in die Spalten der angezeigten Tabelle holt, etwa zu Anwendungsprotokollen wie FTP, HTTP oder DNS.

Startet man das Programm mit NTop -i eth0 -w 888 erneut, ist im Terminal keine Ausgabe mehr sichtbar, dafür können Sie sich mit einem Frame-fähigen Web Browser auf Port 888 mit NTop verbinden. Dies geschieht, indem Sie im Browser http://localhost:888/ als Seitenadresse eingeben.

Über das Web-Interface stellt NTop wesentlich mehr Informationen zur Verfügung. Die Abbildung zeigt nur eine kleine Auswahl der umfangreichen Statistiken über die Anteile der Protokolle am Gesamtdurchsatz, die Bandbreitennutzung, Netzwerkkartenhersteller, aktuell laufende Netzwerkverbindungen und vieles mehr. In der folgenden Tabelle sind alle Links von der NTop-Hauptseite und deren Funktionen beschrieben.

Nr. Bezeichnung Bedeutung
1. What's NTop? Allgemeine Informationen über NTop.
2. Data Rcvd Übersicht über empfangene Daten, aufgeschlüsselt in Daten, die auf IP oder alle Protokolle entfallen, sowie den Durchsatz.
3. Data Sent Übersicht über gesendete Daten, aufgeschlüsselt in IP, alle Protokolle und den Durchsatz.
4. Multicast Stats Pakete, die gleichzeitig an mehrere Rechner verschickt werden.
5. Traffic Stats Information über Paketgrößen und Anteile der Protokolle am Gesamtdurchsatz.
6. Thpt Stats Der Durchsatz der letzten 60 Minuten als Balkengrafik.
7. Hosts Info Information zu Rechnern, aufgeschlüsselt nach Rechnern.
8. R->L IP Traffic Netzverkehr von außen ins lokale Netz.
9. L->R IP Traffic Netzverkehr aus dem lokalen Netz nach außen.
10. L<->L IP Traffic Netzverkehr innerhalb des lokalen Netzes.
11. Active TCP Sessions Momentan aufgebaute TCP-Verbindungen.
12. IP Protocol Distribution Anteile der über IP transportierten Protokolle.
13. IP Protocol Usage Zwischen welchen Rechnern werden welche Protokolle benutzt?
14. IP Traffic Matrix Zwischen welchen Rechner wurde wieviel übertragen?
15. Credits Danksagung des Autors.
16. Man Page Die Manualseite zu NTop.

Der Zugriff auf das Web-Interface lässt sich mit einem Passwort sperren. Dazu muss der Benutzer, der NTop startet, in seinem Home-Verzeichnis eine Datei .NTop mit einem Benutzername-/Passwort-Paar anlegen. Der Inhalt dieser Datei könnte etwa so aussehen:

                                       # NTop Passwortdatei
                                       bla     fasel
                                       
Benutzername und Passwort dürfen durch beliebig viele Leer- oder Tabulatorzeichen getrennt sein. Im Beispiel ist bla der Benutzername und fasel das Passwort. Groß- und Kleinschreibung werden beim Anmelden unterschieden.

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere