Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Linux/UNIX Linuxverfechter finden hier Weggefährten.

vSphere 4.1 U1 Availability Report

Diskussion: vSphere 4.1 U1 Availability Report im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige Hallo zusammen, wir brauchen eine Auswertung der ESX-Host wie hoch die Verfügbarkeit war (On/Offlinezeiten und wenn möglich aufgesplittet in ...

Like Tree2Likes
  • 2 Post By Serow

Antwort
Alt 09.06.11, 10:30   #1 (permalink)
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard vSphere 4.1 U1 Availability Report

Anzeige

Hallo zusammen,

wir brauchen eine Auswertung der ESX-Host wie hoch die Verfügbarkeit war (On/Offlinezeiten und wenn möglich aufgesplittet in Un/geplante Downtime).
Normalerweise nehme ich auf meinen ESX-Host die Datei welche sich unter /var/log/vmksummary.html befindet, leider behauptet diese bei einem meiner Server das dieser im letzten Monat 1 Stunde Online 3 Stunden Offline war. Den Rest des Monats war mein Server beides nicht, also weder On noch Offline ;-)

Die Hotline kann auch nicht weiterhelfen. Es ist ein größeres Probem mti dieser Datei und die Wissenn noch nciht wann sie das Repariert bekommen.

Auch das Tool aus der Community welches man hier findet --> VMware Communities: ESX/ESXi 4.1 Availability Report bringt mich nicht weiter. Das stürzt in unserer Umgebung leider immer ab.

Vmware vCenter Heartbeat möchte ich nicht verwenden da dass Kanonen für Spatzen wäre.

Kennt einer von euch eine möglichst Kostengünstige Variante um die oben genannte Auswertung zu machen die auch zuverlässig funktioniert?

Freue mich über Tipps/Tricks/Links etc.

greetz
chris

elite-noob ist offline   Mit Zitat antworten
Alt 09.06.11, 10:41   #2 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 442
Standard

Für solche Überwachungen bietet sich Nagios an. Wenn der zuständige Admins die geplanten Downtimes korrekt aktiviert, ist das dann auch im Report enthalten.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 09.06.11, 10:49   #3 (permalink)
Themenstarter
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Hallo Bitmuncher,

Nagios ist zwar bei uns im Einsatz, aber leider nicht voll funktionsfähig.
Mein Chef will diesen ESX-Report regelmäßig jeden Monat haben und dieser soll direkt aus den ESX-Host ausgelesen werden.

Persönlich würde ich gerne die Datei /var/log/vmksummary auslesen da in dieser ja die Logwerte drinne stehen, doch leider sind meine Programmierkenntnisse weit weg von gut.

greetz
chris
elite-noob ist offline   Mit Zitat antworten
Alt 09.06.11, 15:06   #4 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: Pentium Ixeno Leistung: Pentium I
xeno eine Nachricht über ICQ schicken
Likes: 76
Standard

Was steht in der Datei denn überhaupt drin? Ist es möglich, mal eine solche zu posten?
xeno ist offline   Mit Zitat antworten
Alt 09.06.11, 15:30   #5 (permalink)
Themenstarter
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Natürlich Servername ersetzt durch $Servernam$ sonst aber Original

/var/log/vmksummary (daraus wird die Auswertung generiert)
/var/log/vmksummary   

Code:
May  2 15:04:42 $Servername$ vmkhalt: (1304341482) Starting system...
May  2 15:04:58 $Servername$ logger: (1304341498) loaded VMkernel
May  2 15:23:42 $Servername$ vmkhalt: (1304342622) Rebooting system...
May  2 15:32:28 $Servername$ vmkhalt: (1304343148) Starting system...
May  2 15:32:44 $Servername$ logger: (1304343164) loaded VMkernel
May  2 16:00:22 $Servername$ vmkhalt: (1304344822) Rebooting system...
May  2 16:09:48 $Servername$ vmkhalt: (1304345388) Starting system...
May  2 16:10:03 $Servername$ logger: (1304345403) loaded VMkernel
May  2 17:01:17 $Servername$ logger: (1304348477) hb: vmk loaded, 3269.82, 0, 348481, 348481, 0, hostd-wo-86004, vpxa-33092, sfcb-vmw-17356
May  2 18:01:15 $Servername$ logger: (1304352075) hb: vmk loaded, 6867.79, 0, 348481, 348481, 0, hostd-wo-86008, vpxa-33092, sfcb-vmw-17384
May  2 19:01:15 $Servername$ logger: (1304355675) hb: vmk loaded, 10467.75, 0, 348481, 348481, 0, hostd-wo-86008, vpxa-33092, sfcb-vmw-17384
May  2 20:01:15 $Servername$ logger: (1304359275) hb: vmk loaded, 14067.95, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33092, sfcb-vmw-19736
May  2 21:01:16 $Servername$ logger: (1304362876) hb: vmk loaded, 17668.61, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33140, sfcb-vmw-17476
May  2 22:01:15 $Servername$ logger: (1304366475) hb: vmk loaded, 21267.59, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33128, sfcb-vmw-19472
May  2 23:01:16 $Servername$ logger: (1304370076) hb: vmk loaded, 24868.35, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33112, sfcb-vmw-19720
May  3 00:01:16 $Servername$ logger: (1304373676) hb: vmk loaded, 28468.11, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33324, sfcb-vmw-17476
May  3 01:01:16 $Servername$ logger: (1304377276) hb: vmk loaded, 32068.09, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33320, sfcb-vmw-19500
May  3 02:01:15 $Servername$ logger: (1304380875) hb: vmk loaded, 35667.33, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33320, sfcb-vmw-17476
May  3 03:01:15 $Servername$ logger: (1304384475) hb: vmk loaded, 39267.50, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33368, sfcb-vmw-17476
May  3 04:01:15 $Servername$ logger: (1304388075) hb: vmk loaded, 42867.47, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33348, sfcb-vmw-17592
May  3 05:01:16 $Servername$ logger: (1304391676) hb: vmk loaded, 46468.37, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33316, sfcb-vmw-17592
May  3 06:01:14 $Servername$ logger: (1304395274) hb: vmk loaded, 50066.92, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33328, sfcb-vmw-17592
May  3 07:01:16 $Servername$ logger: (1304398876) hb: vmk loaded, 53668.23, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33320, sfcb-vmw-17592
May  3 08:01:14 $Servername$ logger: (1304402474) hb: vmk loaded, 57266.77, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33304, sfcb-vmw-17592
May  3 09:01:15 $Servername$ logger: (1304406075) hb: vmk loaded, 60867.76, 0, 348481, 348481, 0, hostd-wo-86012, vpxa-33312, sfcb-vmw-17592
May  3 09:42:54 $Servername$ vmkhalt: (1304408574) Rebooting system...
May  3 09:51:50 $Servername$ vmkhalt: (1304409110) Starting system...
May  3 09:52:06 $Servername$ logger: (1304409126) loaded VMkernel
May  3 10:01:17 $Servername$ logger: (1304409676) hb: vmk loaded, 741.54, 0, 348481, 348481, 0, hostd-wo-83920, vpxa-31276, sfcb-vmw-17888
May  3 11:01:17 $Servername$ logger: (1304413277) hb: vmk loaded, 4342.49, 0, 348481, 348481, 520, hostd-wo-90360, vpxa-34300, sfcb-vmw-17720
May  3 11:06:10 $Servername$ vmkhalt: (1304413570) Rebooting system...
May  3 11:15:20 $Servername$ vmkhalt: (1304414120) Starting system...
May  3 11:15:36 $Servername$ logger: (1304414136) loaded VMkernel
May  3 12:01:17 $Servername$ logger: (1304416877) hb: vmk loaded, 2947.03, 27, 348481, 348481, 0, vix-asyn-99668, vpxa-35420, sfcb-vmw-20772
May  3 13:01:17 $Servername$ logger: (1304420477) hb: vmk loaded, 6547.02, 25, 348481, 348481, 0, vix-asyn-99636, vpxa-35584, sfcb-vmw-20664
May  3 13:18:16 $Servername$ vmkhalt: (1304421496) Halting system...
May  3 13:28:21 $Servername$ vmkhalt: (1304422101) Starting system...
May  3 13:28:37 $Servername$ logger: (1304422117) loaded VMkernel
May  3 13:57:07 $Servername$ vmkhalt: (1304423827) Halting system...
May  3 16:32:25 $Servername$ vmkhalt: (1304433145) Starting system...
May  3 16:32:41 $Servername$ logger: (1304433161) loaded VMkernel
May  3 17:01:16 $Servername$ logger: (1304434876) hb: vmk loaded, 1913.30, 0, 348481, 348481, 0, hostd-wo-84184, vpxa-31308, sfcb-vmw-17500
May  3 18:01:15 $Servername$ logger: (1304438475) hb: vmk loaded, 5512.43, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-31444, sfcb-vmw-17596
May  3 19:01:15 $Servername$ logger: (1304442075) hb: vmk loaded, 9111.64, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32092, sfcb-vmw-17596
May  3 20:01:15 $Servername$ logger: (1304445675) hb: vmk loaded, 12711.77, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32028, sfcb-vmw-17596
May  3 21:01:16 $Servername$ logger: (1304449276) hb: vmk loaded, 16312.80, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32060, sfcb-vmw-17596
May  3 22:01:15 $Servername$ logger: (1304452875) hb: vmk loaded, 19911.91, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32048, sfcb-vmw-17640
May  3 23:01:15 $Servername$ logger: (1304456475) hb: vmk loaded, 23512.11, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32096, sfcb-vmw-17640
May  4 00:01:16 $Servername$ logger: (1304460076) hb: vmk loaded, 27112.99, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32100, sfcb-vmw-17640
May  4 01:01:15 $Servername$ logger: (1304463675) hb: vmk loaded, 30712.07, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32136, sfcb-vmw-19896
May  4 02:01:15 $Servername$ logger: (1304467275) hb: vmk loaded, 34312.45, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32016, sfcb-vmw-17640
May  4 03:01:15 $Servername$ logger: (1304470875) hb: vmk loaded, 37912.20, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32136, sfcb-vmw-17640
May  4 04:01:15 $Servername$ logger: (1304474475) hb: vmk loaded, 41511.56, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32172, sfcb-vmw-17752
May  4 05:01:15 $Servername$ logger: (1304478075) hb: vmk loaded, 45111.93, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32132, sfcb-vmw-17752
May  4 06:01:14 $Servername$ logger: (1304481674) hb: vmk loaded, 48711.42, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32180, sfcb-vmw-17752
May  4 07:01:15 $Servername$ logger: (1304485275) hb: vmk loaded, 52311.62, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32188, sfcb-vmw-17752
May  4 08:01:15 $Servername$ logger: (1304488875) hb: vmk loaded, 55911.99, 0, 348481, 348481, 0, hostd-wo-84288, vpxa-32156, sfcb-vmw-17752
May  4 09:01:16 $Servername$ logger: (1304492476) hb: vmk loaded, 59512.85, 0, 348481, 348481, 0, hostd-wo-88952, vpxa-33960, sfcb-vmw-17752
May  4 10:01:15 $Servername$ logger: (1304496075) hb: vmk loaded, 63112.02, 0, 348481, 348481, 0, hostd-wo-88952, vpxa-33964, sfcb-vmw-17752
May  4 11:01:15 $Servername$ logger: (1304499675) hb: vmk loaded, 66712.45, 0, 348481, 348481, 0, hostd-wo-88952, vpxa-33948, sfcb-vmw-17752
May  4 12:01:15 $Servername$ logger: (1304503275) hb: vmk loaded, 70311.97, 0, 348481, 348481, 0, hostd-wo-88952, vpxa-33920, sfcb-vmw-17752
May  4 13:01:15 $Servername$ logger: (1304506875) hb: vmk loaded, 73912.23, 0, 348481, 348481, 0, hostd-wo-88952, vpxa-34008, sfcb-vmw-17752
May  4 14:01:14 $Servername$ logger: (1304510474) hb: vmk loaded, 77511.34, 0, 348481, 348481, 0, hostd-wo-88952, vpxa-33980, sfcb-vmw-17752
May  4 15:01:15 $Servername$ logger: (1304514075) hb: vmk loaded, 81111.69, 0, 348481, 348481, 0, hostd-wo-88952, vpxa-33888, sfcb-vmw-17752
May  4 16:01:16 $Servername$ logger: (1304517676) hb: vmk loaded, 84713.10, 4, 348481, 348481, 0, vix-asyn-90764, vpxa-34952, sfcb-vmw-17752
May  4 17:01:15 $Servername$ logger: (1304521275) hb: vmk loaded, 88311.76, 4, 348481, 348481, 0, vix-asyn-90768, vpxa-34960, sfcb-vmw-17752
May  4 18:01:16 $Servername$ logger: (1304524875) hb: vmk loaded, 91912.52, 4, 348481, 348481, 0, vix-asyn-90768, vpxa-34960, sfcb-vmw-17752
May  4 19:01:16 $Servername$ logger: (1304528476) hb: vmk loaded, 95512.93, 4, 348481, 348481, 0, vix-asyn-90768, vpxa-34960, sfcb-vmw-17752
May  4 20:01:16 $Servername$ logger: (1304532076) hb: vmk loaded, 99113.17, 4, 348481, 348481, 0, vix-asyn-90768, vpxa-34968, sfcb-vmw-17752
May  4 21:01:15 $Servername$ logger: (1304535675) hb: vmk loaded, 102711.73, 4, 348481, 348481, 0, vix-asyn-90768, vpxa-34968, sfcb-vmw-20720
May  4 22:01:15 $Servername$ logger: (1304539275) hb: vmk loaded, 106312.51, 4, 348481, 348481, 0, vix-asyn-90768, vpxa-34968, sfcb-vmw-17760
May  4 23:01:15 $Servername$ logger: (1304542875) hb: vmk loaded, 109912.29, 4, 348481, 348481, 0, vix-asyn-90768, vpxa-34968, sfcb-vmw-17760
May  5 00:01:15 $Servername$ logger: (1304546475) hb: vmk loaded, 113511.83, 4, 348481, 348481, 0, vix-asyn-90428, vpxa-34968, sfcb-vmw-17760
May  5 01:01:15 $Servername$ logger: (1304550075) hb: vmk loaded, 117112.45, 4, 348481, 348481, 0, vix-asyn-90428, vpxa-34968, sfcb-vmw-17760
May  5 02:01:17 $Servername$ logger: (1304553677) hb: vmk loaded, 120713.84, 4, 348481, 348481, 0, vix-asyn-90428, vpxa-34976, sfcb-vmw-17760
May  5 03:01:16 $Servername$ logger: (1304557276) hb: vmk loaded, 124312.59, 4, 348481, 348481, 0, vix-asyn-90428, vpxa-34976, sfcb-vmw-17760
May  5 04:01:15 $Servername$ logger: (1304560875) hb: vmk loaded, 127912.26, 4, 348481, 348481, 0, vix-asyn-90428, vpxa-34976, sfcb-vmw-17760
May  5 05:01:16 $Servername$ logger: (1304564476) hb: vmk loaded, 131512.98, 4, 348481, 348481, 0, vix-asyn-90428, vpxa-34984, sfcb-vmw-17760
May  5 06:01:16 $Servername$ logger: (1304568075) hb: vmk loaded, 135112.53, 4, 348481, 348481, 0, vix-asyn-90428, vpxa-34984, sfcb-vmw-17760
May  5 07:01:15 $Servername$ logger: (1304571675) hb: vmk loaded, 138712.06, 4, 348481, 348481, 0, vix-asyn-91992, vpxa-34984, sfcb-vmw-17760


Daraus wird eine TXT und eine HTML datei generiert, einziger unterschied ist dass die HTML Datei mit entsprechenden HTML-Tags ergänzt wird.

/var/log/vmksummary.txt   

Code:
Availability Report for $Servername$
May  2, 2011 - Jun  9, 2011

Availability: 27.249%
Total time: 4.7 hours

Uptime: 1.3 hours
Downtime: 3.4 hours

Note: Downtime is any time the system isn't capable of running
Virtual Machines.  This includes reboots, crashes, configuration and running linux

Downtime Analysis:
 72.8% (3.4 hours) downtime caused by:
     100.0% (3.4 hours) scheduled downtime
      0.0% (0) unscheduled downtime


Reasons for scheduled downtime:

 81.3% server halted (2 instances)
 17.8% server rebooting (4 instances)
  0.9% server booting (7 instances)


Stats:
   Current uptime: 36 days, 11 hours
   Longest uptime: 28 minutes
   Shortest uptime: 0
   Average uptime: 10 minutes

   Longest downtime: 2.6 hours
   Shortest downtime: 15 seconds
   Average downtime: 15 minutes

   Maximum VMs Sampled:  348481
   Average VMs Sampled: 348481.00

Server Information:   Number of CPUs: 32 logical
16 cores
 2 packages,  Intel(R) Xeon(R) CPU           X7560  @ 2.27GHz
   Installed Memory:    268420352 kB
   Current Build:  348481
Report generated Thu Jun  9 04:02:07 CEST 2011


Das sind Originalauswertungen auch mit den Fehlern (zumindest in der TXT Datei, die andere Datei ist laut VMware Support i.O.

greetz
chris
elite-noob ist offline   Mit Zitat antworten
Alt 10.06.11, 12:15   #6 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Hi,

ich würde einfach das Nagios mal in Gang bringen. Alternativ gibt es einen Performance Counter auf den ESi) Hosts: System->Uptime. Evtl kannst du damit was anfangen. Meine Testhosts zeigen allerdings "Performance data is currently not available for this entity." Woran das liegt müsste man noch recherchieren.

Grüße
serow
elite-noob and bitmuncher like this.
Serow ist offline   Mit Zitat antworten
Alt 10.06.11, 13:53   #7 (permalink)
Themenstarter
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Danke erstmal für die Antwort, den Chart muss ich gestehen kannte ich noch nicht. Bringt aber eine Interssante neue Komponente ins Spiel. Laut der Aussage aus dem Chart ist der Server 19,3 Tage Online gewesen und die letzten Tage offline. Wenn ich im vCenter die Hostübersich anschaue läuft der Host aber aktuell und dort auch korrekt geschrieben seit 36 Tagen.

Bin also immernoch auf der suche nach einer Korrekten Verfügbarkeitsauswertung.

Greetz
Chris

P.S.: Danke an alle die Tipps gegeben haben bzw. noch geben werden.
Angehängte Grafiken
Dateityp: jpg Server.jpg (56,9 KB, 6x aufgerufen)

Geändert von elite-noob (10.06.11 um 15:03 Uhr)
elite-noob ist offline   Mit Zitat antworten
Alt 15.06.11, 09:05   #8 (permalink)
Themenstarter
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Keiner mehr irgend eine Idee?

greetz
chris
elite-noob ist offline   Mit Zitat antworten
Alt 15.06.11, 09:53   #9 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Hi,

ich hab das Problem glaube ich nicht verstanden. Nach deinem vorletzten Posting zu urteilen sind die Daten doch da. Was willst du mehr? Warum direkt aus dem ESX auslesen? Auch wenn du es mit Nagios machst, wird er halt ab und zu mal pingen oder per ssh / npre "uptime" ausführen. Um das jetzt nachträglich aus dem ESX zu rekonstruieren, kannst du eben selber uptime nutzen oder die Log Files parsen und schauen zu welchen Zeitpunkten Bootprozesse stattgefunden haben.

Grüße
Mathias
Serow ist offline   Mit Zitat antworten
Alt 15.06.11, 10:29   #10 (permalink)
Themenstarter
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Der Chart aus dem PerformanceMonitor geht schon in die richtige Richtung, allerdings will mein Chef Zahlen/Fakten.

Das ich das ganze direkt aus dem Host auslesen will liegt daran dass mein Chef die folgenden Werte in Stunden und Prozentual aufgeschlüsselt haben will. ZWar auch zusätzlich als Grafik, aber eben nicht nur.

Uptime
Planed Downtime (Maintenance)
Downtime

am liebsten wäre mir die Auswertung der /var/log/vmksummary da hier die gesammelten Werte ja eigentlich "korrekt" sien müssen da er ja hier "nur" Logt, und nichts rechnet.

greetz
chris
elite-noob ist offline   Mit Zitat antworten
Alt 15.06.11, 10:32   #11 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Hi,

Zitat:
Zitat von elite-noob Beitrag anzeigen
am liebsten wäre mir die Auswertung der /var/log/vmksummary da hier die gesammelten Werte ja eigentlich "korrekt" sien müssen da er ja hier "nur" Logt, und nichts rechnet.
und was hindert dich jetzt daran die Datei auszuwerten? Du musst dir eigentlich nur raussuchen woran du hochfahren und runterfahren erkennst, und dann über ein Perl-Script die Timestamps dazu rausziehen.

Grüße
serow
Serow ist offline   Mit Zitat antworten
Alt 15.06.11, 10:37   #12 (permalink)
Themenstarter
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Ich bin parallel dabei mir bissle Programmierung anzueignen dass ich soweit komme dass ich das schaffe, aber eigentilch bin ich absolut untalentiert was Programmieren angeht.

Daher suche ich ja nach einer Kostengünstigen Variante (darf auch etwas Kosten wenn es nicht in die vierstelligen Beträge geht) die das löst. Ich kann mir nicht vorstellen dass ich der einzige bin der so eine Anforderung von seinem Chef bekommt.

greetz
chris
elite-noob ist offline   Mit Zitat antworten
Alt 29.06.11, 11:18   #13 (permalink)
Themenstarter
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Hallo zusammen,

zwischenzeitlich habe ich ein "Script" geschrieben welches meine Anforderungen RELATIV gut umsetzt.
Die Rechtschreibung und die Kommentare bitte bisher Ignorieren, die tun sonst weh ;-)

Aber Prinzipiell macht das Programm das was es soll.

QuellCode für Powershell   

cls
#Define Functions
Function Percent ($Pice, $Total)
{
$Percents = $Pice/($Total/100)
$Ausgabe = $Percents.ToString("##0.##")
return $Ausgabe
}
Function PercentforAvailability ($Pice, $Total)
{
$Percents = $Pice/($Total/100)
$Ausgabe = 100 - $Percents
$Ausgabe = $Ausgabe.ToString("##0.##")
return $Ausgabe
}


#Clear Screen from Old Output
cls
$Hosts = Get-VMHost
$Hosts = $Hosts | Sort-Object
foreach ($ESX in $Hosts)
{
# Getting the Events from the Server
$Server = $ESX.Name
$xy = get-vmhost $Server | Get-VIEvent -Start "01.01.2000" -MaxSamples 99999999| `

where {($_.GetType().Name -eq "HostConnectionLostEvent") -or (($_.GetType().Name -eq "TaskEvent") -and ($_.Info.DescriptionId -like "*MaintenanceMode*")) `
-or ($_.GetType().Name -eq "HostConnectedEvent") } | `
Select CreatedTime,@{N="Hostname";E={$_.Host.Name}},@{N=" Description";E={$_.Info.DescriptionId}},@{N="Event ";E={$_.GetType().Name}}

[array]::Reverse($xy)
$xy = ($xy | select Hostname, Description, Event, CreatedTime -Unique)

# Calculating of the diffrent Times
$X=1
$ZeitPlanedDown=0
$ZeitUnplanedDown=0
$ZeitEnterMaintenance=0
$ZeitExitMaintenance=0
$ZeitMaintenance=0
$Maintenance="false"

#This Loop runs for every Entry of the VIEvents
while ($X -lt $xy.Count)
{
# IF the Server is in Maintenance the Downtime have to be Calculated for "Planned" Downtime,
# this Part of the Programm going active.
IF ($Maintenance -eq "true")
{
# IF The Server leave The Maintenace Mode, Calculate the Time of the Maintenance Mode and
# add the Time to the Full Maintenace Time.
IF ($xy[$x].Description -eq "HostSystem.exitMaintenanceMode")
{
$Maintenance = "false"
#Write-Host "Server verlässt Maintenance"
$ZeitExitMaintenance = $xy[$X].CreatedTime
$ZeitMaintenanceCalculate = $ZeitExitMaintenance - $ZeitEnterMaintenance
$ZeitMaintenance += $ZeitMaintenanceCalculate.TotalSeconds
#Write-Host "MaintenanceZeit: " $ZeitMaintenance
}
Else
{
# IF a "HostConnectedEvent" or a "HostConnectionLost" Event appears run this Part of the Programm.
IF ($xy[$x].Event -like "Host*Event")
{
# IF the Host Reconnect to the vCenter, Calculate the PlanedDowntime and Add this to the Full
# Planned Downtime Time.
IF (($xy[$x].Event -eq "HostConnectedEvent") -and ($xy[$x-1].Event -eq "HostConnectionLostEvent"))
{
$ZeitPlanedDownCalculate = $xy[$x].CreatedTime - $xy[$x-1].CreatedTime
$ZeitPlanedDown += $ZeitPlanedDownCalculate.TotalSeconds
#Write-Host "PlanedDown" $ZeitPlanedDown
}
# If this is "just" a "HostConnectionLost" Event the Programm should do Nothing coze its calculate the Time on a
# other Part of this Programm.
ElseIF (($xy[$x].Event -eq "HostConnectionLostEvent") -and ($xy[$x+1].Event -eq "HostConnectedEvent"))
{
#Write-Host "XXXXXXXXXXXXXX Wird ausgewertet XXXXXXXXXXX"
}
# If There some Other Events, run this Part of the Programm.
Else
{
# Sometimes there are a "HostConnectedEvent" whitout Powerdown before, if this happen
# Run this Part of Programm
IF (($xy[$x].CreatedTime.Hour -eq $xy[$x-1].CreatedTime.Hour) -and ($xy[$x].CreatedTime.Minute -eq $xy[$x-1].CreatedTime.Minute) -and ($xy[$x].CreatedTime.Second -eq $xy[$x-1].CreatedTime.Second))
{
# Just Diagnostic Output, i need it for Programming and dont wanna delete
# Dunno may i need it later for Debug or something.
#Write-Host "XXXXXXXXXXXXXX Doppelter Eintrag XXXXXXXXXXX"
#$xy[$x-1].CreatedTime
#$xy[$x].CreatedTime
#Write-Host "XXXXXXXXXXXXXX Doppelter Eintrag XXXXXXXXXXX"
}
Else
{
# Here i made a Douple Check, this should be fixed later.
# Here i never got output.
IF (($xy[$x].Event -like "HostConnectedEvent") -and ($xy[$x-1].Event -like "HostConnectedEvent"))
{
#Write-Host "Server still Running Event"
}
# IF still some Failure, give me also the Event before and after that i could
# check what happend. Also "just Diagnostic" Part for me.
Else
{
Write-Host "XXXXXXXXXXXXXX 1 FAILURE XXXXXXXXXXX"
Write-Host $xy[$x-1].Event, $xy[$x-1].CreatedTime
Write-Host $xy[$x].Event, $xy[$x].CreatedTime
Write-Host $xy[$x+1].Event, $xy[$x+1].CreatedTime
Write-Host "XXXXXXXXXXXXXX 1 FAILURE XXXXXXXXXXX"
}
}
}
}
Else
{
# Sometimes im not patience and the Server goes not fast enough into Maintenance i push
# the "Enter Maintenance" Button twice. So i Need this IF.
IF (($Maintenance -eq "true") -and ($xy[$x].Description -eq "HostSystem.enterMaintenanceMode"))
{
#Do Nothing
}
# Diagnostic Part, sometimes really usefull.
else
{
Write-Host "XXXXXXXXXXXXXXXFAILUREXXXXXXXXXXXXXXX"
Write-Host "Maintenance" $xy[$X].Event $xy[$X].Description
Write-Host "XXXXXXXXXXXXXXXFAILUREXXXXXXXXXXXXXXX"
}
}
}
}
# Run IF SErver is NOT in Maintenance-Mode
Else
{
# IF Server Enter Maintenance Mode Save Time and Change Value "Maintenance" to "true"
IF ($xy[$x].Description -eq "HostSystem.enterMaintenanceMode")
{
$Maintenance = "true"
$ZeitEnterMaintenance = $xy[$x].CreatedTime
#Write-Host "Server betritt Maintenance"
}
# IF Server doesnt Enter Maintenance Mode
Else
{
#If this is a HostConnected or HostConnectionlost Event run this Part of Programm
IF ($xy[$x].Event -like "Host*Event")
{
# IF Server Reconnect, Calculate Unplaned Downtime and Add to Full UnplanedDowntime Time
IF (($xy[$x].Event -eq "HostConnectedEvent") -and ($xy[$x-1].Event -eq "HostConnectionLostEvent"))
{
$ZeitUnplanedDownCalculate = $xy[$x].CreatedTime - $xy[$x-1].CreatedTime
$ZeitUnplanedDown += $ZeitUnplanedDownCalculate.TotalSeconds
#Write-Host "Unplaned Down" $ZeitUnplanedDown
}
# If there is a Connection Lost Event whit a following HostConnectedEvent do nothing,
# will calculate on a other Part in Programm
ElseIF (($xy[$x].Event -eq "HostConnectionLostEvent") -and ($xy[$x+1].Event -eq "HostConnectedEvent"))
{
#Write-Host "XXXXXXXXXXXXXX Wird ausgewertet XXXXXXXXXXX"
}
# IF there is a Entry i didnt thing about, run this part of Programm
Else
{
# Sometimes Douple Entrys happen, so run this part of Programm for diagnostic
IF (($xy[$x].CreatedTime.Hour -eq $xy[$x-1].CreatedTime.Hour) -and ($xy[$x].CreatedTime.Minute -eq $xy[$x-1].CreatedTime.Minute) -and ($xy[$x].CreatedTime.Second -eq $xy[$x-1].CreatedTime.Second))
{
#Write-Host "XXXXXXXXXXXXXX Doppelter Eintrag XXXXXXXXXXX"
#$xy[$x-1].CreatedTime
#$xy[$x].CreatedTime
#Write-Host "XXXXXXXXXXXXXX Doppelter Eintrag XXXXXXXXXXX"
}
# IF Something else happend.
Else
{
# Douple Check, this part of Programm never come up
IF (($xy[$x].Event -like "HostConnectedEvent") -and ($xy[$x-1].Event -like "HostConnectedEvent"))
{
Write-Host "Server still Running Event"
}
# For diagnostic give me also the Event Before and After that i could Check what happend
Else
{
Write-Host "XXXXXXXXXXXXXX 2 FAILURE XXXXXXXXXXX"
Write-Host $xy[$x-1].Event, $xy[$x-1].CreatedTime
Write-Host $xy[$x].Event, $xy[$x].CreatedTime
Write-Host $xy[$x+1].Event, $xy[$x+1].CreatedTime
Write-Host "XXXXXXXXXXXXXX 2 FAILURE XXXXXXXXXXX"
}
}
}
}
# IF there is Still some Failure, give me please the Event.
Else
{
IF (($xy[$X].Description -like "HostSystem.exitMaintenanceMode") -and ($X -le 2))
{
# First Exit of Maintenance coze the Host ist not a new Installation
# If it is a Update this could happen.
}
Else
{
Write-Host "XXXXXXXXXXXXXXXFAILUREXXXXXXXXXXXXXXX"
Write-Host "NotMaintenance" $xy[$X].Event $xy[$X].Description
Write-Host "XXXXXXXXXXXXXXXFAILUREXXXXXXXXXXXXXXX"
}
}
}
}
# Count UP for the Loop
$X++
}

#Calculatin Runtime
$FirstEvent = $xy[1].CreatedTime
$Livetime = Get-Date
$Livetime = $Livetime - $FirstEvent

# Bring the Time in a Human Readable Format
$TotalMaintenance = New-TimeSpan -Seconds $ZeitMaintenance
$TotalUnplanedDown = New-TimeSpan -Seconds $ZeitunplanedDown
$TotalPlanedDown = New-TimeSpan -Seconds $ZeitPlanedDown

# Output on the Screen
Write-Host "Availability Report for "$Server
$FirstEvent = Get-Date $FirstEvent -Format D
$Today = Get-Date -Format D
Write-Host $FirstEvent " - " $Today
Write-Host " "
$availability = $Livetime.TotalSeconds
$Downtime = $TotalPlanedDown.TotalSeconds + $TotalUnplanedDown.TotalSeconds
$availability = PercentforAvailability $Downtime $availability
Write-Host "Availability: " $availability" %"
Write-Host "Total Time: " $Livetime.Days " Days "$Livetime.Hours" hours" $Livetime.Minutes " minutes"
Write-Host " "
$Uptime = $Livetime.TotalSeconds - $TotalPlanedDown.TotalSeconds - $TotalUnplanedDown.TotalSeconds
$Uptime = New-TimeSpan -Seconds $Uptime
Write-Host "Uptime: " $Uptime.Days " Days " $Uptime.Hours" hours" $Uptime.Minutes " minutes"
$Downtime = New-TimeSpan -Seconds $Downtime
Write-Host "Downtime: " $Downtime.days " Days " $Downtime.Hours" hours" $Downtime.Minutes " minutes"
Write-Host " "
Write-Host "Maintenance"
Write-Host "Maintenance Time: " $TotalMaintenance.Days " Days " $TotalMaintenance.Hours " hours" $TotalMaintenance.Minutes " minutes"
$availability = $Livetime.TotalSeconds
$TimeMaintenace = $TotalMaintenance.TotalSeconds
$PercentMaintenance = Percent $TimeMaintenace $availability
Write-Host "Maintenance is " $PercentMaintenance "% of the Full LiveTime"
Write-Host "Downtime during Maintenance: " $TotalPlanedDown.Days " Days " $TotalPlanedDown.Hours " hours" $TotalPlanedDown.Minutes " minutes"
$availability = $Livetime.TotalSeconds
$TimeDowntime = $TotalPlanedDown.TotalSeconds
$PercentMaintenance = Percent $TimeDowntime $availability
Write-Host "Downtime is " $PercentMaintenance "% of the Full LiveTime and"
$availability = $TotalMaintenance.TotalSeconds
$TimeDowntime = $TotalPlanedDown.TotalSeconds
$PercentMaintenance = Percent $TimeDowntime $availability
Write-Host "Downtime is" $PercentMaintenance "% of the Full Maintenance Time"
Write-Host " "
$availability = $Livetime.TotalSeconds
$TimeDowntime = $TotalUnplanedDown.TotalSeconds
$PercentDowntime = Percent $TimeDowntime $availability
Write-Host "Unplaned Downtime: " $TotalUnplanedDown.Days " Days " $TotalUnplanedDown.Hours " hours" $TotalUnplanedDown.Minutes " minutes"
Write-Host "This is " $PercentDowntime "% of the Full LiveTime"
Write-Host " "
Write-Host " "
Write-Host " "
}


Dieser Erzeugt folgende Ausgabe
Ausgabe   

Availability Report for %FQDN%
Montag, 31. Mai 2010 - Mittwoch, 29. Juni 2011

Availability: 99,87 %
Total Time: 393 Days 22 hours 50 minutes

Uptime: 393 Days 10 hours 55 minutes
Downtime: 0 Days 11 hours 55 minutes

Maintenance
Maintenance Time: 0 Days 9 hours 25 minutes
Maintenance is 0,1 % of the Full LiveTime
Downtime during Maintenance: 0 Days 5 hours 22 minutes
Downtime is 0,06 % of the Full LiveTime and
Downtime is 56,98 % of the Full Maintenance Time

Unplaned Downtime: 0 Days 6 hours 32 minutes
This is 0,07 % of the Full LiveTime


Statt %FQDN% steht da natürilch ein Servername, aber den habe ich hier Zensiert.

Damit das ganze Funktioniert muss die PowerCli bereits mit dem vCenter Server verbunden sein. Danach werden alle Host ausgelesen die vorhanden sind und die Ausgabe wird für jeden Host generiert.

Das ganze Befindet sich noch im frühen Betastadium, es müssen noch Kommentare angepasst werden und auch der Quelltext ist nicht Optimal. Aber immerhin läuft es schon so wie ich das möchte.

Über KOmmentare/Kritik/Anregungen würde ich mich freuen.

greetz
chris
elite-noob ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Linux/UNIX » vSphere 4.1 U1 Availability Report
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61